rem: inline char *run_ext_prog(char *cmd, char *in, int in_len, int *out_len)
add: static  char *run_ext_prog(char *cmd, char *in, int in_len, int *out_len)
context: inline char *run_ext_prog(char *cmd, char *in, int in_len, int *out_len){	static char buf[MAX_PIPE_BUFFER_LEN];	int len;	int ret;	/* launch the external program */	if ( start_prog(cmd)!=0 ) {		ser_error=E_EXEC;		LOG(L_ERR,"ERROR:run_ext_prog: cannot launch external program\n");		return 0;	}	/* feeding the program with the uri */	if ( sendto_prog(in,in_len,1)!=in_len ) {		LOG(L_ERR,"ERROR:run_ext_prog: cannot send input to the external "			"program -> kill it\n");		goto kill_it;	}	close_prog_input();	/* gets its response */	len = 0;	do {		ret = recvfrom_prog(buf-len,1024-len);		if (ret==-1 && errno!=EINTR) {			LOG(L_ERR,"ERROR:run_ext_prog: cannot read from the external "				"program (%s) -> kill it\n",strerror(errno));			goto kill_it;		}		len += ret;	}while(ret);	close_prog_output();	ret = is_finished();	DBG("DEBUG:run_ext_prog: recv <%.*s> [%d] ; status=%d\n",		len, buf,len,is_finished());	if (ret!=0) {		*out_len = 0;		return 0;	}	*out_len = len;	return buf;kill_it:	ser_error=E_EXEC;	kill_prog();	wait_prog();	close_prog_input();	close_prog_output();	*out_len = 0;	return 0;}