char *hostname;
/** Used for colored log messages. */
char log_colors[NUM_LOGLEVELS][COLOR_MAXLEN];
+ char *old_cwd;
};
static struct daemon the_daemon, *me = &the_daemon;
{
free(me->logfile_name);
me->logfile_name = NULL;
- if (logfile_name)
+ if (!logfile_name)
+ return;
+ if (me->old_cwd && logfile_name[0] != '/')
+ me->logfile_name = make_message("%s/%s", me->old_cwd,
+ logfile_name);
+ else
me->logfile_name = para_strdup(logfile_name);
}
/* become session leader */
if (setsid() < 0)
goto err;
+ me->old_cwd = getcwd(NULL, 0);
if (chdir("/") < 0)
goto err;
null = open("/dev/null", O_RDWR);