chiark / gitweb /
Legal notice if no arguments supplied
[innduct.git] / defer.c
diff --git a/defer.c b/defer.c
index 9af9d58bd0a3fc9d456f932f69f1910189b5532b..ba2b302abd46e14737c148c0cffecb5edbb14a94 100644 (file)
--- a/defer.c
+++ b/defer.c
@@ -1,6 +1,45 @@
+/*
+ *  innduct
+ *  tailing reliable realtime streaming feeder for inn
+ *  defer.c - handling of defer and backlog files
+ *
+ *  Copyright (C) 2010 Ian Jackson <ijackson@chiark.greenend.org.uk>
+ * 
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ * 
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ * 
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ *  (I believe that when you compile and link this as part of the inn2
+ *  build, with the Makefile runes I have provided, all the libraries
+ *  and files which end up included in innduct are licence-compatible
+ *  with GPLv3.  If not then please let me know.  -Ian Jackson.)
+ */
+
+#include "innduct.h"
+
 /*---------- defer and backlog files ----------*/
 
-static void open_defer(void) {
+/*
+ * Backlog files are also processed by innduct.  We find the oldest
+ * backlog file which is at least a certain amount old, and feed it
+ * back into our processing.  When every article in it has been read
+ * and processed, we unlink it and look for another backlog file.
+ *
+ * If we don't have a backlog file that we're reading, we close the
+ * defer file that we're writing and make it into a backlog file at
+ * the first convenient opportunity.
+ */
+
+void open_defer(void) {
   struct stat stab;
 
   if (defer) return;
@@ -54,7 +93,7 @@ static void open_defer(void) {
     syscrash("could not seek to new end of defer file %s", path_defer);
 }
 
-static void close_defer(void) {
+void close_defer(void) {
   if (!defer)
     return;
 
@@ -89,7 +128,7 @@ void poll_backlog_file(void) {
   search_backlog_file();
 }
 
-static void search_backlog_file(void) {
+void search_backlog_file(void) {
   /* returns non-0 iff there are any backlog files */
 
   glob_t gl;
@@ -189,4 +228,3 @@ static void search_backlog_file(void) {
   globfree(&gl);
   return;
 }
-