]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/privilege.c
Correct error message involving no fingerprint credentials or password credentials...
[irc/rqf/shadowircd.git] / src / privilege.c
index 239b7796d75cd4ba3c207b1968ddf92b8f70379a..6b2c8b703bc4af872f341796bdeff02e4329a274 100644 (file)
@@ -24,6 +24,7 @@
 #include <stdinc.h>
 #include "s_conf.h"
 #include "privilege.h"
+#include "numeric.h"
 
 static rb_dlink_list privilegeset_list = {};
 
@@ -167,7 +168,13 @@ privilegeset_mark_all_illegal(void)
        {
                struct PrivilegeSet *set = (struct PrivilegeSet *) iter->data;
 
+               /* the "default" privset is special and must remain available */
+               if (!strcmp(set->name, "default"))
+                       continue;
+
                set->status |= CONF_ILLEGAL;
+               rb_free(set->privs);
+               set->privs = rb_strdup("");
                /* but do not free it yet */
        }
 }
@@ -185,3 +192,20 @@ privilegeset_delete_all_illegal(void)
                privilegeset_unref(set);
        }
 }
+
+void
+privilegeset_report(struct Client *source_p)
+{
+       rb_dlink_node *ptr;
+
+       RB_DLINK_FOREACH(ptr, privilegeset_list.head)
+       {
+               struct PrivilegeSet *set = ptr->data;
+
+               /* use RPL_STATSDEBUG for now -- jilles */
+               sendto_one_numeric(source_p, RPL_STATSDEBUG,
+                               "O :%s %s",
+                               set->name,
+                               set->privs);
+       }
+}