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;
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 */
struct CtdlMessage *msg = NULL;
- /*
- * Process digest recipients
- */
- if ((sc->Users[digestrecp] == NULL)||
- (sc->digestfp == NULL))
+ if (sc->Users[digestrecp] == NULL)
return;
+ /* If there are digest recipients, we have to build a digest */
+ if (sc->digestfp == NULL) {
+
+ sc->digestfp = create_digest_file(&sc->room, 1);
+
+ if (sc->digestfp == NULL)
+ return;
+
+ sc->haveDigest = ftell(sc->digestfp) > 0;
+ if (!sc->haveDigest) {
+ fprintf(sc->digestfp, "Content-type: text/plain\n\n");
+ }
+ sc->haveDigest = 1;
+ }
+
msg = CM_Duplicate(omsg);
if (msg != NULL) {
+ sc->haveDigest = 1;
fprintf(sc->digestfp,
" -----------------------------------"
"------------------------------------"
sc = (SpoolControl *)userdata;
- msg = CtdlFetchMessage(msgnum, 1);
+ msg = CtdlFetchMessage(msgnum, 1, 1);
if (msg == NULL)
{