#include #include #include #include #include #include #include #include #include #include const char *sim_ip = "localhost"; int ai_family = AF_UNSPEC; void mission(void); int get_descriptor_rw() { return 1; } void done() { printf("done.\n"); exit(0); } int test_socket(); // Don't ask me, it makes the linker happy and does not seem // to break anything ¯\_(ツ)_/¯ void rust_eh_personality() { puts("eh_personality"); } void print_usage(const char * name) { fprintf(stderr, "Usage: %s [-s sim_ip] [-4|6]\n", name); } int main(int argc, char **argv) { static struct option long_options[] = { /* NAME ARGUMENT FLAG SHORTNAME */ {"sim_ip", required_argument, NULL, 's'}, {"help", no_argument, NULL, 'h'}, {NULL, 0, NULL, 0}}; int c; int option_index = 0; while ((c = getopt_long(argc, argv, "46hs:", long_options, &option_index)) != -1) { switch (c) { case 's': if (optarg != NULL) { sim_ip = optarg; break; case '4': ai_family = AF_INET; break; case '6': ai_family = AF_INET6; break; default: print_usage(argv[0]); exit(EXIT_FAILURE); } } } mission(); return 0; }