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

@ -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