From: Wilfried Goesgens Date: Wed, 31 Dec 2014 18:41:38 +0000 (+0100) Subject: Adjust preconditions for attempting a digest delivery. X-Git-Tag: v9.01~58 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=2b57abb4e89077f1bdf104e95203015810cf1a6f Adjust preconditions for attempting a digest delivery. --- diff --git a/citadel/modules/network/netspool.h b/citadel/modules/network/netspool.h index 55454a7fb..cd5f6a1c7 100644 --- a/citadel/modules/network/netspool.h +++ b/citadel/modules/network/netspool.h @@ -36,7 +36,7 @@ struct SpoolControl { StrBuf *RoomInfo; StrBuf *ListID; FILE *digestfp; - int newDigest; + int haveDigest; int num_msgs_spooled; long lastsent; diff --git a/citadel/modules/network/serv_netmail.c b/citadel/modules/network/serv_netmail.c index 2782fbf8f..a1938c64c 100644 --- a/citadel/modules/network/serv_netmail.c +++ b/citadel/modules/network/serv_netmail.c @@ -185,12 +185,6 @@ void network_deliver_digest(SpoolControl *sc) if (sc->Users[digestrecp] == NULL) return; - if (sc->num_msgs_spooled < 1) { - fclose(sc->digestfp); - sc->digestfp = NULL; - return; - } - msg = malloc(sizeof(struct CtdlMessage)); memset(msg, 0, sizeof(struct CtdlMessage)); msg->cm_magic = CTDLMESSAGE_MAGIC; @@ -221,11 +215,9 @@ void network_deliver_digest(SpoolControl *sc) CM_SetAsField(msg, eMesageText, &pbuf, msglen); /* Now generate the delivery instructions */ - if (sc->Users[digestrecp] == NULL) - return; /* Where do we want bounces and other noise to be heard? - *Surely not the list members! */ + * Surely not the list members! */ snprintf(bounce_to, sizeof bounce_to, "room_aide@%s", config.c_fqdn); /* Now submit the message */ @@ -254,6 +246,7 @@ void network_process_digest(SpoolControl *sc, struct CtdlMessage *omsg, long *de msg = CM_Duplicate(omsg); if (msg != NULL) { + sc->haveDigest = 1; fprintf(sc->digestfp, " -----------------------------------" "------------------------------------" diff --git a/citadel/modules/network/serv_netspool.c b/citadel/modules/network/serv_netspool.c index 15f309972..500d931bf 100644 --- a/citadel/modules/network/serv_netspool.c +++ b/citadel/modules/network/serv_netspool.c @@ -357,8 +357,8 @@ void network_spoolout_room(SpoolControl *sc) if (sc->Users[digestrecp] != NULL) { sc->digestfp = create_digest_file(&sc->room); - sc->newDigest = ftell(sc->digestfp) > 0; - if (sc->newDigest) { + sc->haveDigest = ftell(sc->digestfp) > 0; + if (!sc->haveDigest) { fprintf(sc->digestfp, "Content-type: text/plain\n\n"); } } @@ -404,7 +404,8 @@ void network_spoolout_room(SpoolControl *sc) delta = (24 * 60 * 60) - delta; } - if ((secs_today < 300) && + if (sc->haveDigest && + (secs_today < 300) && (delta < 300) ) { last_digest_delivery = now;