static void launch_channel(int channo) { pid_t pid; ZAP *z; char ch[80]; /* Make sure hangup state is reset */ chans[channo].needhangup = 0; chans[channo].alreadyhungup = 0; pid = fork(); if (pid < 0) { fprintf(stderr, "--!! Unable to fork\n"); chans[channo].needhangup = 1; } if (pid) { printf("-- Launching process %d to handle channel %d\n", pid, channo); chans[channo].pid = pid; } else { sprintf(ch, "%d", channo + offset); z = zap_open(ch, 0); if (z) { do_channel(z); exit(0); } else { fprintf(stderr, "--!! Unable to open channel %d\n", channo); exit(1); } } }
void main(int argc, char **argv) { if(chdir(HOMEDIR)<0) { perror(HOMEDIR); exit(1); } if(argc!=2) { fprintf(stderr,"usage: %s <channel>\n",argv[0]); exit(1); } time(&now); srandom(now); do_channel(argv[1]); }