X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fnntp%2Fserv_nntp.c;h=6a75c622a5cd0e9c5b7845e7327b7f940171a9da;hb=09347a0495a9390ce5c015ab25192f7446b189c6;hp=fb81dd9b14211bc4fdf837153f6811215dfabbcd;hpb=a0c07d90538480cc46a6e67dac519f56d9d29e00;p=citadel.git diff --git a/citadel/modules/nntp/serv_nntp.c b/citadel/modules/nntp/serv_nntp.c index fb81dd9b1..6a75c622a 100644 --- a/citadel/modules/nntp/serv_nntp.c +++ b/citadel/modules/nntp/serv_nntp.c @@ -761,6 +761,7 @@ void nntp_article(const char *cmd) { // At this point we know the message number of the "article" being requested. // We have an awesome API call that does all the heavy lifting for us. + char *fetched_message_id = NULL; CC->redirect_buffer = NewStrBufPlain(NULL, SIZ); int fetch = CtdlOutputMsg(requested_msgnum, MT_RFC822, // output in RFC822 format ... sort of @@ -771,7 +772,7 @@ void nntp_article(const char *cmd) { 0, // no flags yet ... maybe new ones for Path: etc ? NULL, NULL, - NULL // FIXME this is where we grab teh message ID !! + &fetched_message_id // extract the message ID from the message as we go... ); StrBuf *msgtext = CC->redirect_buffer; CC->redirect_buffer = NULL; @@ -783,16 +784,16 @@ void nntp_article(const char *cmd) { } if (acmd == ARTICLE) { - cprintf("220 %ld \r\n", requested_msgnum); + cprintf("220 %ld <%s>\r\n", requested_msgnum, fetched_message_id); } if (acmd == HEAD) { - cprintf("221 %ld \r\n", requested_msgnum); + cprintf("221 %ld <%s>\r\n", requested_msgnum, fetched_message_id); } if (acmd == BODY) { - cprintf("222 %ld \r\n", requested_msgnum); + cprintf("222 %ld <%s>\r\n", requested_msgnum, fetched_message_id); } if (acmd == STAT) { - cprintf("223 %ld \r\n", requested_msgnum); + cprintf("223 %ld <%s>\r\n", requested_msgnum, fetched_message_id); FreeStrBuf(&msgtext); return; } @@ -800,6 +801,7 @@ void nntp_article(const char *cmd) { client_write(SKEY(msgtext)); cprintf(".\r\n"); // this protocol uses a dot terminator FreeStrBuf(&msgtext); + if (fetched_message_id) free(fetched_message_id); }