chiark / gitweb /
networkd: tunnel - allow INADDR_ANY as the local address
[elogind.git] / src / journal-remote / journal-remote-parse.h
index 5b7f23650cbf9d3863360d058df2fd8a90d04248..8499f4eb828cf7a325b19a07b31fb55f622dae99 100644 (file)
@@ -35,21 +35,27 @@ typedef enum {
 typedef struct RemoteSource {
         char *name;
         int fd;
+        bool passive_fd;
 
         char *buf;
-        size_t size;
-        size_t scanned;
-        size_t filled;
-        size_t data_size;
+        size_t size;       /* total size of the buffer */
+        size_t offset;     /* offset to the beginning of live data in the buffer */
+        size_t scanned;    /* number of bytes since the beginning of data without a newline */
+        size_t filled;     /* total number of bytes in the buffer */
+        size_t data_size;  /* size of the binary data chunk being processed */
 
         struct iovec_wrapper iovw;
 
         source_state state;
         dual_timestamp ts;
 
+        Writer *writer;
+
         sd_event_source *event;
 } RemoteSource;
 
+RemoteSource* source_new(int fd, bool passive_fd, char *name, Writer *writer);
+
 static inline size_t source_non_empty(RemoteSource *source) {
         assert(source);
 
@@ -59,4 +65,4 @@ static inline size_t source_non_empty(RemoteSource *source) {
 void source_free(RemoteSource *source);
 int process_data(RemoteSource *source);
 int push_data(RemoteSource *source, const char *data, size_t size);
-int process_source(RemoteSource *source, Writer *writer, bool compress, bool seal);
+int process_source(RemoteSource *source, bool compress, bool seal);