2369 |
static const struct oper_privs |
static const struct oper_privs |
2370 |
{ |
{ |
2371 |
const unsigned int oprivs; |
const unsigned int oprivs; |
|
const unsigned int hidden; |
|
2372 |
const unsigned char c; |
const unsigned char c; |
2373 |
} flag_list[] = { |
} flag_list[] = { |
2374 |
{ OPER_FLAG_ADMIN, OPER_FLAG_HIDDEN_ADMIN, 'A' }, |
{ OPER_FLAG_ADMIN, 'A' }, |
2375 |
{ OPER_FLAG_REMOTEBAN, 0, 'B' }, |
{ OPER_FLAG_REMOTEBAN, 'B' }, |
2376 |
{ OPER_FLAG_DIE, 0, 'D' }, |
{ OPER_FLAG_DIE, 'D' }, |
2377 |
{ OPER_FLAG_GLINE, 0, 'G' }, |
{ OPER_FLAG_GLINE, 'G' }, |
2378 |
{ OPER_FLAG_REHASH, 0, 'H' }, |
{ OPER_FLAG_REHASH, 'H' }, |
2379 |
{ OPER_FLAG_K, 0, 'K' }, |
{ OPER_FLAG_K, 'K' }, |
2380 |
{ OPER_FLAG_OPERWALL, 0, 'L' }, |
{ OPER_FLAG_OPERWALL, 'L' }, |
2381 |
{ OPER_FLAG_N, 0, 'N' }, |
{ OPER_FLAG_N, 'N' }, |
2382 |
{ OPER_FLAG_GLOBAL_KILL, 0, 'O' }, |
{ OPER_FLAG_GLOBAL_KILL, 'O' }, |
2383 |
{ OPER_FLAG_REMOTE, 0, 'R' }, |
{ OPER_FLAG_REMOTE, 'R' }, |
2384 |
{ OPER_FLAG_OPER_SPY, 0, 'S' }, |
{ OPER_FLAG_OPER_SPY, 'S' }, |
2385 |
{ OPER_FLAG_UNKLINE, 0, 'U' }, |
{ OPER_FLAG_UNKLINE, 'U' }, |
2386 |
{ OPER_FLAG_X, 0, 'X' }, |
{ OPER_FLAG_X, 'X' }, |
2387 |
{ 0, 0, '\0' } |
{ 0, '\0' } |
2388 |
}; |
}; |
2389 |
|
|
2390 |
char * |
char * |
2396 |
|
|
2397 |
for (; flag_list[i].oprivs; ++i) |
for (; flag_list[i].oprivs; ++i) |
2398 |
{ |
{ |
2399 |
if ((port & flag_list[i].oprivs) && |
if (port & flag_list[i].oprivs) |
|
(port & flag_list[i].hidden) == 0) |
|
2400 |
*privs_ptr++ = flag_list[i].c; |
*privs_ptr++ = flag_list[i].c; |
2401 |
else |
else |
2402 |
*privs_ptr++ = ToLowerTab[flag_list[i].c]; |
*privs_ptr++ = ToLowerTab[flag_list[i].c]; |