Пример #1
0
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);
		}
	}
	
}
Пример #2
0
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]);
}