int main(int argc, char *argv[]) { struct ihf_msg *msg = NULL; uint8_t *req = NULL; int ret = 0; int len; req = malloc(sizeof(char) * BUFMAX); if (!req) { fprintf(stderr, "cannot allocate receiving request buffer !\n"); ret = -1; goto exit; } len = read(STDIN_FILENO, req, BUFMAX); msg = msg_unpack(req, len); if (!msg) { fprintf(stderr, "error unpacking message\n"); ret = -1; goto exit; } switch (msg->type) { case MSG_TYPE_INIT: cmd_init(); break; case MSG_TYPE_KILL: cmd_kill(); break; case MSG_TYPE_EXEC: cmd_exec(msg->arg, msg->arglen); break; case MSG_TYPE_READ: cmd_read(); break; case MSG_TYPE_WRITE: cmd_write(msg->arg, msg->arglen); break; default: fprintf(stderr, "unknown request type %d\n", msg->type); ret = -1; goto exit; } exit: if (req) free(req); if (msg) free(msg); return ret; }
static int run_cmd(int argc, char **argv) { if (strncmp(argv[0], "help", 4) == 0) usage(stdout, 0); else if (strncmp(argv[0], "version", 8) == 0) { about(); return 0; } else if (strncmp(argv[0], "hate", 5) == 0) return cmd_hate(argc, argv); else if (strncmp(argv[0], "love", 5) == 0) return cmd_love(argc, argv); else if (strncmp(argv[0], "kill", 5) == 0) return cmd_kill(argc, argv); else if (strncmp(argv[0], "unkill", 7) == 0) return cmd_unkill(argc, argv); else if (strncmp(argv[0], "rate", 5) == 0) return cmd_rate(argc, argv); else if (strncmp(argv[0], "rateabs", 8) == 0) return cmd_rate_absolute(argc, argv); else if (strncmp(argv[0], "list", 5) == 0) return cmd_list(argc, argv); else if (strncmp(argv[0], "listinfo", 9) == 0) return cmd_listinfo(argc, argv); else if (strncmp(argv[0], "addtag", 7) == 0) return cmd_addtag(argc, argv); else if (strncmp(argv[0], "rmtag", 6) == 0) return cmd_rmtag(argc, argv); else if (strncmp(argv[0], "listtags", 9) == 0) return cmd_listtags(argc, argv); else if (strncmp(argv[0], "count", 6) == 0) return cmd_count(argc, argv); else if (strncmp(argv[0], "karma", 6) == 0) return cmd_karma(argc, argv); fprintf(stderr, "Unknown command `%s'\n", argv[0]); usage(stderr, 1); }
void my_cmd2(char **com, int const cfd) { if (strcmp(com[0], "/part") == 0) cmd_part(com, cfd); else if (strcmp(com[0], "/list") == 0) cmd_list(com, cfd); else if (strcmp(com[0], "/quit") == 0) cmd_quit(com, cfd); else if (strcmp(com[0], "/users") == 0) cmd_users(com, cfd); else if (strcmp(com[0], "/msg") == 0) cmd_mp(com, cfd); else if (strcmp(com[0], "/topic") == 0) cmd_topic(com, cfd); else if (strcmp(com[0], "/kick") == 0) cmd_kick(com, cfd); else if (strcmp(com[0], "/kill") == 0) cmd_kill(com, cfd); else if (strcmp(com[0], "/ping") == 0) dprintf(cfd, "PING \r\n"); else cmd_msg(com, cfd); }
int main(int argc, char **argv) { struct arguments args; int rc; rc = -1; memset(&args, 0, sizeof(args)); argp_parse(&argp, argc, argv, 0, 0, &args); switch (args.cmd) { case CMD_INIT: rc = cmd_init(&args); break; case CMD_LIST: rc = cmd_list(&args); break; case CMD_INSERT: rc = cmd_insert(&args); break; case CMD_RETRIEVE: rc = cmd_retrieve(&args); break; case CMD_KILL: rc = cmd_kill(&args); break; case CMD_INTERACTIVE: rc = cmd_interactive(&args); break; default: fprintf(stderr, "invalid command\n"); goto out; } out: return rc; }