Fix server not to create a journal on SIGHUP when !keep_journal:

(journal_reopen): New.
(main): Use it.  Fixes failure to obey !keep_journal.
(journal_open): Internal linkage, changed semantics and return value.
Callers changed.
(journal_close): One caller left, inline and remove.
This commit is contained in:
Markus Armbruster 2007-01-21 17:34:22 +00:00
parent 139086fd20
commit befac7cf83
3 changed files with 30 additions and 21 deletions

View file

@ -34,15 +34,12 @@
#ifndef JOURNAL_H
#define JOURNAL_H
int journal_open(void);
int journal_close(void);
void journal_entry(char *fmt, ...);
int journal_startup(void);
void journal_shutdown(void);
int journal_reopen(void);
void journal_login(void);
void journal_logout(void);
void journal_input(char *input);
void journal_input(char *);
void journal_update(int);
#endif

View file

@ -63,22 +63,13 @@
static char journal_fname[] = "journal.log";
static FILE *journal;
int
static FILE *
journal_open(void)
{
journal = fopen(journal_fname, "a+");
return journal ? 0 : -1;
return fopen(journal_fname, "a+");
}
int
journal_close(void)
{
FILE *j = journal;
journal = NULL;
return j ? fclose(j) : 0;
}
void
static void
journal_entry(char *fmt, ...)
{
static char buf[1024];
@ -109,7 +100,8 @@ journal_startup(void)
{
if (!keep_journal)
return 0;
if (journal_open() < 0) {
journal = journal_open();
if (!journal) {
logerror("Can't open %s (%s)", journal_fname, strerror(errno));
return -1;
}
@ -121,7 +113,28 @@ void
journal_shutdown(void)
{
journal_entry("shutdown");
journal_close();
if (journal) {
fclose(journal);
journal = NULL;
}
}
int
journal_reopen(void)
{
FILE *j;
if (!keep_journal)
return 0;
j = journal_open();
if (!j) {
logerror("Can't open %s (%s)", journal_fname, strerror(errno));
return -1;
}
if (journal)
fclose(journal);
journal = j;
return 0;
}
void

View file

@ -267,8 +267,7 @@ main(int argc, char **argv)
sig = empth_wait_for_signal();
#ifdef SIGHUP
if (sig == SIGHUP) {
journal_close();
journal_open();
journal_reopen();
continue;
}
#endif