]> git.pond.sub.org Git - empserver/commitdiff
Fix server not to create a journal on SIGHUP when !keep_journal:
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 21 Jan 2007 17:34:22 +0000 (17:34 +0000)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 21 Jan 2007 17:34:22 +0000 (17:34 +0000)
(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.

include/journal.h
src/lib/common/journal.c
src/server/main.c

index d29944cfcaf1aa2a55b81ad011084c9c07e991b2..e0e2b74617150e0376cee8d7976e77120b5dd412 100644 (file)
 #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
index 60a3297c27101c0cd26cdfc6ce7348ce3341f630..1a9841ba4f73c7e08eabda247efa02c2fb020ea1 100644 (file)
 static char journal_fname[] = "journal.log";
 static FILE *journal;
 
-int
+static FILE *
 journal_open(void)
 {
-    journal = fopen(journal_fname, "a+");
-    return journal ? 0 : -1;
-}
-
-int
-journal_close(void)
-{
-    FILE *j = journal;
-    journal = NULL;
-    return j ? fclose(j) : 0;
+    return fopen(journal_fname, "a+");
 }
 
-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
index ad527c4fd85dc40a8017d52ca31f9248950357ac..0fa742c1e62100d994fa681ad80803e7e0c7f69b 100644 (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