コード例 #1
0
ファイル: post.c プロジェクト: knusbaum/Wily
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;
}
コード例 #2
0
ファイル: finish.c プロジェクト: gefla/empserver
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");

}