* Global variables.
*/
const char *progname = NULL;
-const char *radius_dir = NULL;
+char *radius_dir = NULL;
const char *radacct_dir = NULL;
const char *radlog_dir = NULL;
const char *radlib_dir = NULL;
}
mainconfig.log_file = strdup(optarg);
mainconfig.radlog_dest = RADLOG_FILES;
+ mainconfig.radlog_fd = open(mainconfig.log_file,
+ O_WRONLY | O_APPEND | O_CREAT, 0640);
+ if (mainconfig.radlog_fd < 0) {
+ fprintf(stderr, "radiusd: Failed to open log file %s: %s\n", mainconfig.log_file, strerror(errno));
+ exit(1);
+ }
break;
case 'i':
dup2(devnull, STDIN_FILENO);
if (mainconfig.radlog_dest == RADLOG_STDOUT) {
mainconfig.radlog_fd = dup(STDOUT_FILENO);
+ setlinebuf(stdout);
}
dup2(devnull, STDOUT_FILENO);
if (mainconfig.radlog_dest == RADLOG_STDERR) {
mainconfig.radlog_fd = dup(STDERR_FILENO);
+ setlinebuf(stdout);
}
dup2(devnull, STDERR_FILENO);
close(devnull);
exit(0);
}
+#ifdef WITH_STATS
radius_stats_init(0);
+#endif
/*
* Only write the PID file if we're running as a daemon.
* Process requests until HUP or exit.
*/
while ((rcode = radius_event_process()) == 0x80) {
+#ifdef WITH_STATS
radius_stats_init(1);
- radlog(L_INFO, "Received HUP.");
+#endif
hup_mainconfig();
}