From 4fedb8d5970b7c19fdefdce9d7768e4db97acde3 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Sun, 2 Dec 2001 02:42:55 +0000 Subject: [PATCH] * Implemented new room flag QR2_SYSTEM which supresses the room from all room listings, even for Aides (but it's still gotoable). This will be used for rooms which hold system configuration and message queues. --- citadel/ChangeLog | 6 ++++++ citadel/citadel.h | 1 + citadel/control.c | 2 +- citadel/ipcdef.h | 2 ++ citadel/room_ops.c | 7 ++++++- citadel/serv_vandelay.c | 2 ++ 6 files changed, 18 insertions(+), 2 deletions(-) diff --git a/citadel/ChangeLog b/citadel/ChangeLog index f5512c297..4602dd83a 100644 --- a/citadel/ChangeLog +++ b/citadel/ChangeLog @@ -1,4 +1,9 @@ $Log$ + Revision 580.84 2001/12/02 02:42:55 ajc + * Implemented new room flag QR2_SYSTEM which supresses the room from all + room listings, even for Aides (but it's still gotoable). This will be used + for rooms which hold system configuration and message queues. + Revision 580.83 2001/12/01 19:23:26 ajc * clientsocket.c: implement socket timeouts for read operations @@ -2892,3 +2897,4 @@ Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant Fri Jul 10 1998 Art Cancro * Initial CVS import + diff --git a/citadel/citadel.h b/citadel/citadel.h index 6ab28d50a..350b0d495 100644 --- a/citadel/citadel.h +++ b/citadel/citadel.h @@ -173,6 +173,7 @@ struct quickroom { struct ExpirePolicy QRep; /* Message expiration policy */ long QRnumber; /* Globally unique room number */ char QRorder; /* Sort key for room listing order */ + unsigned QRflags2; /* Additional flags */ }; /* Private rooms are always flagged with QR_PRIVATE. If neither QR_PASSWORDED diff --git a/citadel/control.c b/citadel/control.c index 2b887b60a..db5868d5e 100644 --- a/citadel/control.c +++ b/citadel/control.c @@ -186,7 +186,7 @@ void cmd_conf(char *argbuf) { cprintf("%d\n", config.c_default_filter); cprintf("%d\n", config.c_aide_zap); cprintf("%d\n", config.c_imap_port); - cprintf("%d\n", config.c_net_freq); + cprintf("%ld\n", config.c_net_freq); cprintf("000\n"); } diff --git a/citadel/ipcdef.h b/citadel/ipcdef.h index 487808d5c..203f4454d 100644 --- a/citadel/ipcdef.h +++ b/citadel/ipcdef.h @@ -61,6 +61,8 @@ struct CtdlServInfo { #define QR_READONLY 8192 /* Aide status required to post */ #define QR_MAILBOX 16384 /* Set if this is a private mailbox */ +#define QR2_SYSTEM 1 /* System room; hide by default */ + #define US_NEEDVALID 1 /* User needs to be validated */ #define US_PERM 4 /* Permanent user */ #define US_LASTOLD 16 /* Print last old message with new */ diff --git a/citadel/room_ops.c b/citadel/room_ops.c index d94fad48d..a5a0b34f6 100644 --- a/citadel/room_ops.c +++ b/citadel/room_ops.c @@ -60,7 +60,7 @@ int CtdlRoomAccess(struct quickroom *roombuf, struct usersupp *userbuf) /* For mailbox rooms, only allow access to the owner */ if (roombuf->QRflags & QR_MAILBOX) { if (userbuf->usernum != atol(roombuf->QRname)) { - return (retval); + return(0); } } /* Locate any applicable user/room relationships */ @@ -133,6 +133,11 @@ NEWMSG: /* By the way, we also check for the presence of new messages */ if (is_msg_in_mset(vbuf.v_seen, roombuf->QRhighest) == 0) { retval = retval | UA_HASNEWMSGS; } + + /* System rooms never show up in the list. */ + if (roombuf->QRflags & QR2_SYSTEM) { + retval = retval & ~UA_KNOWN; + } return (retval); } diff --git a/citadel/serv_vandelay.c b/citadel/serv_vandelay.c index 5c62567fa..fee34851a 100644 --- a/citadel/serv_vandelay.c +++ b/citadel/serv_vandelay.c @@ -96,6 +96,7 @@ void artv_export_rooms_backend(struct quickroom *qrbuf, void *data) { cprintf("%d\n", qrbuf->QRep.expire_value); cprintf("%ld\n", qrbuf->QRnumber); cprintf("%d\n", qrbuf->QRorder); + cprintf("%u\n", qrbuf->QRflags2); getroom(&CC->quickroom, qrbuf->QRname); /* format of message list export is all message numbers output @@ -408,6 +409,7 @@ void artv_import_room(void) { client_gets(buf); qrbuf.QRep.expire_value = atoi(buf); client_gets(buf); qrbuf.QRnumber = atol(buf); client_gets(buf); qrbuf.QRorder = atoi(buf); + client_gets(buf); qrbuf.QRflags2 = atoi(buf); putroom(&qrbuf); lprintf(7, "Imported room <%s>\n", qrbuf.QRname); /* format of message list export is all message numbers output -- 2.39.2