Some updates for news
This commit is contained in:
parent
031f1274b7
commit
4aacf882e6
3
TODO
3
TODO
@ -29,6 +29,9 @@ libdiesel.a:
|
|||||||
U: Processed stringlines containing unbalanced " characters are not
|
U: Processed stringlines containing unbalanced " characters are not
|
||||||
processed, instead the previous macro value will be returned.
|
processed, instead the previous macro value will be returned.
|
||||||
|
|
||||||
|
libmsgbase.a:
|
||||||
|
N: Msg.Replyid is not filled. CRC fields are not filled.
|
||||||
|
|
||||||
mbsebbs:
|
mbsebbs:
|
||||||
X: Better word wrapping or paragraph justification in editor.
|
X: Better word wrapping or paragraph justification in editor.
|
||||||
|
|
||||||
|
@ -205,7 +205,6 @@ void ScanNews(void)
|
|||||||
|
|
||||||
while (fread(&Msgs, Msgshdr.recsize, 1, pAreas) == 1) {
|
while (fread(&Msgs, Msgshdr.recsize, 1, pAreas) == 1) {
|
||||||
fseek(pAreas, Msgshdr.syssize, SEEK_CUR);
|
fseek(pAreas, Msgshdr.syssize, SEEK_CUR);
|
||||||
// Syslog('m', "Check newsgroup: %s %d", Msgs.Newsgroup, Msgs.Type);
|
|
||||||
if ((Msgs.Active) && strlen(Msgs.Newsgroup) && (Msgs.Type == NEWS)) {
|
if ((Msgs.Active) && strlen(Msgs.Newsgroup) && (Msgs.Type == NEWS)) {
|
||||||
if (IsSema((char *)"upsalarm")) {
|
if (IsSema((char *)"upsalarm")) {
|
||||||
Syslog('+', "Detected upsalarm semafore, aborting newsscan");
|
Syslog('+', "Detected upsalarm semafore, aborting newsscan");
|
||||||
@ -237,6 +236,9 @@ void ScanNews(void)
|
|||||||
free(tmp->field);
|
free(tmp->field);
|
||||||
free(tmp);
|
free(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nntp_close();
|
||||||
|
|
||||||
do_flush = TRUE;
|
do_flush = TRUE;
|
||||||
if (!do_quiet)
|
if (!do_quiet)
|
||||||
printf("\r \r");
|
printf("\r \r");
|
||||||
|
@ -78,6 +78,16 @@ void send_xlat(char *inp)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
char *make_msgid(unsigned long nr, unsigned long crc)
|
||||||
|
{
|
||||||
|
static char buf[100];
|
||||||
|
|
||||||
|
sprintf(buf, "<%lu$%8lx@%s>", nr, crc, CFG.sysdomain);
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ARTICLE
|
* ARTICLE
|
||||||
* BODY
|
* BODY
|
||||||
@ -135,7 +145,7 @@ void command_abhs(char *buf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (strcasecmp(cmd, "STAT") == 0) {
|
if (strcasecmp(cmd, "STAT") == 0) {
|
||||||
send_nntp("223 %lu <%lu$%s@MBNNTP> Article retrieved", art, art, currentgroup);
|
send_nntp("223 %lu %s Article retrieved", art, make_msgid(art, StringCRC32(Msg.Msgid)));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -147,11 +157,11 @@ void command_abhs(char *buf)
|
|||||||
if (Msg_Read(art, 75)) {
|
if (Msg_Read(art, 75)) {
|
||||||
|
|
||||||
if (strcasecmp(cmd, "ARTICLE") == 0)
|
if (strcasecmp(cmd, "ARTICLE") == 0)
|
||||||
send_nntp("220 %ld <%ld$%s@MBNNTP> Article retrieved - Head and body follow", art, art, currentgroup);
|
send_nntp("220 %ld %s Article retrieved - Head and body follow", art, make_msgid(art, StringCRC32(Msg.Msgid)));
|
||||||
if (strcasecmp(cmd, "HEAD") == 0)
|
if (strcasecmp(cmd, "HEAD") == 0)
|
||||||
send_nntp("221 %ld <%ld$%s@MBNNTP> Article retrieved - Head follows", art, art, currentgroup);
|
send_nntp("221 %ld %s Article retrieved - Head follows", art, make_msgid(art, StringCRC32(Msg.Msgid)));
|
||||||
if (strcasecmp(cmd, "BODY") == 0)
|
if (strcasecmp(cmd, "BODY") == 0)
|
||||||
send_nntp("222 %ld <%ld$%s@MBNNTP> Article retrieved - Body follows", art, art, currentgroup);
|
send_nntp("222 %ld %s Article retrieved - Body follows", art, make_msgid(art, StringCRC32(Msg.Msgid)));
|
||||||
|
|
||||||
if ((strcasecmp(cmd, "ARTICLE") == 0) || (strcasecmp(cmd, "HEAD") == 0)) {
|
if ((strcasecmp(cmd, "ARTICLE") == 0) || (strcasecmp(cmd, "HEAD") == 0)) {
|
||||||
|
|
||||||
@ -160,9 +170,9 @@ void command_abhs(char *buf)
|
|||||||
send_nntp("Newsgroups: %s", currentgroup);
|
send_nntp("Newsgroups: %s", currentgroup);
|
||||||
send_nntp("Subject: %s", Msg.Subject);
|
send_nntp("Subject: %s", Msg.Subject);
|
||||||
send_nntp("Date: %s", rfcdate(Msg.Written));
|
send_nntp("Date: %s", rfcdate(Msg.Written));
|
||||||
send_nntp("Message-ID: <%lu$%s@MBNNTP>", art, currentgroup);
|
send_nntp("Message-ID: %s", make_msgid(art, StringCRC32(Msg.Msgid)));
|
||||||
if (Msg.Reply)
|
if (strlen(Msg.Replyid))
|
||||||
send_nntp("References: <%lu$%s@MBNNTP>", Msg.Reply, currentgroup);
|
send_nntp("References: %s", make_msgid(Msg.Reply, StringCRC32(Msg.Replyid)));
|
||||||
send_nntp("X-JAM-From: %s <%s>", Msg.From, Msg.FromAddress);
|
send_nntp("X-JAM-From: %s <%s>", Msg.From, Msg.FromAddress);
|
||||||
if (strlen(Msg.To))
|
if (strlen(Msg.To))
|
||||||
send_nntp("X-JAM-To: %s", Msg.To);
|
send_nntp("X-JAM-To: %s", Msg.To);
|
||||||
@ -407,10 +417,10 @@ void command_xover(char *cmd)
|
|||||||
} while ((p = (char *)MsgText_Next()) != NULL);
|
} while ((p = (char *)MsgText_Next()) != NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sprintf(msgid, "<%ld$%s@MBNNTP>", i, currentgroup);
|
sprintf(msgid, "%s", make_msgid(i, StringCRC32(Msg.Msgid)));
|
||||||
reply[0] = 0;
|
reply[0] = 0;
|
||||||
if (Msg.Reply)
|
if (strlen(Msg.Replyid))
|
||||||
sprintf(reply, "<%ld$%s@MBNNTP>", Msg.Reply, currentgroup);
|
sprintf(reply, "%s", make_msgid(Msg.Reply, StringCRC32(Msg.Replyid)));
|
||||||
send_nntp("%lu\t%s\t%s <%s>\t%s\t%s\t%s\t%d\t%d", i, Msg.Subject, Msg.From, Msg.FromAddress,
|
send_nntp("%lu\t%s\t%s <%s>\t%s\t%s\t%s\t%d\t%d", i, Msg.Subject, Msg.From, Msg.FromAddress,
|
||||||
rfcdate(Msg.Written), msgid, reply, bytecount, linecount);
|
rfcdate(Msg.Written), msgid, reply, bytecount, linecount);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user