X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Flistdeliver%2Fserv_listdeliver.c;h=d8b3060f1013b8a8ebeb23cb670f75ec1ccee4be;hb=0349f8cc90767aa5ec7ab5690d94c76686c378ab;hp=2fe3bcec50dd898371908f2f62e7c9a36c7d030c;hpb=77dc5d1730634ba7d115ca63e4ce937aa2466d5d;p=citadel.git diff --git a/citadel/modules/listdeliver/serv_listdeliver.c b/citadel/modules/listdeliver/serv_listdeliver.c index 2fe3bcec5..d8b3060f1 100644 --- a/citadel/modules/listdeliver/serv_listdeliver.c +++ b/citadel/modules/listdeliver/serv_listdeliver.c @@ -43,8 +43,52 @@ int doing_listdeliver = 0; +void listdeliver_do_msg(long msgnum, void *userdata) { +} + void listdeliver_sweep_room(struct ctdlroom *qrbuf, void *data) { + char *serialized_config = NULL; + long lastsent = 0; + char buf[SIZ]; + int config_lines; + int i; + int number_of_messages_processed = 0; + int number_of_recipients = 0; + + if (CtdlGetRoom(&CC->room, qrbuf->QRname)) { + syslog(LOG_DEBUG, "listdeliver: no room <%s>", qrbuf->QRname); + return; + } + + serialized_config = LoadRoomNetConfigFile(qrbuf->QRnumber); + if (!serialized_config) { + return; // no netconfig, no processing, no problem + } + + config_lines = num_tokens(serialized_config, '\n'); + for (i=0; i 0) { + syslog(LOG_DEBUG, "listdeliver: processing new messages in <%s> for <%d> recipients", qrbuf->QRname, number_of_recipients); + number_of_messages_processed = CtdlForEachMessage(MSGS_GT, lastsent, NULL, NULL, NULL, listdeliver_do_msg, NULL); + syslog(LOG_DEBUG, "listdeliver: processed %d messages", number_of_messages_processed); + + if (number_of_messages_processed > 0) { + // FIXME write lastsent back to netconfig + } + } + + free(serialized_config); }