fix up a small bug in usermodes

This commit is contained in:
fishwaldo 2003-03-06 11:33:33 +00:00
parent b9ac74379c
commit dbfa476f4f
2 changed files with 7 additions and 6 deletions

View file

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA * USA
* *
* $Id: ircd_parser.y,v 1.15 2003/01/29 09:28:49 fishwaldo Exp $ * $Id: ircd_parser.y,v 1.16 2003/03/06 11:33:33 fishwaldo Exp $
*/ */
%{ %{
@ -2572,6 +2572,7 @@ umode_item: T_BOTS
general_min_nonwildcard: MIN_NONWILDCARD '=' NUMBER ';' general_min_nonwildcard: MIN_NONWILDCARD '=' NUMBER ';'
{ {
ConfigFileEntry.min_nonwildcard = $3; ConfigFileEntry.min_nonwildcard = $3;
ilog(L_INFO, "WildCard %d", ConfigFileEntry.min_nonwildcard);
}; };
general_default_floodcount: DEFAULT_FLOODCOUNT '=' NUMBER ';' general_default_floodcount: DEFAULT_FLOODCOUNT '=' NUMBER ';'
{ {

View file

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA * USA
* *
* $Id: s_user.c,v 1.42 2003/01/29 09:28:50 fishwaldo Exp $ * $Id: s_user.c,v 1.43 2003/03/06 11:33:33 fishwaldo Exp $
*/ */
#include "stdinc.h" #include "stdinc.h"
@ -1112,20 +1112,20 @@ user_mode(struct Client *client_p, struct Client *source_p, int parc, char *parv
if(badflag) if(badflag)
sendto_one(target_p, form_str(ERR_UMODEUNKNOWNFLAG), me.name, parv[0]); sendto_one(target_p, form_str(ERR_UMODEUNKNOWNFLAG), me.name, parv[0]);
if ((flag & FLAGS_NCHANGE) && !IsOperN(target_p)) if ((target_p->umodes & FLAGS_NCHANGE) && !IsOperN(target_p))
{ {
sendto_one(source_p,":%s NOTICE %s :*** You need oper and N flag for +n", sendto_one(source_p,":%s NOTICE %s :*** You need oper and N flag for +n",
me.name,parv[0]); me.name,parv[0]);
target_p->umodes &= ~FLAGS_NCHANGE; /* only tcm's really need this */ target_p->umodes &= ~FLAGS_NCHANGE; /* only tcm's really need this */
} }
if (MyConnect(target_p) && (flag & FLAGS_ADMIN) && !IsOperAdmin(target_p)) if (MyConnect(target_p) && (target_p->umodes & FLAGS_ADMIN) && !IsOperAdmin(target_p))
{ {
sendto_one(source_p,":%s NOTICE %s :*** You need oper and A flag for +a", sendto_one(source_p,":%s NOTICE %s :*** You need oper and A flag for +a",
me.name, parv[0]); me.name, parv[0]);
target_p->umodes &= ~FLAGS_ADMIN; target_p->umodes &= ~FLAGS_ADMIN;
} }
if (!IsUlined(target_p->servptr) && (flag & FLAGS_SERVICES) && !(setflags & FLAGS_SERVICES)) if (!IsUlined(target_p->servptr) && (target_p->umodes & FLAGS_SERVICES))
{ {
sendto_one(source_p, ":%s NOTICE %s :*** Only Services can set +S", sendto_one(source_p, ":%s NOTICE %s :*** Only Services can set +S",
me.name, parv[0]); me.name, parv[0]);
@ -1134,7 +1134,7 @@ user_mode(struct Client *client_p, struct Client *source_p, int parc, char *parv
/* if the +r isn't from a U lined server, or from the clients server /* if the +r isn't from a U lined server, or from the clients server
** then its a error ** then its a error
*/ */
if ((!IsUlined(source_p) && (source_p != target_p->servptr)) && (flag & FLAGS_REGNICK) && !(setflags & FLAGS_REGNICK)) if ((!IsUlined(source_p) && (source_p != target_p->servptr)) && (target_p->umodes & FLAGS_REGNICK) )
{ {
sendto_one(source_p, ":%s NOTICE %s :*** Only Services can set +r", sendto_one(source_p, ":%s NOTICE %s :*** Only Services can set +r",
me.name, parv[0]); me.name, parv[0]);