/* Command line tool to control trli-stop */ #include #include #include #include #include #include #include #include "fdpass.h" using namespace std; #include "proto/trli_stop_control.protoch" int main (int argc, char *argv[]) { glocal int ret = -1; glocal const char *control = "/var/run/trlid.sock"; glocal.ret = (argc,argv); setproginfo ("trli-stop-control",VERSION ,"Command line tool to control trli-stop\n" "\n" "\tdebug 0/1\n" "\tdebugfile filename\n" "\tquit\n" "\tstart\n" "\tstatus\n" "\tstop\n" ); setarg ('p',"control","Unix socket to reach trlid",glocal.control,false); glocal int ret = -1; glocal CONNECT_INFO con; glocal.con.port = glocal.control; if (strcmp(argv[0],"status")==0 && argc==1){ (glocal.con); for (auto x:lines) printf ("%s\n",x); glocal.ret = 0; }else if (strcmp(argv[0],"quit")==0){ (glocal.con); glocal.ret = 0; }else if (strcmp(argv[0],"stop")==0){ (glocal.con); if (nbalive == 0){ glocal.ret = 0; }else{ for (int i=0; i<5 && glocal.ret == -1; i++){ printf ("nbalive=%u\n",nbalive); sleep(1); (glocal.con); printf ("nbalive=%u\n",nbalive); if (nbalive == 0) glocal.ret = 0; } } }else if (strcmp(argv[0],"start")==0){ (glocal.con); glocal.ret = 0; }else if (strcmp(argv[0],"debug")==0 && argc==2){ (glocal.con,atoi(argv[1])); glocal.ret = 0; }else if (strcmp(argv[0],"debugfile")==0 && argc==2){ (glocal.con,argv[1]); glocal.ret = 0; }else{ tlmp_error ("Invalid command: %s\n",argv[0]); usage(); } return glocal.ret; return glocal.ret; }