void parse_eob(char **parv, int parc) { if(get_serv(parv[0][0]) == bot.uplink) { ssend("%c EA\n", bot.scnum); notify("EOB (%c) from uplink", parv[0][0]); } }
int main(int argc, char *argv[], char *env[]) { const char *new_argv[] = { "/sbin/ngc", NULL, NULL, NULL }; char *fixed_path; if (!argv[1] || argc != 3) { if (argc >= 2) printf ("Usage: %s %s [start] [stop] [restart] [status] [zap]\n", argv[0], argv[1]); else printf ("Usage: itype i_file.i [start] [stop] [restart] [status] [zap]\n"); exit(1); } /*printf("argc: %i argv[0]: %s argv[1]: %s argv[2]: %s\n", argc, argv[0], argv[1], argv[2]); */ fixed_path = get_serv(argv[1]); if (!fixed_path) { printf("unkown service\n"); exit(1); } /*printf("Service: %s\n", fixed_path); */ /* usage "/etc/initng/test.i start" */ if (strcmp(argv[2], "start") == 0) { new_argv[1] = "-u"; new_argv[2] = fixed_path; execve((char *)new_argv[0], (char **)new_argv, environ); goto end; } /* usage "/etc/initng/test.i stop" */ if (strcmp(argv[2], "stop") == 0) { new_argv[1] = "-d"; new_argv[2] = fixed_path; execve((char *)new_argv[0], (char **)new_argv, environ); goto end; } /* usage "/etc/initng/test.i stop" */ if (strcmp(argv[2], "status") == 0) { new_argv[1] = "-s"; new_argv[2] = fixed_path; execve((char *)new_argv[0], (char **)new_argv, environ); goto end; } /* usage "/etc/initng/test.i zap" */ if (strcmp(argv[2], "zap") == 0) { new_argv[1] = "-z"; new_argv[2] = fixed_path; execve((char *)new_argv[0], (char **)new_argv, environ); goto end; } /* usage "/etc/initng/test.i restart" */ if (strcmp(argv[2], "restart") == 0) { new_argv[1] = "-r"; new_argv[2] = fixed_path; execve((char *)new_argv[0], (char **)new_argv, environ); goto end; } { printf("Usage: %s %s [start] [stop] [restart] [status] [zap]\n", argv[0], argv[1]); } end: /* unload all modules */ free(fixed_path); return (0); }