/*
- * bugs
- *
-
- [740] <sit> info: processed feedfile(null) read=4(+0bl,+6err) offered=5(ch5,nc0) accepted=0(ch0+nc0) unwanted=0(0id+0bd+0nc) rejected=0(0id+0bd+0nc) deferred=0(0id+0bd+0nc) missing=2(0id+2bd+0nc) connretry=0(0id+0bd+0nc)
-
- (null) ?!
-
- also unwanted should be nonzero I think
-
- %d( is too hard to read
-
- [740] <sit> warning: corrupted file: /home/ian/things/Innfeed/inn2-2.4.5/fee, offset 349: line partially blanked: in ` @050000002D130000006A0000000000000000@ <mi'..
-
+ * warning if no inotify
+ * inotify not working ?
+ * some per-conn info thing for control
* todo
+
* - actually do something with readable on control master
* - option for realsockdir
* - option for filepoll
RCN(missing) \
RCN(connretry)
-#define RCI_TRIPLE_FMT_BASE "%d(%did+%dbd+%dnc)"
+#define RCI_TRIPLE_FMT_BASE "%d (id=%d,bod=%d,nc=%d)"
#define RCI_TRIPLE_VALS_BASE(counts,x) \
counts[art_Unchecked] x \
+ counts[art_Wanted] x \
while (art->blanklen) {
static const char spaces[]=
+ " "
+ " "
+ " "
+ " "
+ " "
" "
" "
" "
art->midlen= midlen;
art->ipf= ipf; ipf->inprogress++;
art->token= TextToToken(tokentextbuf);
- art->offset= ipf->offset;
+ art->offset= old_offset;
art->blanklen= recsz;
strcpy(art->messageid, space+1);
LIST_ADDTAIL(queue, art);
/*---------- filemon implemented with inotify ----------*/
-#if defined(HAVE_INOTIFY) && !defined(HAVE_FILEMON)
+#if defined(HAVE_SYS_INOTIFY_H) && !defined(HAVE_FILEMON)
#define HAVE_FILEMON
-#include <linux/inotify.h>
+#include <sys/inotify.h>
static int filemon_inotify_fd;
static int filemon_inotify_wdmax;
static int filemon_method_init(void) {
filemon_inotify_fd= inotify_init();
if (filemon_inotify_fd<0) {
- syswarn("could not initialise inotify: inotify_init failed");
+ syswarn("filemon/inotify: inotify_init failed");
return 0;
}
set nonblock;
struct Filemon_Perfile { int dummy; };
-static int filemon_method_init(void) { return 0; }
+static int filemon_method_init(void) {
+ warn("filemon/dummy: no filemon method compiled in");
+ return 0;
+}
static void filemon_method_startfile(InputFile *ipf, Filemon_Perfile *pf) { }
static void filemon_method_stopfile(InputFile *ipf, Filemon_Perfile *pf) { }
#define CNT(art,rc) (ipf->counts[art_##art][RC_##rc])
- info("processed %s%s read=%d(+%dbl,+%derr)"
- " offered=%d(ch%d,nc%d) accepted=%d(ch%d+nc%d)"
+ info("processed %s%s read=%d (+bl=%d,+err=%d)"
+ " offered=%d (ch=%d,nc=%d) accepted=%d (ch=%d,nc=%d)"
RESULT_COUNTS(RCI_NOTHING, RCI_TRIPLE_FMT)
,
what, spec,
const char *under= strchr(slash, '_');
const char *rest= under ? under+1 : leaf;
if (!strncmp(rest,"backlog",7)) rest += 7;
- notice_processed(ipf,"backlog:",rest);
+ notice_processed(ipf,"backlog ",rest);
close_input_file(ipf);
if (unlink(ipf->path)) {
assert(sms==sm_SEPARATED || sms==sm_DROPPING);
- notice_processed(ipf,"feedfile",0);
+ notice_processed(ipf,"feedfile","");
close_defer();
if (sms==sm_SEPARATED) {
notice("flush complete");
- SMS(NORMAL, 0, "flush complete");
+ SMS(NORMAL, spontaneous_flush_periods, "flush complete");
} else if (sms==sm_DROPPING) {
SMS(DROPPED, 0, "old flush complete");
search_backlog_file();
return xasprintf("%p/%s:ip=%ld,off=%ld,fd=%d%s",
ipf, path,
ipf->inprogress, (long)ipf->offset,
- ipf->fd, ipf->rd ? "+" : "");
+ ipf->fd, ipf->rd ? "" : ",!rd");
}
static void period(void) {
debug("PERIOD"
" sms=%s[%d] conns=%d queue=%d until_connect=%d"
- " input_files main:%s old:%s flushing:%s"
+ " input_files main:%s flushing:%s backlog:%s"
" children connecting=%ld inndcomm=%ld"
,
sms_names[sms], sm_period_counter,
control_init();
if (!filemon_method_init()) {
- warn("no file monitoring available, polling");
+ warn("filemon: no file monitoring available, polling");
every(5,0,filepoll);
}