]> jfr.im git - irc/rqf/shadowircd.git/commitdiff
m_privs: Add stuff for privsets here too.
authorWilliam Pitcock <redacted>
Sun, 17 Aug 2008 13:56:40 +0000 (08:56 -0500)
committerWilliam Pitcock <redacted>
Sun, 17 Aug 2008 13:56:40 +0000 (08:56 -0500)
modules/m_privs.c

index e4479f6ded8632f9c5641802d0530c52bc4d4294..1d24aad5ad9235ffbd809cc8bce00f0d4e84d71e 100644 (file)
@@ -60,28 +60,6 @@ struct mode_table
        int mode;
 };
 
-static struct mode_table oper_table[] = {
-       /*{"encrypted",         OPER_ENCRYPTED          },*/
-       {"local_kill",          OPER_LOCKILL            },
-       {"global_kill",         OPER_GLOBKILL/*|OPER_LOCKILL*/  },
-       {"remote",              OPER_REMOTE             },
-       {"kline",               OPER_KLINE              },
-       {"unkline",             OPER_UNKLINE            },
-       {"nick_changes",        OPER_NICKS              },
-       {"rehash",              OPER_REHASH             },
-       {"die",                 OPER_DIE                },
-       {"admin",               OPER_ADMIN              },
-       {"hidden_admin",        OPER_HADMIN             },
-       {"xline",               OPER_XLINE              },
-       {"resv",                OPER_RESV               },
-       {"operwall",            OPER_OPERWALL           },
-       {"oper_spy",            OPER_SPY                },
-       {"hidden_oper",         OPER_INVIS              },
-       {"remoteban",           OPER_REMOTEBAN          },
-       {"mass_notice",         OPER_MASSNOTICE         },
-       {NULL, 0}
-};
-
 /* there is no such table like this anywhere else */
 static struct mode_table auth_client_table[] = {
        {"resv_exempt",         FLAGS2_EXEMPTRESV       },
@@ -101,23 +79,22 @@ static void show_privs(struct Client *source_p, struct Client *target_p)
        struct mode_table *p;
 
        buf[0] = '\0';
-       p = &oper_table[0];
-       while (p->name != NULL)
-       {
-               if (target_p->flags2 & p->mode)
-               {
-                       if (buf[0] != '\0')
-                               rb_strlcat(buf, " ", sizeof buf);
-                       rb_strlcat(buf, p->name, sizeof buf);
-               }
-               p++;
-       }
+       if (target_p->localClient->privset)
+               rb_strlcat(buf, target_p->localClient->privset->privs, sizeof buf);
        if (IsOper(target_p))
        {
                if (buf[0] != '\0')
                        rb_strlcat(buf, " ", sizeof buf);
                rb_strlcat(buf, "operator:", sizeof buf);
                rb_strlcat(buf, target_p->localClient->opername, sizeof buf);
+
+               if (target_p->localClient->privset)
+               {
+                       if (buf[0] != '\0')
+                               rb_strlcat(buf, " ", sizeof buf);
+                       rb_strlcat(buf, "privset:", sizeof buf);
+                       rb_strlcat(buf, target_p->localClient->privset->name, sizeof buf);
+               }
        }
        p = &auth_client_table[0];
        while (p->name != NULL)