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 },
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)