X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fopserv.c;h=6c6ac33d6046cde0ca855c06e5836219779454a5;hb=189ce3434b260169ae7f5af2f3f203e995f7c5de;hp=69a21fc9d87dc8cf7b75542e418e5495638b8786;hpb=4da6fa0dba1e49d4f6fca590edd08bd0ad9ce5a7;p=srvx.git diff --git a/src/opserv.c b/src/opserv.c index 69a21fc..6c6ac33 100644 --- a/src/opserv.c +++ b/src/opserv.c @@ -79,7 +79,7 @@ #define KEY_ISSUER "issuer" #define KEY_ISSUED "issued" #define KEY_DEVNULL_CLASSES "classes" -#define KEY_DEVNULL_LASTID "lastid" +#define KEY_DEVNULL_LASTID "devnull_id" #define KEY_DEVNULL_ID "id" #define KEY_DEVNULL_NAME "class" #define KEY_DEVNULL_MODE "modes" @@ -4312,8 +4312,7 @@ static MODCMD_FUNC(cmd_listdevnull) tbl.contents[0][12] = "+X"; tbl.contents[0][13] = "MaxQ"; tbl.contents[0][14] = "OpMe"; - if(!count) - { + if(!count) { table_send(cmd->parent->bot, user->nick, 0, NULL, tbl); reply("MSG_NONE"); free(tbl.contents[0]); @@ -4387,9 +4386,11 @@ static MODCMD_FUNC(cmd_listdevnull) tbl.contents[ii][12] = off; } if(DEVNULL_HAS_PRIV(th, MAXSENDQ)) { - tbl.contents[ii][13] = on; + char maxsenqbuf[MAXLEN]; + sprintf(maxsenqbuf, "%lu", th->maxsendq); + tbl.contents[ii][13] = strdup(maxsenqbuf); } else { - tbl.contents[ii][13] = off; + tbl.contents[ii][13] = strdup(off); } if(DEVNULL_HAS_PRIV(th, OPME)) { tbl.contents[ii][14] = on; @@ -4398,8 +4399,8 @@ static MODCMD_FUNC(cmd_listdevnull) } } table_send(cmd->parent->bot, user->nick, 0, NULL, tbl); - for(ii = 1; ii < tbl.length; ++ii) - { + for(ii = 1; ii < tbl.length; ++ii) { + free(tbl.contents[ii][13]); free(tbl.contents[ii]); } free(tbl.contents[0]); @@ -4762,6 +4763,17 @@ struct devnull_class devnull_user_get_class(struct handle_info *hi) { struct devnull_class th; memset(&th, 0, sizeof(th)); + if(devnull_check_priv_func) { + struct devnull_class ext_class = ((struct devnull_class (*)(struct handle_info *))devnull_check_priv_func)(hi); + th.modes |= ext_class.modes; + if(ext_class.name) + th.name = ext_class.name; + if(DEVNULL_HAS_PRIV(&th, CHANLIMIT)) + th.maxchan = ext_class.maxchan; + if(DEVNULL_HAS_PRIV(&th, MAXSENDQ)) + th.maxsendq = ext_class.maxsendq; + } + if(hi->devnull_id) { struct devnull_class *thp; if((thp = devnull_find_id(hi->devnull_id))) {