if (ac > 1)
ARTnumber = tart;
if ((msgid = GetHeader("Message-ID")) == NULL) {
+ ARTclose();
Reply("%s\r\n", ARTnoartingroup);
return;
}
if (!ARTopen(ARTnumber))
continue;
msgid = GetHeader("Message-ID");
+ ARTclose();
} while (msgid == NULL);
- ARTclose();
Reply("%d %d %s Article retrieved; request text separately.\r\n",
NNTP_NOTHING_FOLLOWS_VAL, ARTnumber, msgid);
}
/* Parse range. */
if (!CMDgetrange(ac, av, &range, &DidReply)) {
- if (!DidReply) {
- Reply("%d data follows\r\n", NNTP_OVERVIEW_FOLLOWS_VAL);
- Printf(".\r\n");
+ if (DidReply) {
return;
}
}
Printf("%d No such article.\r\n", NNTP_DONTHAVEIT_VAL);
break;
}
+ if (!PERMartok()) {
+ ARTclose();
+ Printf("%s\r\n", NOACCESS);
+ break;
+ }
+
Printf("%d %s matches follow (ID)\r\n", NNTP_HEAD_FOLLOWS_VAL,
header);
if ((text = GetHeader(header)) != NULL
/* Range specified. */
if (!CMDgetrange(ac - 1, av + 1, &range, &DidReply)) {
- if (!DidReply) {
- Reply("%d %s no matches follow (range)\r\n",
- NNTP_HEAD_FOLLOWS_VAL, header ? header : "\"\"");
- Printf(".\r\n");
+ if (DidReply) {
break;
}
}
SendIOb(buff, strlen(buff));
SendIOb(p, strlen(p));
SendIOb("\r\n", 2);
- ARTclose();
}
+ ARTclose();
}
SendIOb(".\r\n", 3);
PushIOb();