+ case 'g': /* Network-wide bans ("G-Lines") */
+ case 'G':
+ case 'k': /* Server-local bans ("K-Lines") */
+ case 'K':
+ if (!Client_HasMode(from, 'o'))
+ return IRC_WriteStrClient(from, ERR_NOPRIVILEGES_MSG,
+ Client_ID(from));
+ if (query == 'g' || query == 'G')
+ list = Class_GetList(CLASS_GLINE);
+ else
+ list = Class_GetList(CLASS_KLINE);
+ list_item = Lists_GetFirst(&list);
+ while (list_item) {
+ if (!IRC_WriteStrClient(from, RPL_STATSXLINE_MSG,
+ Client_ID(from), query,
+ Lists_GetMask(list_item),
+ Lists_GetValidity(list_item),
+ Lists_GetReason(list_item)))
+ return DISCONNECTED;
+ list_item = Lists_GetNext(list_item);
+ }
+ break;