]> code.citadel.org Git - citadel.git/blobdiff - citadel/serv_listsub.c
* Extend GETR/SETR to allow twiddling of bits in the QRflags2 bucket
[citadel.git] / citadel / serv_listsub.c
index 7a4cfaba71355b1d5466a966286e2b6d1690f1ba..bd84d60692f54e0616385cebc04b31e981e7d642 100644 (file)
@@ -94,6 +94,13 @@ void do_subscribe(char *room, char *email, char *subtype, char *webpage) {
                return;
        }
 
+       if ((qrbuf.QRflags2 & QR2_SELFLIST) == 0) {
+               cprintf("%d '%s' "
+                       "does not accept subscribe/unsubscribe requests.\n",
+                       ERROR+HIGHER_ACCESS_REQUIRED, qrbuf.QRname);
+               return;
+       }
+
        listsub_generate_token(token);
 
        begin_critical_section(S_NETCONFIGS);
@@ -159,6 +166,13 @@ void do_confirm(char *room, char *token) {
                return;
        }
 
+       if ((qrbuf.QRflags2 & QR2_SELFLIST) == 0) {
+               cprintf("%d '%s' "
+                       "does not accept subscribe/unsubscribe requests.\n",
+                       ERROR+HIGHER_ACCESS_REQUIRED, qrbuf.QRname);
+               return;
+       }
+
        begin_critical_section(S_NETCONFIGS);
        assoc_file_name(filename, sizeof filename, &qrbuf, "netconfigs");
        ncfp = fopen(filename, "r+");