projects
/
citadel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
994a595
)
abortion is murder
author
Art Cancro
<ajc@uncensored.citadel.org>
Fri, 31 Jan 2014 23:01:37 +0000
(18:01 -0500)
committer
Art Cancro
<ajc@uncensored.citadel.org>
Fri, 31 Jan 2014 23:01:37 +0000
(18:01 -0500)
citadel/modules/nntp/serv_nntp.c
patch
|
blob
|
history
diff --git
a/citadel/modules/nntp/serv_nntp.c
b/citadel/modules/nntp/serv_nntp.c
index 249ae12f0019a786f3b39b76e47b84d1a1daf706..79d73dd779b4b7f31ae709e66445109030dd61f3 100644
(file)
--- a/
citadel/modules/nntp/serv_nntp.c
+++ b/
citadel/modules/nntp/serv_nntp.c
@@
-366,12
+366,20
@@
struct nntp_msglist nntp_fetch_msglist(struct ctdlroom *qrbuf) {
+enum {
+ NNTP_LIST_ACTIVE,
+ NNTP_LIST_ACTIVE_TIMES,
+ NNTP_LIST_DISTRIB_PATS,
+ NNTP_LIST_HEADERS,
+ NNTP_LIST_NEWSGROUPS,
+ NNTP_LIST_OVERVIEW_FMT
+};
/*
/*
- * Output a room name (newsgroup name) in
the format
required for LIST and NEWGROUPS command
+ * Output a room name (newsgroup name) in
formats
required for LIST and NEWGROUPS command
*/
*/
-void output_roomname_in_list_format(struct ctdlroom *qrbuf) {
+void output_roomname_in_list_format(struct ctdlroom *qrbuf
, int which_format
) {
char n_name[1024];
struct nntp_msglist nm;
long low_water_mark = 0;
char n_name[1024];
struct nntp_msglist nm;
long low_water_mark = 0;
@@
-384,8
+392,16
@@
void output_roomname_in_list_format(struct ctdlroom *qrbuf) {
high_water_mark = nm.msgnums[nm.num_msgs - 1];
}
high_water_mark = nm.msgnums[nm.num_msgs - 1];
}
- // FIXME we have hardcoded "n" for "no posting allowed" -- fix when we add posting
- cprintf("%s %ld %ld n\r\n", n_name, high_water_mark, low_water_mark);
+ switch(which_format) {
+ case NNTP_LIST_ACTIVE:
+ // FIXME we have hardcoded "n" for "no posting allowed" -- fix when we add posting
+ cprintf("%s %ld %ld n\r\n", n_name, high_water_mark, low_water_mark);
+ break;
+ case NNTP_LIST_NEWSGROUPS:
+ cprintf("%s %s\r\n", n_name, qrbuf->QRname);
+ break;
+ }
+
if (nm.msgnums != NULL) {
free(nm.msgnums);
}
if (nm.msgnums != NULL) {
free(nm.msgnums);
}
@@
-413,7
+429,7
@@
void nntp_newgroups_backend(struct ctdlroom *qrbuf, void *data)
if (ra & UA_KNOWN) {
if (qrbuf->QRgen >= thetime) {
if (ra & UA_KNOWN) {
if (qrbuf->QRgen >= thetime) {
- output_roomname_in_list_format(qrbuf);
+ output_roomname_in_list_format(qrbuf
, NNTP_LIST_ACTIVE
);
}
}
}
}
}
}
@@
-511,6
+527,10
@@
void nntp_command_loop(void)
nntp_newgroups(ChrPtr(Cmd));
}
nntp_newgroups(ChrPtr(Cmd));
}
+ //else if (!strcasecmp(cmdname, "list")) {
+ //nntp_list(ChrPtr(Cmd));
+ //}
+
else {
cprintf("500 I'm afraid I can't do that.\r\n");
}
else {
cprintf("500 I'm afraid I can't do that.\r\n");
}