+/*
+ * 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;
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;
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;
globfree(&gl);
return;
}
-