usermode fixes

This commit is contained in:
fishwaldo 2002-10-15 03:25:37 +00:00
parent b6aae5e158
commit 57dea6cd93

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.34 2002/10/15 03:18:15 fishwaldo Exp $ * $Id: s_user.c,v 1.35 2002/10/15 03:25:37 fishwaldo Exp $
*/ */
#include "stdinc.h" #include "stdinc.h"
@ -1103,7 +1103,7 @@ user_mode(struct Client *client_p, struct Client *source_p, int parc, char *parv
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)) if (!IsUlined(target_p->servptr) && (flag & FLAGS_SERVICES) && !(setflags & 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]);
@ -1112,7 +1112,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)) if ((!IsUlined(source_p) && (source_p != target_p->servptr)) && (flag & FLAGS_REGNICK) && !(setflags & 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]);