rem: DBG("TM: open_uac_fifo: fifo disabled\n");
add: DBG("DBG: open_fifo_server: fifo disabled\n");
context: int open_fifo_server(){	char *t;	struct stat filestat;#ifdef USE_TCP	int sockfd[2];#endif	if (fifo==NULL) {		DBG("TM: open_uac_fifo: no fifo will be opened\n");		/* everything is ok, we just do not want to start */		return 1;	}	if (strlen(fifo)==0) {		DBG("TM: open_uac_fifo: fifo disabled\n");		return 1;	}	DBG("TM: open_uac_fifo: opening fifo...\n");	if (stat(fifo, &filestat)==-1) { /* FIFO doesn't exist yet ... */		LOG(L_DBG, "DEBUG: open_fifo_server: FIFO stat failed: %s\n",			strerror(errno));		if ((mkfifo(fifo, fifo_mode)<0)) {			LOG(L_ERR, "ERROR: open_fifo_server; can't create FIFO: "					"%s (mode=%d)\n",					strerror(errno), fifo_mode);			return -1;		} 		DBG("DEBUG: FIFO created @ %s\n", fifo );		if ((chmod(fifo, fifo_mode)<0)) {			LOG(L_ERR, "ERROR: open_fifo_server; can't chmod FIFO: "					"%s (mode=%d)\n",					strerror(errno), fifo_mode);			return -1;		}	} else { /* file can be stat-ed, check if it is really a FIFO */		if (!(S_ISFIFO(filestat.st_mode))) {			LOG(L_ERR, "ERROR: open_fifo_server: "				"the file is not a FIFO: %s\n",				fifo );			return -1;		}	}	DBG("DEBUG: fifo %s opened, mode=%d\n", fifo, fifo_mode );	time(&up_since);	t=ctime(&up_since);	if (strlen(t)+1>=MAX_CTIME_LEN) {		LOG(L_ERR, "ERROR: open_fifo_server: "			"too long date %d\n", (int)strlen(t));		return -1;	}	memcpy(up_since_ctime,t,strlen(t)+1);#ifdef USE_TCP	if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockfd)<0){			LOG(L_ERR, "ERROR: open_fifo_server: socketpair failed: %s\n",				strerror(errno));			return -1;	}#endif	process_no++;	fifo_pid=fork();	if (fifo_pid<0) {		LOG(L_ERR, "ERROR: open_fifo_server: failure to fork: %s\n",			strerror(errno));		return -1;	}	if (fifo_pid==0) { /* child == FIFO server */		LOG(L_INFO, "INFO: fifo process starting: %d\n", getpid());		/* call per-child module initialization too -- some		   FIFO commands may need it		*/#ifdef USE_TCP		close(sockfd[0]);		unix_tcp_sock=sockfd[1];#endif		if (init_child(PROC_FIFO) < 0 ) {			LOG(L_ERR, "ERROR: open_uac_fifo: init_child failed\n");			return -1;		}		fifo_read=open(fifo, O_RDONLY, 0);		if (fifo_read<0) {			LOG(L_ERR, "ERROR: open_uac_fifo: fifo_read did not open: %s\n",				strerror(errno));			return -1;		}		fifo_stream=fdopen(fifo_read, "r"	);		if (fifo_stream==NULL) {			LOG(L_ERR, "SER: open_uac_fifo: fdopen failed: %s\n",				strerror(errno));			return -1;		}		/* a real server doesn't die if writing to reply fifo fails */		signal(SIGPIPE, SIG_IGN);		LOG(L_INFO, "SER: open_uac_fifo: fifo server up at %s...\n",			fifo);		fifo_server( fifo_stream ); /* never retruns */	}	/* dad process */	pt[process_no].pid=fifo_pid;	strncpy(pt[process_no].desc, "fifo server", MAX_PT_DESC );#ifdef USE_TCP	close(sockfd[1]);	pt[process_no].unix_sock=sockfd[0];	pt[process_no].idx=-1; /* this is not "tcp" process*/#endif	/* make sure the read fifo will not close */	fifo_write=open(fifo, O_WRONLY, 0);	if (fifo_write<0) {		LOG(L_ERR, "SER: open_uac_fifo: fifo_write did not open: %s\n",			strerror(errno));		return -1;	}	return 1;}