extract setup of the logging subsystem into a function of its own.
Signed-off-by: Michael Adam <obnox@samba.org>
This commit is contained in:
parent
d8da7f55f7
commit
ea2eaef173
37
src/log.c
37
src/log.c
@ -243,3 +243,40 @@ void send_stored_logs (void)
|
|||||||
vector_delete (log_message_storage);
|
vector_delete (log_message_storage);
|
||||||
log_message_storage = NULL;
|
log_message_storage = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize the logging subsystem, based on the configuration.
|
||||||
|
* Returns 0 upon success, -1 upon failure.
|
||||||
|
*
|
||||||
|
* This function uses fprintf() instead of log_message(), since
|
||||||
|
* the logging is not yet set up...
|
||||||
|
*/
|
||||||
|
int setup_logging (void)
|
||||||
|
{
|
||||||
|
int ret = -1;
|
||||||
|
|
||||||
|
/* Write to a user supplied log file if it's defined. This will
|
||||||
|
* override using the syslog even if syslog is defined. */
|
||||||
|
if (config.logf_name) {
|
||||||
|
if (open_log_file (config.logf_name) < 0) {
|
||||||
|
fprintf (stderr,
|
||||||
|
"%s: Could not create log file.\n", PACKAGE);
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
config.syslog = FALSE; /* disable syslog */
|
||||||
|
} else if (config.syslog) {
|
||||||
|
if (config.godaemon == TRUE)
|
||||||
|
openlog ("tinyproxy", LOG_PID, LOG_DAEMON);
|
||||||
|
else
|
||||||
|
openlog ("tinyproxy", LOG_PID, LOG_USER);
|
||||||
|
} else {
|
||||||
|
fprintf (stderr, "%s: Either define a logfile or "
|
||||||
|
"enable syslog logging.\n", PACKAGE);
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = 0;
|
||||||
|
|
||||||
|
done:
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
@ -117,4 +117,6 @@ extern void log_message (int level, const char *fmt, ...);
|
|||||||
extern void set_log_level (int level);
|
extern void set_log_level (int level);
|
||||||
extern void send_stored_logs (void);
|
extern void send_stored_logs (void);
|
||||||
|
|
||||||
|
extern int setup_logging (void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
20
src/main.c
20
src/main.c
@ -305,6 +305,7 @@ int
|
|||||||
main (int argc, char **argv)
|
main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
FILE *config_file;
|
FILE *config_file;
|
||||||
|
int ret;
|
||||||
|
|
||||||
/* Only allow u+rw bits. This may be required for some versions
|
/* Only allow u+rw bits. This may be required for some versions
|
||||||
* of glibc so that mkstemp() doesn't make us vulnerable.
|
* of glibc so that mkstemp() doesn't make us vulnerable.
|
||||||
@ -340,23 +341,8 @@ main (int argc, char **argv)
|
|||||||
|
|
||||||
fclose (config_file);
|
fclose (config_file);
|
||||||
|
|
||||||
/* Write to a user supplied log file if it's defined. This will
|
ret = setup_logging ();
|
||||||
* override using the syslog even if syslog is defined. */
|
if (ret != 0) {
|
||||||
if (config.logf_name) {
|
|
||||||
if (open_log_file (config.logf_name) < 0) {
|
|
||||||
fprintf (stderr,
|
|
||||||
"%s: Could not create log file.\n", argv[0]);
|
|
||||||
exit (EX_SOFTWARE);
|
|
||||||
}
|
|
||||||
config.syslog = FALSE; /* disable syslog */
|
|
||||||
} else if (config.syslog) {
|
|
||||||
if (config.godaemon == TRUE)
|
|
||||||
openlog ("tinyproxy", LOG_PID, LOG_DAEMON);
|
|
||||||
else
|
|
||||||
openlog ("tinyproxy", LOG_PID, LOG_USER);
|
|
||||||
} else {
|
|
||||||
fprintf (stderr, "%s: Either define a logfile or "
|
|
||||||
"enable syslog logging.\n", argv[0]);
|
|
||||||
exit (EX_SOFTWARE);
|
exit (EX_SOFTWARE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user