From 4da6fa0dba1e49d4f6fca590edd08bd0ad9ce5a7 Mon Sep 17 00:00:00 2001 From: pk910 Date: Mon, 15 Jul 2013 19:52:42 +0200 Subject: [PATCH] fixed coding fails in the last 2 commits --- src/chanserv.c | 2 +- src/nickserv.c | 3 +-- src/opserv.c | 22 ++++++++++------------ src/opserv.h | 8 ++++---- 4 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/chanserv.c b/src/chanserv.c index 771b616..37d6531 100644 --- a/src/chanserv.c +++ b/src/chanserv.c @@ -3287,7 +3287,7 @@ static CHANSERV_FUNC(cmd_opme) return 0; } - if(devnull_user_has_priv(user->handle_info, DEVNULL_MODE_OPME)) + if(devnull_user_has_priv(user->handle_info, DEVNULL_PRIV_OPME)) { change.args[0].mode = MODE_CHANOP; errmsg = "CSMSG_ALREADY_OPPED"; diff --git a/src/nickserv.c b/src/nickserv.c index d0caa90..089cc93 100644 --- a/src/nickserv.c +++ b/src/nickserv.c @@ -2651,7 +2651,6 @@ static OPTION_FUNC(opt_info) static OPTION_FUNC(opt_devnull) { const char *devnull_name; - int *devnull_id; struct devnull_class *devnull_c; if (argc > 1) { @@ -2665,7 +2664,7 @@ static OPTION_FUNC(opt_devnull) devnull_name = unsplit_string(argv+1, argc-1, NULL); devnull_c = devnull_find_name(devnull_name); if(devnull_c) - hi->devnull_id = devnull_c->devnull_id; + hi->devnull_id = devnull_c->id; } } diff --git a/src/opserv.c b/src/opserv.c index c4844b7..69a21fc 100644 --- a/src/opserv.c +++ b/src/opserv.c @@ -2848,7 +2848,7 @@ static int devnull_class_read(const char *name, void *data, UNUSED_ARG(void *extra)) { struct record_data *rd = data; - const char *nameb = name, *str; + const char *str; unsigned long modes, maxchan, maxsendq; unsigned int id, ii; @@ -4745,28 +4745,26 @@ struct devnull_class *devnull_find_name(const char *name) { int devnull_user_has_priv(struct handle_info *hi, int devnull_priv) { if(devnull_check_priv_func) { - int ext_privs = ((struct devnull_class (*)(struct handle_info *))devnull_check_priv_func)(hi, devnull_priv); - if((ext_privs & devnull_priv)) - return (ext_privs & devnull_priv); + struct devnull_class ext_class = ((struct devnull_class (*)(struct handle_info *))devnull_check_priv_func)(hi); + if((ext_class.modes & devnull_priv)) + return (ext_class.modes & devnull_priv); } - if(!hi->devnull) + if(!hi->devnull_id) return 0; - struct devnull_class *th; - if(!(th = dict_find(opserv_devnull_classes, hi->devnull, NULL))) + struct devnull_class *th = devnull_find_id(hi->devnull_id); + if(!th) return 0; - return (th->modes & devnull_priv); } struct devnull_class devnull_user_get_class(struct handle_info *hi) { struct devnull_class th; - th.name = NULL; - th.modes = 0; + memset(&th, 0, sizeof(th)); - if(hi->devnull) { + if(hi->devnull_id) { struct devnull_class *thp; - if((thp = dict_find(opserv_devnull_classes, hi->devnull, NULL))) { + if((thp = devnull_find_id(hi->devnull_id))) { if(DEVNULL_HAS_PRIV(thp, CHANLIMIT) && (!DEVNULL_HAS_PRIV(&th, CHANLIMIT) || th.maxchan < thp->maxchan)) th.maxchan = thp->maxchan; if(DEVNULL_HAS_PRIV(thp, MAXSENDQ) && (!DEVNULL_HAS_PRIV(&th, MAXSENDQ) || th.maxsendq < thp->maxsendq)) diff --git a/src/opserv.h b/src/opserv.h index 01209bc..169f432 100644 --- a/src/opserv.h +++ b/src/opserv.h @@ -40,9 +40,9 @@ #define DEVNULL_MODES "abcdefghijklmno" -#define DEVNULL_HAS_PRIV(cl, tok) ((cl)->modes & DEVNULL_##tok) -#define DEVNULL_SET_PRIV(cl, tok) ((cl)->modes |= DEVNULL_##tok) -#define DEVNULL_CLEAR_PRIV(cl, tok) ((cl)->modes &= ~DEVNULL_##tok) +#define DEVNULL_HAS_PRIV(cl, tok) ((cl)->modes & DEVNULL_PRIV_##tok) +#define DEVNULL_SET_PRIV(cl, tok) ((cl)->modes |= DEVNULL_PRIV_##tok) +#define DEVNULL_CLEAR_PRIV(cl, tok) ((cl)->modes &= ~DEVNULL_PRIV_##tok) struct devnull_class { unsigned int id; @@ -60,7 +60,7 @@ int opserv_bad_channel(const char *name); int devnull_user_has_priv(struct handle_info *hi, int devnull_priv); struct devnull_class devnull_user_get_class(struct handle_info *hi); struct devnull_class *devnull_find_id(unsigned int id); -struct devnull_class *devnull_find_name(char *name); +struct devnull_class *devnull_find_name(const char *name); struct userNode* GetOpServ(void); void operpart(struct chanNode *chan, struct userNode *user); void operadd(struct userNode *user); -- 2.20.1