chiark
/
gitweb
/
~ian
/
inn-innduct.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
run debian/rules patch
[inn-innduct.git]
/
nnrpd
/
article.c
diff --git
a/nnrpd/article.c
b/nnrpd/article.c
index e0f5b05d12ceed66ad29862c16420afc1f81452c..5b9160edfa9b2896747482c03efd213c63760afe 100644
(file)
--- a/
nnrpd/article.c
+++ b/
nnrpd/article.c
@@
-688,6
+688,7
@@
void CMDfetch(int ac, char *av[])
if (ac > 1)
ARTnumber = tart;
if ((msgid = GetHeader("Message-ID")) == NULL) {
if (ac > 1)
ARTnumber = tart;
if ((msgid = GetHeader("Message-ID")) == NULL) {
+ ARTclose();
Reply("%s\r\n", ARTnoartingroup);
return;
}
Reply("%s\r\n", ARTnoartingroup);
return;
}
@@
-745,9
+746,9
@@
void CMDnextlast(int ac UNUSED, char *av[])
if (!ARTopen(ARTnumber))
continue;
msgid = GetHeader("Message-ID");
if (!ARTopen(ARTnumber))
continue;
msgid = GetHeader("Message-ID");
+ ARTclose();
} while (msgid == NULL);
} while (msgid == NULL);
- ARTclose();
Reply("%d %d %s Article retrieved; request text separately.\r\n",
NNTP_NOTHING_FOLLOWS_VAL, ARTnumber, msgid);
}
Reply("%d %d %s Article retrieved; request text separately.\r\n",
NNTP_NOTHING_FOLLOWS_VAL, ARTnumber, msgid);
}
@@
-854,9
+855,7
@@
void CMDxover(int ac, char *av[])
/* Parse range. */
if (!CMDgetrange(ac, av, &range, &DidReply)) {
/* 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;
}
}
return;
}
}
@@
-1010,6
+1009,12
@@
void CMDpat(int ac, char *av[])
Printf("%d No such article.\r\n", NNTP_DONTHAVEIT_VAL);
break;
}
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
Printf("%d %s matches follow (ID)\r\n", NNTP_HEAD_FOLLOWS_VAL,
header);
if ((text = GetHeader(header)) != NULL
@@
-1028,10
+1033,7
@@
void CMDpat(int ac, char *av[])
/* Range specified. */
if (!CMDgetrange(ac - 1, av + 1, &range, &DidReply)) {
/* 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;
}
}
break;
}
}
@@
-1052,8
+1054,8
@@
void CMDpat(int ac, char *av[])
SendIOb(buff, strlen(buff));
SendIOb(p, strlen(p));
SendIOb("\r\n", 2);
SendIOb(buff, strlen(buff));
SendIOb(p, strlen(p));
SendIOb("\r\n", 2);
- ARTclose();
}
}
+ ARTclose();
}
SendIOb(".\r\n", 3);
PushIOb();
}
SendIOb(".\r\n", 3);
PushIOb();