]> jfr.im git - solanum.git/blobdiff - src/privilege.c
move README to markdown.
[solanum.git] / src / privilege.c
index 239b7796d75cd4ba3c207b1968ddf92b8f70379a..c082cbcae2748503374f7f0413aea3ebc89d45d3 100644 (file)
 #include <stdinc.h>
 #include "s_conf.h"
 #include "privilege.h"
+#include "numeric.h"
+#include "s_assert.h"
+#include "logger.h"
+#include "send.h"
 
 static rb_dlink_list privilegeset_list = {};
 
@@ -167,7 +171,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 +195,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);
+       }
+}