void nDeliver(rdWin *w, nGroup *g, int first, int last, char *arg) { nWin *nw; char *filename = tmpnam((char *)0); assert(w); assert(w->userp); assert(filename); DPRINT("Delivering message"); if ((nw = findNWin(w->userp)) == 0) { DPRINT("Couldn't find associated composition window - aborting"); return; } if (nw->kind != nCompArt) { DPRINT("Deliver not applied to composition window - ignored"); return; } rdBodyToFile(w, filename); if (nw->isrep) dodeliver(w,filename); if (nw->ispost) nntpPost(filename); (void)remove(filename); DPRINT("Deliver done"); closeWin(w); freeNWin(nw); return; }
void finish_sects(int etu) { static double *import_cost; struct sctstr *sp; int n; struct rusage rus1, rus2; if (import_cost == NULL) { logerror("First update since reboot, allocating buffer\n"); import_cost = malloc(WORLD_SZ() * sizeof(*import_cost)); if (import_cost == NULL) { logerror("malloc failed in finish_sects.\n"); return; } } logerror("delivering...\n"); /* Do deliveries */ for (n = 0; NULL != (sp = getsectid(n)); n++) { if (!sp->sct_own || sp->sct_type == SCT_SANCT) continue; if (nat_budget[sp->sct_own].money < 0) continue; dodeliver(sp); } logerror("done delivering\n"); logerror("assembling paths...\n"); getrusage(RUSAGE_SELF, &rus1); assemble_dist_paths(import_cost); getrusage(RUSAGE_SELF, &rus2); logerror("done assembling paths %g user %g system", rus2.ru_utime.tv_sec + rus2.ru_utime.tv_usec / 1e6 - (rus1.ru_utime.tv_sec + rus1.ru_utime.tv_usec / 1e6), rus2.ru_stime.tv_sec + rus2.ru_stime.tv_usec / 1e6 - (rus1.ru_stime.tv_sec + rus1.ru_stime.tv_usec / 1e6)); logerror("exporting..."); for (n = 0; NULL != (sp = getsectid(n)); n++) { if (!sp->sct_own || sp->sct_type == SCT_SANCT) continue; if (nat_budget[sp->sct_own].money < 0) continue; dodistribute(sp, EXPORT, import_cost[n]); } logerror("done exporting\n"); logerror("importing..."); for (n = 0; NULL != (sp = getsectid(n)); n++) { sp->sct_off = 0; if (!sp->sct_own || sp->sct_type == SCT_SANCT) continue; if (nat_budget[sp->sct_own].money < 0) continue; dodistribute(sp, IMPORT, import_cost[n]); } logerror("done importing\n"); }