]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/journal-remote/journal-remote.c
journal: Introduce journald-file.c for journal file write related logic
[thirdparty/systemd.git] / src / journal-remote / journal-remote.c
index 13a9f74e6f013e8a678dc19d765cd338d05c1b8b..e91b46473be0e58077107da781d1ca190f888d26 100644 (file)
@@ -14,7 +14,7 @@
 #include "errno-util.h"
 #include "escape.h"
 #include "fd-util.h"
-#include "journal-file.h"
+#include "journald-file.h"
 #include "journal-remote-write.h"
 #include "journal-remote.h"
 #include "journald-native.h"
@@ -61,16 +61,16 @@ static int open_output(RemoteServer *s, Writer *w, const char* host) {
                 assert_not_reached();
         }
 
-        r = journal_file_open_reliably(filename,
-                                       O_RDWR|O_CREAT, 0640,
-                                       s->compress, UINT64_MAX, s->seal,
-                                       &w->metrics,
-                                       w->mmap, NULL,
-                                       NULL, &w->journal);
+        r = journald_file_open_reliably(filename,
+                                        O_RDWR|O_CREAT, 0640,
+                                        s->compress, UINT64_MAX, s->seal,
+                                        &w->metrics,
+                                        w->mmap, NULL,
+                                        NULL, &w->journal);
         if (r < 0)
                 return log_error_errno(r, "Failed to open output journal %s: %m", filename);
 
-        log_debug("Opened output file %s", w->journal->path);
+        log_debug("Opened output file %s", w->journal->file->path);
         return 0;
 }
 
@@ -243,13 +243,13 @@ int journal_remote_add_source(RemoteServer *s, int fd, char* name, bool own_name
                 r = sd_event_add_defer(s->events, &source->buffer_event,
                                        dispatch_raw_source_until_block, source);
                 if (r == 0)
-                        sd_event_source_set_enabled(source->buffer_event, SD_EVENT_OFF);
+                        r = sd_event_source_set_enabled(source->buffer_event, SD_EVENT_OFF);
         } else if (r == -EPERM) {
                 log_debug("Falling back to sd_event_add_defer for fd:%d (%s)", fd, name);
                 r = sd_event_add_defer(s->events, &source->event,
                                        dispatch_blocking_source_event, source);
                 if (r == 0)
-                        sd_event_source_set_enabled(source->event, SD_EVENT_ON);
+                        r = sd_event_source_set_enabled(source->event, SD_EVENT_ON);
         }
         if (r < 0) {
                 log_error_errno(r, "Failed to register event source for fd:%d: %m",
@@ -429,9 +429,14 @@ static int dispatch_raw_source_until_block(sd_event_source *event,
         sd_event_source_ref(event);
 
         r = journal_remote_handle_raw_source(event, source->importer.fd, EPOLLIN, journal_remote_server_global);
-        if (r != 1)
+        if (r != 1) {
+                int k;
+
                 /* No more data for now */
-                sd_event_source_set_enabled(event, SD_EVENT_OFF);
+                k = sd_event_source_set_enabled(event, SD_EVENT_OFF);
+                if (k < 0)
+                        r = k;
+        }
 
         sd_event_source_unref(event);
 
@@ -449,10 +454,15 @@ static int dispatch_raw_source_event(sd_event_source *event,
         assert(source->buffer_event);
 
         r = journal_remote_handle_raw_source(event, fd, EPOLLIN, journal_remote_server_global);
-        if (r == 1)
+        if (r == 1) {
+                int k;
+
                 /* Might have more data. We need to rerun the handler
                  * until we are sure the buffer is exhausted. */
-                sd_event_source_set_enabled(source->buffer_event, SD_EVENT_ON);
+                k = sd_event_source_set_enabled(source->buffer_event, SD_EVENT_ON);
+                if (k < 0)
+                        r = k;
+        }
 
         return r;
 }