示例#1
0
API_EXPORT(piped_log *) ap_open_piped_log (pool *p, const char *program)
{
    piped_log *pl;
    FILE *dummy;

    if (!ap_spawn_child(p, piped_log_child, (void *)program,
			kill_after_timeout, &dummy, NULL, NULL)) {
	perror ("ap_spawn_child");
	fprintf (stderr, "Couldn't fork child for piped log process\n");
	exit (1);
    }
    pl = ap_palloc (p, sizeof (*pl));
    pl->p = p;
    pl->write_f = dummy;

    return pl;
}
示例#2
0
static void open_error_log (server_rec *s, pool *p)
{
    char *fname;

    if (*s->error_fname == '|') {
	FILE *dummy;

	if (!ap_spawn_child(p, error_log_child, (void *)(s->error_fname+1),
			    kill_after_timeout, &dummy, NULL, NULL)) {
	    perror ("ap_spawn_child");
	    fprintf (stderr, "Couldn't fork child for ErrorLog process\n");
	    exit (1);
	}

	s->error_log = dummy;
    }

#ifdef HAVE_SYSLOG
    else if (!strncasecmp(s->error_fname, "syslog", 6)) {
	if ((fname = strchr(s->error_fname, ':'))) {
	    const TRANS *fac;

	    fname++;
	    for (fac = facilities; fac->t_name; fac++) {
		if (!strcasecmp(fname, fac->t_name)) {
		    openlog("httpd", LOG_NDELAY|LOG_CONS|LOG_PID, fac->t_val);
		    s->error_log = NULL;
		    return;
		}
	    }
	}
	else
	    openlog("httpd", LOG_NDELAY|LOG_CONS|LOG_PID, LOG_LOCAL7);

	s->error_log = NULL;
    }
#endif
    else {
	fname = ap_server_root_relative (p, s->error_fname);
        if(!(s->error_log = ap_pfopen(p, fname, "a"))) {
            perror("fopen");
            fprintf(stderr,"httpd: could not open error log file %s.\n", fname);
            exit(1);
	}
    }
}
示例#3
0
文件: mod_db4.c 项目: AdeebNqo/poedit
static void db4_init(server_rec *s, pool *p)
{
    int mpid;
    env_locks_init();
    mpid=ap_spawn_child(p, moderator_main, NULL, kill_always, NULL, NULL, NULL);
}