From: Ian Jackson Date: Sun, 18 Apr 2010 13:57:04 +0000 (+0100) Subject: Rename some of the files X-Git-Tag: innduct-0.1~172 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=innduct.git;a=commitdiff_plain;h=0b3c60f3feea900138009004d8b801ee9a03f58f Rename some of the files --- diff --git a/backends/innduct.c b/backends/innduct.c index 092c693..f64a453 100644 --- a/backends/innduct.c +++ b/backends/innduct.c @@ -15,24 +15,29 @@ * or might be blanked out * .... * - * site.name_duct.lock lock preventing multiple ducts - * holder of this lock is "duct" * F site.name main feed file * opened/created, then written, by innd * read by duct * unlinked by duct * tokens blanked out by duct when processed - * D site.name_duct temporary feed file during flush (or crash) + * site.name_lock lock preventing multiple ducts + * to hold lock must open,F_SETLK[W] + * and then stat to check that locked file + * still has name site.name_lock + * holder of this lock is "duct" + * (only) lockholder may remove the lockfile + * D site.name_flushing temporary feed file during flush (or crash) * hardlink created by duct * unlinked by duct - * site.name_duct.defer 431'd articles, still being written, + * site.name_defer 431'd articles, still being written, * created, written, used by duct * - * site.name_backlog_. + * site.name_backlog.. * 431'd articles, ready for innxmit or duct * created (link/mv) by duct - * site.name_backlog_ eg - * site.name_backlog_manual + * site.name_backlog (where does not + * contain '#' or '~') eg + * site.name_backlog.manual * anything the sysadmin likes (eg, feed files * from old feeds to be merged into this one) * created (link/mv) by admin @@ -291,7 +296,7 @@ static int nconns; static LIST(Conn) idle, working, full; static LIST(Article) *queue; -static char *path_ductlock, *path_duct, *path_ductdefer; +static char *path_lock, *path_flushing, *path_defer; #define SMS(newstate, periods, why) \ (statemc_setstate(sm_##newstate,(periods),#newstate,(why))) @@ -1063,7 +1068,7 @@ static void *peer_rd_ok(oop_source *lp, oop_read *oread, oop_event ev, open_defer(); if (fprintf(defer, "%s %s\n", TokenToText(art->token), art->messageid) <0 || fflush(defer)) - sysfatal("write to defer file %s",path_ductdefer); + sysfatal("write to defer file %s",path_defer); article_done(conn, art, RC_deferred); break; @@ -1177,7 +1182,7 @@ typedef void *feedfile_got_article(oop_source *lp, oop_read *rd, (unsigned long)ipf->offset, (unsigned long)flush_threshold); int r= link(feedfile, duct_path); - if (r) sysdie("link feedfile %s to ductfile %s", feedfile, dut_path); + if (r) sysdie("link feedfile %s to flushing file %s", feedfile, dut_path); /* => Hardlinked */ r= unlink(feedfile); @@ -1476,14 +1481,14 @@ static void statemc_init(void) { struct stat stab, stabf; int noent; - path_ductlock= xasprintf("%s_duct.lock", feedfile); - path_duct= xasprintf("%s_duct", feedfile); - path_ductdefer= xasprintf("%s_duct.defer", feedfile); - globpat_backlog= xasprintf("%s_backlog_*", feedfile); + path_lock= xasprintf("%s_lock", feedfile); + path_flushing= xasprintf("%s_flushing", feedfile); + path_defer= xasprintf("%s_defer", feedfile); + globpat_backlog= xasprintf("%s_backlog*", feedfile); for (;;) { - int lockfd= open(path_ductlock, O_CREAT|O_RDWR, 0600); - if (lockfd<0) sysfatal("open lockfile %s", path_ductlock); + int lockfd= open(path_lock, O_CREAT|O_RDWR, 0600); + if (lockfd<0) sysfatal("open lockfile %s", path_lock); struct flock fl; memset(&fl,0,sizeof(fl)); @@ -1495,23 +1500,23 @@ static void statemc_init(void) { if (quiet_if_locked) exit(0); fatal("another duct holds the lockfile"); } - sysdie("fcntl F_SETLK lockfile %s", path_ductlock); + sysdie("fcntl F_SETLK lockfile %s", path_lock); } xfstat_isreg(lockfd, &stabf, "lockfile"); - xlstat_isreg(path_ductlock, &stab, &noent, "lockfile"); + xlstat_isreg(path_lock, &stab, &noent, "lockfile"); if (!noent && samefile(&stab, &stabf)) break; if (close(lockfd)) - sysdie("could not close stale lockfile %s", path_ductlock); + sysdie("could not close stale lockfile %s", path_lock); } debug("startup: locked"); search_backlog_file(); - xlstat_isreg(path_ductdefer, &stab, &noent, "defer file"); + xlstat_isreg(path_defer, &stab, &noent, "defer file"); if (noent) { debug("startup: ductdefer ENOENT"); } else { @@ -1531,7 +1536,7 @@ static void statemc_init(void) { } } - InputFile *file_d= open_input_file(path_duct); + InputFile *file_d= open_input_file(path_flushing); if (file_d) { struct stat stab_f, stab_d; @@ -1544,11 +1549,11 @@ static void statemc_init(void) { debug("startup: F and D both exist"); - xfstat_isreg(file_d->fd, &stab_d, "ductfile"); + xfstat_isreg(file_d->fd, &stab_d, "flushing file"); if (samefile(&stab_d, &stab_f)) { debug("startup: F==D => Hardlinked"); - r= unlink(path_duct); + r= unlink(path_flushing); if (r) sysdie("unlink feed file %s during startup", feedfile); found_moved: debug(" => Moved"); @@ -1627,8 +1632,8 @@ static void *statemc_check_input_done(oop_source *lp, close_defer(); - if (unlink(path_duct)) - sysdie("could not unlink old duct file %s", path_duct); + if (unlink(path_flushing)) + sysdie("could not unlink old flushing file %s", path_flushing); if (sms==sm_DROPPING) { if (search_backlog_file()) { @@ -1636,8 +1641,8 @@ static void *statemc_check_input_done(oop_source *lp, return; } notice("feed dropped and our work is complete"); - r= unlink(path_ductlock); - if (r) sysdie("unlink lock file for old feed %s", path_ductlock); + r= unlink(path_lock); + if (r) sysdie("unlink lockfile for old feed %s", path_lock); exit(0); } @@ -1668,15 +1673,15 @@ static void open_defer(void) { if (defer) return; - defer= fopen(path_ductdefer, "a+"); - if (!defer) sysfatal("could not open defer file %s", path_ductdefer); + defer= fopen(path_defer, "a+"); + if (!defer) sysfatal("could not open defer file %s", path_defer); /* truncate away any half-written records */ xfstat_isreg(fileno(defer), &stab, "newly opened defer file"); if (stab.st_size > LONG_MAX) - die("defer file %s size is far too large", path_ductdefer); + die("defer file %s size is far too large", path_defer); if (!stab.st_size) return; @@ -1686,14 +1691,14 @@ static void open_defer(void) { for (;;) { if (!truncto) break; /* was only (if anything) one half-truncated record */ if (fseek(defer, truncto-1, SEEK_SET) < 0) - sysdie("seek in defer file %s while truncating partial", path_ductdefer); + sysdie("seek in defer file %s while truncating partial", path_defer); r= getc(defer); if (r==EOF) { if (ferror(defer)) - sysdie("failed read from defer file %s", path_ductdefer); + sysdie("failed read from defer file %s", path_defer); else - die("defer file %s shrank while we were checking it!", path_ductdefer); + die("defer file %s shrank while we were checking it!", path_defer); } if (r=='\n') break; truncto--; @@ -1702,19 +1707,19 @@ static void open_defer(void) { if (stab.st_size != truncto) { warn("truncating half-record at end of defer file %s -" " shrinking by %ld bytes from %ld to %ld", - path_ductdefer, orgsize - truncto, orgsize, truncto); + path_defer, orgsize - truncto, orgsize, truncto); if (fflush(defer)) - sysfatal("could not flush defer file %s", path_ductdefer); + sysfatal("could not flush defer file %s", path_defer); if (ftruncate(fileno(defer), truncto)) - sysdie("could not truncate defer file %s", path_ductdefer); + sysdie("could not truncate defer file %s", path_defer); } else { info("continuing existing defer file %s (%ld bytes)", - path_ductdefer, orgsize); + path_defer, orgsize); } if (fseek(defer, truncto, SEEK_SET)) - sysdie("could not seek to new end of defer file %s", path_ductdefer); + sysdie("could not seek to new end of defer file %s", path_defer); } static void close_defer(void) { @@ -1770,6 +1775,11 @@ static int search_backlog_file(void) { case 0: for (i=0; i