bugfixes with Anonops, Umode +r added. sjoin and send_umode fixed.

This commit is contained in:
fishwaldo 2002-09-02 07:41:15 +00:00
parent 9a6d4b61fd
commit d8a9ef0fe2
11 changed files with 231 additions and 222 deletions

View file

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
* $Id: client.h,v 1.4 2002/09/02 04:10:59 fishwaldo Exp $
* $Id: client.h,v 1.5 2002/09/02 07:41:15 fishwaldo Exp $
*/
#ifndef INCLUDED_client_h
@ -410,10 +410,11 @@ struct LocalUser
#define FLAGS_HIDDEN 0x20000 /* +x hidden host */
/* user information flags, only settable by remote mode or local oper */
#define FLAGS_OPER 0x40000 /* Operator */
#define FLAGS_ADMIN 0x80000 /* Admin on server */
#define FLAGS_SERVICES 0x100000 /* Is Services */
#define FLAGS_ULINED 0x200000 /* is a ulined server? */
#define FLAGS_REGNICK 0x40000 /* +r regnick */
#define FLAGS_OPER 0x80000 /* Operator */
#define FLAGS_ADMIN 0x100000 /* Admin on server */
#define FLAGS_SERVICES 0x200000 /* Is Services */
#define FLAGS_ULINED 0x400000 /* is a ulined server? */
#define FLAGS_ALL FLAGS_SERVNOTICE
@ -451,12 +452,12 @@ struct LocalUser
* been ended. */
#define SEND_UMODES (FLAGS_INVISIBLE | FLAGS_OPER | FLAGS_WALLOP | \
FLAGS_ADMIN | FLAGS_SERVICES | FLAGS_HIDDEN)
FLAGS_ADMIN | FLAGS_SERVICES | FLAGS_HIDDEN | FLAGS_REGNICK)
#define ALL_UMODES (SEND_UMODES | FLAGS_SERVNOTICE | FLAGS_CCONN | \
FLAGS_REJ | FLAGS_SKILL | FLAGS_FULL | FLAGS_SPY | \
FLAGS_NCHANGE | FLAGS_OPERWALL | FLAGS_DEBUG | \
FLAGS_BOTS | FLAGS_EXTERNAL | FLAGS_LOCOPS | \
FLAGS_UNAUTH | FLAGS_CALLERID | FLAGS_SERVICES)
FLAGS_UNAUTH | FLAGS_CALLERID | FLAGS_SERVICES | FLAGS_REGNICK)
#define FLAGS_ID (FLAGS_NEEDID | FLAGS_GOTID)
@ -487,6 +488,10 @@ struct LocalUser
#define IsMarked(x) ((x)->flags & FLAGS_MARK)
#define IsUlined(x) ((x)->flags & FLAGS_ULINED)
#define SetUlined(x) ((x)->flags |= FLAGS_ULINED)
#define IsRegNick(x) ((x)->flags & FLAGS_REGNICK)
#define SetRegNick(x) ((x)->flags |= FLAGS_REGNICK)
#define ClearRegNick(x) ((x)->flags &= ~FLAGS_REGNICK)
/* oper flags */
#define MyOper(x) (MyConnect(x) && IsOper(x))

View file

@ -11,13 +11,13 @@ m_die.o: core/m_die.c ../include/stdinc.h ../include/config.h \
m_kick.o: core/m_kick.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/tools.h \
../include/handlers.h ../include/channel.h ../include/ircd_defs.h \
../include/channel_mode.h ../include/vchannel.h ../include/client.h \
../include/ircd_handler.h ../include/linebuf.h ../include/res.h \
../include/fileio.h ../adns/adns.h ../include/ircd.h \
../include/memory.h ../include/balloc.h ../include/irc_string.h \
../include/sprintf_irc.h ../include/numeric.h ../include/send.h \
../include/msg.h ../include/modules.h ../include/parse.h \
../include/hash.h
../include/channel_mode.h ../include/client.h ../include/ircd_handler.h \
../include/linebuf.h ../include/res.h ../include/fileio.h \
../adns/adns.h ../include/ircd.h ../include/memory.h \
../include/balloc.h ../include/irc_string.h ../include/sprintf_irc.h \
../include/numeric.h ../include/send.h ../include/msg.h \
../include/modules.h ../include/parse.h ../include/hash.h \
../include/packet.h ../include/fdlist.h
m_kill.o: core/m_kill.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/handlers.h \
../include/client.h ../include/ircd_defs.h ../include/ircd_handler.h \
@ -39,20 +39,19 @@ m_message.o: core/m_message.c ../include/stdinc.h ../include/config.h \
../include/s_conf.h ../include/motd.h ../include/class.h \
../include/s_serv.h ../include/send.h ../include/msg.h \
../include/parse.h ../include/modules.h ../include/channel_mode.h \
../include/vchannel.h ../include/hash.h ../include/packet.h \
../include/fdlist.h
../include/hash.h ../include/packet.h ../include/fdlist.h
m_mode.o: core/m_mode.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/tools.h \
../include/handlers.h ../include/channel.h ../include/ircd_defs.h \
../include/channel_mode.h ../include/vchannel.h ../include/client.h \
../include/ircd_handler.h ../include/linebuf.h ../include/res.h \
../include/fileio.h ../adns/adns.h ../include/ircd.h \
../include/memory.h ../include/balloc.h ../include/irc_string.h \
../include/sprintf_irc.h ../include/hash.h ../include/numeric.h \
../include/s_user.h ../include/s_conf.h ../include/motd.h \
../include/class.h ../include/s_serv.h ../include/send.h \
../include/msg.h ../include/parse.h ../include/modules.h \
../include/packet.h ../include/fdlist.h
../include/channel_mode.h ../include/client.h ../include/ircd_handler.h \
../include/linebuf.h ../include/res.h ../include/fileio.h \
../adns/adns.h ../include/ircd.h ../include/memory.h \
../include/balloc.h ../include/irc_string.h ../include/sprintf_irc.h \
../include/hash.h ../include/numeric.h ../include/s_user.h \
../include/s_conf.h ../include/motd.h ../include/class.h \
../include/s_serv.h ../include/send.h ../include/msg.h \
../include/parse.h ../include/modules.h ../include/packet.h \
../include/fdlist.h
m_nick.o: core/m_nick.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/handlers.h \
../include/client.h ../include/ircd_defs.h ../include/ircd_handler.h \
@ -69,15 +68,14 @@ m_nick.o: core/m_nick.c ../include/stdinc.h ../include/config.h \
m_part.o: core/m_part.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/tools.h \
../include/handlers.h ../include/channel.h ../include/ircd_defs.h \
../include/vchannel.h ../include/client.h ../include/ircd_handler.h \
../include/linebuf.h ../include/res.h ../include/fileio.h \
../adns/adns.h ../include/ircd.h ../include/memory.h \
../include/balloc.h ../include/irc_string.h ../include/sprintf_irc.h \
../include/common.h ../include/hash.h ../include/list.h \
../include/numeric.h ../include/send.h ../include/s_serv.h \
../include/msg.h ../include/parse.h ../include/modules.h \
../include/s_conf.h ../include/motd.h ../include/class.h \
../include/packet.h ../include/fdlist.h
../include/client.h ../include/ircd_handler.h ../include/linebuf.h \
../include/res.h ../include/fileio.h ../adns/adns.h ../include/ircd.h \
../include/memory.h ../include/balloc.h ../include/irc_string.h \
../include/sprintf_irc.h ../include/common.h ../include/hash.h \
../include/list.h ../include/numeric.h ../include/send.h \
../include/s_serv.h ../include/msg.h ../include/parse.h \
../include/modules.h ../include/s_conf.h ../include/motd.h \
../include/class.h ../include/packet.h ../include/fdlist.h
m_quit.o: core/m_quit.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/handlers.h \
../include/client.h ../include/ircd_defs.h ../include/ircd_handler.h \
@ -103,15 +101,14 @@ m_server.o: core/m_server.c ../include/stdinc.h ../include/config.h \
m_sjoin.o: core/m_sjoin.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/tools.h \
../include/handlers.h ../include/channel.h ../include/ircd_defs.h \
../include/channel_mode.h ../include/vchannel.h ../include/client.h \
../include/ircd_handler.h ../include/linebuf.h ../include/res.h \
../include/fileio.h ../adns/adns.h ../include/ircd.h \
../include/memory.h ../include/balloc.h ../include/irc_string.h \
../include/sprintf_irc.h ../include/hash.h ../include/list.h \
../include/numeric.h ../include/send.h ../include/common.h \
../include/msg.h ../include/parse.h ../include/modules.h \
../include/s_serv.h ../include/s_conf.h ../include/motd.h \
../include/class.h
../include/channel_mode.h ../include/client.h ../include/ircd_handler.h \
../include/linebuf.h ../include/res.h ../include/fileio.h \
../adns/adns.h ../include/ircd.h ../include/memory.h \
../include/balloc.h ../include/irc_string.h ../include/sprintf_irc.h \
../include/hash.h ../include/list.h ../include/numeric.h \
../include/send.h ../include/common.h ../include/msg.h \
../include/parse.h ../include/modules.h ../include/s_serv.h \
../include/s_conf.h ../include/motd.h ../include/class.h
m_squit.o: core/m_squit.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/handlers.h \
../include/client.h ../include/ircd_defs.h ../include/ircd_handler.h \
@ -181,18 +178,6 @@ m_challenge.o: m_challenge.c ../include/stdinc.h ../include/config.h \
../include/msg.h ../include/numeric.h ../include/send.h \
../include/s_conf.h ../include/motd.h ../include/class.h \
../include/rsa.h ../include/s_log.h
m_cjoin.o: m_cjoin.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/tools.h \
../include/handlers.h ../include/channel.h ../include/ircd_defs.h \
../include/channel_mode.h ../include/vchannel.h ../include/client.h \
../include/ircd_handler.h ../include/linebuf.h ../include/res.h \
../include/fileio.h ../adns/adns.h ../include/ircd.h \
../include/memory.h ../include/balloc.h ../include/irc_string.h \
../include/sprintf_irc.h ../include/common.h ../include/hash.h \
../include/list.h ../include/numeric.h ../include/send.h \
../include/s_serv.h ../include/s_conf.h ../include/motd.h \
../include/class.h ../include/msg.h ../include/parse.h \
../include/modules.h
m_close.o: m_close.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/tools.h \
../include/handlers.h ../include/client.h ../include/ircd_defs.h \
@ -264,12 +249,12 @@ m_gline.o: m_gline.c ../include/stdinc.h ../include/config.h \
../include/linebuf.h ../include/res.h ../include/fileio.h \
../adns/adns.h ../include/ircd.h ../include/memory.h \
../include/balloc.h ../include/irc_string.h ../include/sprintf_irc.h \
../include/common.h ../include/m_kline.h ../include/hostmask.h \
../include/numeric.h ../include/fdlist.h ../include/s_bsd.h \
../include/s_conf.h ../include/motd.h ../include/class.h \
../include/s_misc.h ../include/scache.h ../include/send.h \
../include/msg.h ../include/s_serv.h ../include/hash.h \
../include/parse.h ../include/modules.h ../include/list.h
../include/common.h ../include/hostmask.h ../include/numeric.h \
../include/fdlist.h ../include/s_bsd.h ../include/s_conf.h \
../include/motd.h ../include/class.h ../include/s_misc.h \
../include/scache.h ../include/send.h ../include/msg.h \
../include/s_serv.h ../include/hash.h ../include/parse.h \
../include/modules.h ../include/list.h
m_help.o: m_help.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/handlers.h \
../include/client.h ../include/ircd_defs.h ../include/ircd_handler.h \
@ -278,7 +263,8 @@ m_help.o: m_help.c ../include/stdinc.h ../include/config.h \
../include/memory.h ../include/balloc.h ../include/irc_string.h \
../include/sprintf_irc.h ../include/motd.h ../include/msg.h \
../include/numeric.h ../include/send.h ../include/s_conf.h \
../include/class.h ../include/parse.h ../include/modules.h
../include/class.h ../include/s_log.h ../include/parse.h \
../include/modules.h
m_info.o: m_info.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/tools.h \
../include/m_info.h ../include/channel.h ../include/ircd_defs.h \
@ -294,9 +280,9 @@ m_invite.o: m_invite.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/tools.h \
../include/handlers.h ../include/common.h ../include/channel.h \
../include/ircd_defs.h ../include/channel_mode.h ../include/list.h \
../include/memory.h ../include/balloc.h ../include/vchannel.h \
../include/client.h ../include/ircd_handler.h ../include/linebuf.h \
../include/res.h ../include/fileio.h ../adns/adns.h ../include/ircd.h \
../include/memory.h ../include/balloc.h ../include/client.h \
../include/ircd_handler.h ../include/linebuf.h ../include/res.h \
../include/fileio.h ../adns/adns.h ../include/ircd.h \
../include/irc_string.h ../include/sprintf_irc.h ../include/hash.h \
../include/numeric.h ../include/send.h ../include/s_conf.h \
../include/motd.h ../include/class.h ../include/s_serv.h \
@ -314,15 +300,15 @@ m_ison.o: m_ison.c ../include/stdinc.h ../include/config.h \
m_join.o: m_join.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/tools.h \
../include/handlers.h ../include/channel.h ../include/ircd_defs.h \
../include/channel_mode.h ../include/vchannel.h ../include/client.h \
../include/ircd_handler.h ../include/linebuf.h ../include/res.h \
../include/fileio.h ../adns/adns.h ../include/ircd.h \
../include/memory.h ../include/balloc.h ../include/irc_string.h \
../include/sprintf_irc.h ../include/common.h ../include/resv.h \
../include/hash.h ../include/list.h ../include/numeric.h \
../include/send.h ../include/s_serv.h ../include/s_conf.h \
../include/motd.h ../include/class.h ../include/msg.h \
../include/parse.h ../include/modules.h
../include/channel_mode.h ../include/client.h ../include/ircd_handler.h \
../include/linebuf.h ../include/res.h ../include/fileio.h \
../adns/adns.h ../include/ircd.h ../include/memory.h \
../include/balloc.h ../include/irc_string.h ../include/sprintf_irc.h \
../include/common.h ../include/resv.h ../include/hash.h \
../include/list.h ../include/numeric.h ../include/send.h \
../include/s_serv.h ../include/s_conf.h ../include/motd.h \
../include/class.h ../include/msg.h ../include/parse.h \
../include/modules.h
m_kline.o: m_kline.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/tools.h \
../include/m_kline.h ../include/channel.h ../include/ircd_defs.h \
@ -345,8 +331,8 @@ m_knock.o: m_knock.c ../include/stdinc.h ../include/config.h \
../include/balloc.h ../include/irc_string.h ../include/sprintf_irc.h \
../include/hash.h ../include/numeric.h ../include/send.h \
../include/s_conf.h ../include/motd.h ../include/class.h \
../include/vchannel.h ../include/msg.h ../include/parse.h \
../include/modules.h ../include/s_serv.h
../include/msg.h ../include/parse.h ../include/modules.h \
../include/s_serv.h
m_links.o: m_links.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/handlers.h \
../include/client.h ../include/ircd_defs.h ../include/ircd_handler.h \
@ -366,20 +352,19 @@ m_list.o: m_list.c ../include/stdinc.h ../include/config.h \
../include/balloc.h ../include/irc_string.h ../include/sprintf_irc.h \
../include/hash.h ../include/numeric.h ../include/s_conf.h \
../include/motd.h ../include/class.h ../include/s_serv.h \
../include/send.h ../include/vchannel.h ../include/list.h \
../include/msg.h ../include/parse.h ../include/modules.h
../include/send.h ../include/list.h ../include/msg.h ../include/parse.h \
../include/modules.h
m_lljoin.o: m_lljoin.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/tools.h \
../include/channel.h ../include/ircd_defs.h ../include/channel_mode.h \
../include/vchannel.h ../include/client.h ../include/ircd_handler.h \
../include/linebuf.h ../include/res.h ../include/fileio.h \
../adns/adns.h ../include/ircd.h ../include/memory.h \
../include/balloc.h ../include/irc_string.h ../include/sprintf_irc.h \
../include/hash.h ../include/common.h ../include/list.h \
../include/numeric.h ../include/s_serv.h ../include/s_conf.h \
../include/motd.h ../include/class.h ../include/send.h \
../include/handlers.h ../include/msg.h ../include/parse.h \
../include/modules.h
../include/client.h ../include/ircd_handler.h ../include/linebuf.h \
../include/res.h ../include/fileio.h ../adns/adns.h ../include/ircd.h \
../include/memory.h ../include/balloc.h ../include/irc_string.h \
../include/sprintf_irc.h ../include/hash.h ../include/common.h \
../include/list.h ../include/numeric.h ../include/s_serv.h \
../include/s_conf.h ../include/motd.h ../include/class.h \
../include/send.h ../include/handlers.h ../include/msg.h \
../include/parse.h ../include/modules.h
m_llnick.o: m_llnick.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/tools.h \
../include/client.h ../include/ircd_defs.h ../include/ircd_handler.h \
@ -423,15 +408,14 @@ m_motd.o: m_motd.c ../include/stdinc.h ../include/config.h \
m_names.o: m_names.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/tools.h \
../include/handlers.h ../include/channel.h ../include/ircd_defs.h \
../include/channel_mode.h ../include/vchannel.h ../include/client.h \
../include/ircd_handler.h ../include/linebuf.h ../include/res.h \
../include/fileio.h ../adns/adns.h ../include/ircd.h \
../include/memory.h ../include/balloc.h ../include/irc_string.h \
../include/sprintf_irc.h ../include/common.h ../include/hash.h \
../include/list.h ../include/numeric.h ../include/send.h \
../include/s_serv.h ../include/s_conf.h ../include/motd.h \
../include/class.h ../include/msg.h ../include/parse.h \
../include/modules.h
../include/channel_mode.h ../include/client.h ../include/ircd_handler.h \
../include/linebuf.h ../include/res.h ../include/fileio.h \
../adns/adns.h ../include/ircd.h ../include/memory.h \
../include/balloc.h ../include/irc_string.h ../include/sprintf_irc.h \
../include/common.h ../include/hash.h ../include/list.h \
../include/numeric.h ../include/send.h ../include/s_serv.h \
../include/s_conf.h ../include/motd.h ../include/class.h \
../include/msg.h ../include/parse.h ../include/modules.h
m_nburst.o: m_nburst.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/tools.h \
../include/channel.h ../include/ircd_defs.h ../include/client.h \
@ -453,7 +437,8 @@ m_oper.o: m_oper.c ../include/stdinc.h ../include/config.h \
../include/numeric.h ../include/s_bsd.h ../include/s_conf.h \
../include/motd.h ../include/class.h ../include/s_log.h \
../include/s_user.h ../include/send.h ../include/list.h \
../include/msg.h ../include/parse.h ../include/modules.h
../include/msg.h ../include/parse.h ../include/modules.h \
../include/packet.h
m_operwall.o: m_operwall.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/handlers.h \
../include/client.h ../include/ircd_defs.h ../include/ircd_handler.h \
@ -588,19 +573,19 @@ m_time.o: m_time.c ../include/stdinc.h ../include/config.h \
../include/sprintf_irc.h ../include/numeric.h ../include/s_misc.h \
../include/s_conf.h ../include/motd.h ../include/class.h \
../include/s_serv.h ../include/send.h ../include/msg.h \
../include/parse.h ../include/modules.h
../include/parse.h ../include/modules.h ../include/packet.h \
../include/fdlist.h
m_topic.o: m_topic.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/tools.h \
../include/handlers.h ../include/channel.h ../include/ircd_defs.h \
../include/channel_mode.h ../include/vchannel.h ../include/client.h \
../include/ircd_handler.h ../include/linebuf.h ../include/res.h \
../include/fileio.h ../adns/adns.h ../include/ircd.h \
../include/memory.h ../include/balloc.h ../include/irc_string.h \
../include/sprintf_irc.h ../include/hash.h ../include/numeric.h \
../include/send.h ../include/s_conf.h ../include/motd.h \
../include/class.h ../include/s_serv.h ../include/msg.h \
../include/parse.h ../include/modules.h ../include/packet.h \
../include/fdlist.h
../include/channel_mode.h ../include/client.h ../include/ircd_handler.h \
../include/linebuf.h ../include/res.h ../include/fileio.h \
../adns/adns.h ../include/ircd.h ../include/memory.h \
../include/balloc.h ../include/irc_string.h ../include/sprintf_irc.h \
../include/hash.h ../include/numeric.h ../include/send.h \
../include/s_conf.h ../include/motd.h ../include/class.h \
../include/s_serv.h ../include/msg.h ../include/parse.h \
../include/modules.h ../include/packet.h ../include/fdlist.h
m_trace.o: m_trace.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/handlers.h \
../include/class.h ../include/hook.h ../include/tools.h \
@ -679,11 +664,10 @@ m_who.o: m_who.c ../include/stdinc.h ../include/config.h \
../include/channel.h ../include/res.h ../include/fileio.h \
../adns/adns.h ../include/ircd.h ../include/memory.h \
../include/balloc.h ../include/irc_string.h ../include/sprintf_irc.h \
../include/channel_mode.h ../include/vchannel.h ../include/hash.h \
../include/numeric.h ../include/s_serv.h ../include/send.h \
../include/list.h ../include/s_conf.h ../include/motd.h \
../include/class.h ../include/msg.h ../include/parse.h \
../include/modules.h
../include/channel_mode.h ../include/hash.h ../include/numeric.h \
../include/s_serv.h ../include/send.h ../include/list.h \
../include/s_conf.h ../include/motd.h ../include/class.h \
../include/msg.h ../include/parse.h ../include/modules.h
m_whois.o: m_whois.c ../include/stdinc.h ../include/config.h \
../include/setup.h ../include/defaults.h ../include/tools.h \
../include/common.h ../include/handlers.h ../include/client.h \
@ -691,9 +675,9 @@ m_whois.o: m_whois.c ../include/stdinc.h ../include/config.h \
../include/channel.h ../include/res.h ../include/fileio.h \
../adns/adns.h ../include/ircd.h ../include/memory.h \
../include/balloc.h ../include/irc_string.h ../include/sprintf_irc.h \
../include/hash.h ../include/channel_mode.h ../include/vchannel.h \
../include/numeric.h ../include/s_conf.h ../include/motd.h \
../include/class.h ../include/s_serv.h ../include/send.h \
../include/hash.h ../include/channel_mode.h ../include/numeric.h \
../include/s_conf.h ../include/motd.h ../include/class.h \
../include/s_serv.h ../include/s_user.h ../include/send.h \
../include/list.h ../include/msg.h ../include/parse.h \
../include/modules.h ../include/hook.h
m_whowas.o: m_whowas.c ../include/stdinc.h ../include/config.h \

View file

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
* $Id: m_kick.c,v 1.5 2002/09/02 04:11:00 fishwaldo Exp $
* $Id: m_kick.c,v 1.6 2002/09/02 07:41:15 fishwaldo Exp $
*/
#include "stdinc.h"
@ -59,7 +59,7 @@ _moddeinit(void)
mod_del_cmd(&kick_msgtab);
}
const char *_version = "$Revision: 1.5 $";
const char *_version = "$Revision: 1.6 $";
#endif
/*
** m_kick
@ -185,10 +185,11 @@ static void m_kick(struct Client *client_p,
}
}
/* we must also check if its a op trying to kick a admin */
if (is_chan_op(chptr, source_p) && is_chan_admin(chptr, who))
if (is_chan_op(chptr, source_p) && is_chan_admin(chptr, who)) {
sendto_one(source_p, form_str(ERR_CHANAPRIVSNEEDED),
me.name, parv[0], name);
return;
}
/* jdc
* - In the case of a server kicking a user (i.e. CLEARCHAN),
* the kick should show up as coming from the server which did

View file

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
* $Id: m_message.c,v 1.3 2002/09/02 04:11:00 fishwaldo Exp $
* $Id: m_message.c,v 1.4 2002/09/02 07:41:15 fishwaldo Exp $
*/
#include "stdinc.h"
@ -122,7 +122,7 @@ _moddeinit(void)
mod_del_cmd(&notice_msgtab);
}
const char *_version = "$Revision: 1.3 $";
const char *_version = "$Revision: 1.4 $";
#endif
/*
@ -339,12 +339,14 @@ build_target_list(int p_or_n, char *command, struct Client *client_p,
/* allow %+@ if someone wants to do that */
for (;;)
{
if (*nick == '*')
type |= MODE_ADMIN;
if (*nick == '@')
type |= MODE_CHANOP;
type |= MODE_CHANOP | MODE_ADMIN;
else if (*nick == '%')
type |= MODE_CHANOP | MODE_HALFOP;
type |= MODE_CHANOP | MODE_HALFOP | MODE_ADMIN;
else if (*nick == '+')
type |= MODE_CHANOP | MODE_HALFOP | MODE_VOICE;
type |= MODE_CHANOP | MODE_HALFOP | MODE_VOICE | MODE_ADMIN;
else
break;
nick++;
@ -518,10 +520,15 @@ msg_channel_flags(int p_or_n, char *command, struct Client *client_p,
type = ONLY_CHANOPS_HALFOPS;
c = '%';
}
else
else if (flags & MODE_CHANOP)
{
type = ONLY_CHANOPS;
c = '@';
}
else
{
type = ONLY_CHANADMIN;
c = '*';
}
chname = chptr->chname;

View file

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
* $Id: m_sjoin.c,v 1.4 2002/09/02 04:11:00 fishwaldo Exp $
* $Id: m_sjoin.c,v 1.5 2002/09/02 07:41:15 fishwaldo Exp $
*/
#include "stdinc.h"
@ -62,7 +62,7 @@ _moddeinit(void)
mod_del_cmd(&sjoin_msgtab);
}
const char *_version = "$Revision: 1.4 $";
const char *_version = "$Revision: 1.5 $";
#endif
/*
* ms_sjoin
@ -114,9 +114,8 @@ static void ms_sjoin(struct Client *client_p,
int num_prefix=0;
int isnew;
int buflen = 0;
register char *s, *nhops;
register char *s;
static char buf[2*BUFSIZE]; /* buffer for modes and prefix */
static char sjbuf_nhops[BUFSIZE]; /* buffer with halfops as @ */
char *p; /* pointer used making sjbuf */
int hide_or_not;
int i;
@ -126,7 +125,6 @@ static void ms_sjoin(struct Client *client_p,
*buf = '\0';
*sjbuf_hops = '\0';
*sjbuf_nhops = '\0';
if (IsClient(source_p) || parc < 5)
return;
@ -170,9 +168,12 @@ static void ms_sjoin(struct Client *client_p,
case 't':
mode.mode |= MODE_TOPICLIMIT;
break;
case 'a':
case 'A':
mode.mode |= MODE_HIDEOPS;
break;
case 'O':
mode.mode |= MODE_OPERSONLY;
break;
case 'k':
strlcpy(mode.key, parv[4 + args], KEYLEN);
args++;
@ -196,7 +197,7 @@ static void ms_sjoin(struct Client *client_p,
oldts = chptr->channelts;
doesop = (parv[4+args][0] == '@' || parv[4+args][1] == '@');
doesop = (parv[4+args][0] == '*' || parv[4+args][1] == '*');
oldmode = &chptr->mode;
@ -224,11 +225,9 @@ static void ms_sjoin(struct Client *client_p,
}
#endif
/*
* XXX - this no doubt destroys vchans
*/
if (isnew)
chptr->channelts = tstosend = newts;
/* Remote is sending users to a permanent channel.. we need to drop our
* version and use theirs, to keep compatibility -- fl */
else if (chptr->users == 0 && parv[4+args][0])
@ -327,7 +326,7 @@ static void ms_sjoin(struct Client *client_p,
parv[2], modebuf, parabuf);
/* check we can fit a nick on the end, as well as \r\n\0 and a prefix "
* @+".
* *@+".
*/
if (buflen >= (BUFSIZE - 6 - NICKLEN))
{
@ -344,7 +343,6 @@ static void ms_sjoin(struct Client *client_p,
*mbuf++ = '+';
hops = sjbuf_hops;
nhops = sjbuf_nhops;
s = parv[args+4];
@ -370,13 +368,23 @@ static void ms_sjoin(struct Client *client_p,
for (i = 0; i < 2; i++)
{
if (*s == '*')
{
fl |= MODE_ADMIN;
if (keep_new_modes)
{
*hops++ = *s;
num_prefix++;
}
s++;
}
if (*s == '@')
{
fl |= MODE_CHANOP;
if (keep_new_modes)
{
*hops++ = *s;
*nhops++ = *s;
num_prefix++;
}
@ -388,7 +396,6 @@ static void ms_sjoin(struct Client *client_p,
if (keep_new_modes)
{
*hops++ = *s;
*nhops++ = *s;
num_prefix++;
}
@ -400,7 +407,6 @@ static void ms_sjoin(struct Client *client_p,
if (keep_new_modes)
{
*hops++ = *s;
*nhops++ = '@';
num_prefix++;
}
@ -408,7 +414,7 @@ static void ms_sjoin(struct Client *client_p,
}
}
/* if the client doesnt exist, backtrack over the prefix (@%+) that we
/* if the client doesnt exist, backtrack over the prefix (*@%+) that we
* just added and skip to the next nick
*/
/* also do this if its fake direction or a server */
@ -421,9 +427,6 @@ static void ms_sjoin(struct Client *client_p,
hops -= num_prefix;
*hops = '\0';
nhops -= num_prefix;
*nhops = '\0';
goto nextnick;
}
@ -431,12 +434,9 @@ static void ms_sjoin(struct Client *client_p,
hops += ircsprintf(hops, "%s ", s);
assert((hops - sjbuf_hops) < sizeof(sjbuf_hops));
nhops += ircsprintf(nhops, "%s ", s);
assert((nhops-sjbuf_nhops) < sizeof(sjbuf_nhops));
if (!keep_new_modes)
{
if ((fl & MODE_CHANOP) || (fl & MODE_HALFOP))
if ((fl & MODE_CHANOP) || (fl & MODE_HALFOP) || (fl & MODE_ADMIN))
{
fl = MODE_DEOPPED;
}
@ -509,7 +509,11 @@ static void ms_sjoin(struct Client *client_p,
*mbuf++ = 'h';
para[pargs++] = s;
}
else if (fl & MODE_ADMIN)
{
*mbuf++ = 'a';
para[pargs++] = s;
}
if (pargs >= MAXMODEPARAMS)
{
*mbuf = '\0';
@ -580,10 +584,7 @@ nextnick:
if (!parv[4+args][0])
return;
if (IsCapable(target_p, CAP_HOPS))
sendto_one(target_p, "%s%s", buf, sjbuf_hops);
else
sendto_one(target_p, "%s%s", buf, sjbuf_nhops);
}
}
@ -608,7 +609,7 @@ struct mode_letter flags[] = {
{ MODE_MODERATED, 'm' },
{ MODE_INVITEONLY, 'i' },
{ MODE_PRIVATE, 'p' },
{ MODE_HIDEOPS, 'a' },
{ MODE_HIDEOPS, 'A' },
{ 0, 0 }
};
@ -708,13 +709,15 @@ static void remove_our_modes( int hide_or_not,
{
remove_a_mode(hide_or_not, chptr, top_chptr, source_p, &chptr->chanops, 'o');
remove_a_mode(hide_or_not, chptr, top_chptr, source_p, &chptr->voiced, 'v');
remove_a_mode(hide_or_not, chptr, top_chptr, source_p, &chptr->chanadmins, 'a');
/* Move all voice/ops etc. to non opped list */
dlinkMoveList(&chptr->chanops, &chptr->peons);
dlinkMoveList(&chptr->voiced, &chptr->peons);
dlinkMoveList(&chptr->chanadmins, &chptr->peons);
dlinkMoveList(&chptr->locchanops, &chptr->locpeons);
dlinkMoveList(&chptr->locvoiced, &chptr->locpeons);
dlinkMoveList(&chptr->locchanadmins, &chptr->locpeons);
remove_a_mode(hide_or_not, chptr, top_chptr, source_p, &chptr->halfops, 'h');
dlinkMoveList(&chptr->halfops, &chptr->peons);

View file

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
* $Id: m_join.c,v 1.5 2002/09/02 04:10:59 fishwaldo Exp $
* $Id: m_join.c,v 1.6 2002/09/02 07:41:15 fishwaldo Exp $
*/
#include "stdinc.h"
@ -64,7 +64,7 @@ _moddeinit(void)
{
mod_del_cmd(&join_msgtab);
}
const char *_version = "$Revision: 1.5 $";
const char *_version = "$Revision: 1.6 $";
#endif
static void do_join_0(struct Client *client_p, struct Client *source_p);
@ -281,7 +281,7 @@ m_join(struct Client *client_p,
sendto_server(client_p, source_p, chptr, NOCAPS, NOCAPS,
LL_ICLIENT,
":%s SJOIN %lu %s + :@%s",
":%s SJOIN %lu %s + :*%s",
me.name,
(unsigned long) chptr->channelts,
chptr->chname,

View file

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
* $Id: m_lljoin.c,v 1.3 2002/09/02 04:10:59 fishwaldo Exp $
* $Id: m_lljoin.c,v 1.4 2002/09/02 07:41:15 fishwaldo Exp $
*/
#include "stdinc.h"
@ -63,7 +63,7 @@ _moddeinit(void)
mod_del_cmd(&lljoin_msgtab);
}
const char *_version = "$Revision: 1.3 $";
const char *_version = "$Revision: 1.4 $";
#endif
/*
* m_lljoin
@ -134,7 +134,7 @@ static void ms_lljoin(struct Client *client_p,
{
{
chptr = vchan_chptr = get_or_create_channel(target_p, chname, NULL);
flags = CHFL_CHANOP;
flags = CHFL_ADMIN;
}
root_vchan = chptr;
@ -143,7 +143,7 @@ static void ms_lljoin(struct Client *client_p,
return;
if (chptr->users == 0)
flags = CHFL_CHANOP;
flags = CHFL_ADMIN;
else
flags = 0;
@ -180,19 +180,12 @@ static void ms_lljoin(struct Client *client_p,
return;
}
if(flags == CHFL_CHANOP)
if(flags == CHFL_ADMIN)
{
chptr->channelts = CurrentTime;
/*
* XXX - this is a rather ugly hack.
*
* Unfortunately, there's no way to pass
* the fact that it is a vchan through SJOIN...
*/
/* Prevent users creating a fake vchan */
sendto_one(uplink,
":%s SJOIN %lu %s + :@%s",
":%s SJOIN %lu %s + :*%s",
me.name,
(unsigned long) chptr->channelts,
chptr->chname,
@ -200,17 +193,6 @@ static void ms_lljoin(struct Client *client_p,
}
/* a user can create a channel with halfops..? */
#if 0
else if ((flags == CHFL_HALFOP) && (IsCapable(uplink, CAP_HOPS)))
{
sendto_one(uplink,
":%s SJOIN %lu %s + :%%%s",
me.name,
(unsigned long) chptr->channelts,
chptr->chname,
nick);
}
#endif
else
{
sendto_one(uplink,
@ -230,7 +212,7 @@ static void ms_lljoin(struct Client *client_p,
target_p->vhost,
root_vchan->chname);
if( flags & CHFL_CHANOP )
if( flags & CHFL_ADMIN )
{
chptr->mode.mode |= MODE_TOPICLIMIT;
chptr->mode.mode |= MODE_NOPRIVMSGS;

View file

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
* $Id: m_oper.c,v 1.2 2002/08/13 14:45:11 fishwaldo Exp $
* $Id: m_oper.c,v 1.3 2002/09/02 07:41:15 fishwaldo Exp $
*/
#include "stdinc.h"
@ -41,6 +41,7 @@
#include "msg.h"
#include "parse.h"
#include "modules.h"
#include "packet.h"
static struct ConfItem *find_password_aconf(char *name, struct Client *source_p);
@ -73,7 +74,7 @@ _moddeinit(void)
mod_del_cmd(&oper_msgtab);
}
const char *_version = "$Revision: 1.2 $";
const char *_version = "$Revision: 1.3 $";
#endif
/*
@ -82,8 +83,9 @@ const char *_version = "$Revision: 1.2 $";
** parv[1] = oper name
** parv[2] = oper password
*/
static void m_oper(struct Client *client_p, struct Client *source_p,
int parc, char *parv[])
static void
m_oper(struct Client *client_p, struct Client *source_p,
int parc, char *parv[])
{
struct ConfItem *aconf;
struct ConfItem *oconf = NULL;
@ -101,40 +103,44 @@ static void m_oper(struct Client *client_p, struct Client *source_p,
return;
}
if( (aconf = find_password_aconf(name,source_p)) == NULL)
/* end the grace period */
if(!IsFloodDone(source_p))
flood_endgrace(source_p);
if((aconf = find_password_aconf(name,source_p)) == NULL)
{
sendto_one(source_p, form_str(ERR_NOOPERHOST), me.name, source_p->name);
if (ConfigFileEntry.failed_oper_notice)
{
sendto_realops_flags(FLAGS_ALL, L_ALL,
"Failed OPER attempt - host mismatch by %s (%s@%s)",
source_p->name, source_p->username, source_p->host);
source_p->name, source_p->username,
source_p->host);
}
return;
}
if ( match_oper_password(password,aconf) )
if (match_oper_password(password,aconf))
{
/*
20001216:
detach old iline
-einride
*/
ptr = source_p->localClient->confs.head;
if (ptr)
if ((ptr = source_p->localClient->confs.head) != NULL)
{
oconf = ptr->data;
detach_conf(source_p,oconf);
}
if( attach_conf(source_p, aconf) != 0 )
if(attach_conf(source_p, aconf) != 0)
{
sendto_one(source_p,":%s NOTICE %s :Can't attach conf!",
me.name,source_p->name);
sendto_realops_flags(FLAGS_ALL, L_ALL,
"Failed OPER attempt by %s (%s@%s) can't attach conf!",
source_p->name, source_p->username, source_p->host);
source_p->name, source_p->username,
source_p->host);
/*
20001216:
Reattach old iline
@ -144,7 +150,7 @@ static void m_oper(struct Client *client_p, struct Client *source_p,
return;
}
oper_up( source_p, aconf );
oper_up(source_p, aconf);
ilog(L_TRACE, "OPER %s by %s!%s@%s",
name, source_p->name, source_p->username, source_p->host);
@ -158,7 +164,8 @@ static void m_oper(struct Client *client_p, struct Client *source_p,
{
sendto_realops_flags(FLAGS_ALL, L_ALL,
"Failed OPER attempt by %s (%s@%s)",
source_p->name, source_p->username, source_p->host);
source_p->name, source_p->username,
source_p->host);
}
}
}
@ -169,8 +176,9 @@ static void m_oper(struct Client *client_p, struct Client *source_p,
** parv[1] = oper name
** parv[2] = oper password
*/
static void mo_oper(struct Client *client_p, struct Client *source_p,
int parc, char *parv[])
static void
mo_oper(struct Client *client_p, struct Client *source_p,
int parc, char *parv[])
{
sendto_one(source_p, form_str(RPL_YOUREOPER), me.name, parv[0]);
SendMessageFile(source_p, &ConfigFileEntry.opermotd);
@ -183,8 +191,9 @@ static void mo_oper(struct Client *client_p, struct Client *source_p,
** parv[1] = oper name
** parv[2] = oper password
*/
static void ms_oper(struct Client *client_p, struct Client *source_p,
int parc, char *parv[])
static void
ms_oper(struct Client *client_p, struct Client *source_p,
int parc, char *parv[])
{
/* if message arrived from server, trust it, and set to oper */
@ -207,19 +216,19 @@ static void ms_oper(struct Client *client_p, struct Client *source_p,
* output -
*/
static struct ConfItem *find_password_aconf(char *name, struct Client *source_p)
static struct ConfItem *
find_password_aconf(char *name, struct Client *source_p)
{
struct ConfItem *aconf;
if (!(aconf = find_conf_exact(name, source_p->username, source_p->host,
CONF_OPERATOR)) &&
!(aconf = find_conf_exact(name, source_p->username,
source_p->localClient->sockhost,
CONF_OPERATOR)))
{
return 0;
}
return(aconf);
if ((aconf = find_conf_exact(name, source_p->username, source_p->host,
CONF_OPERATOR)) != NULL)
return aconf;
else if ((aconf = find_conf_exact(name, source_p->username,
source_p->localClient->sockhost,
CONF_OPERATOR)) != NULL)
return aconf;
return NULL;
}
/*
@ -231,13 +240,13 @@ static struct ConfItem *find_password_aconf(char *name, struct Client *source_p)
* side effects - none
*/
static int match_oper_password(char *password,
struct ConfItem *aconf)
static int
match_oper_password(char *password, struct ConfItem *aconf)
{
char *encr;
if (!aconf->status & CONF_OPERATOR)
return NO;
return (NO);
/* XXX another #ifdef that should go */
#ifdef CRYPT_OPER_PASSWORD
@ -250,7 +259,7 @@ static int match_oper_password(char *password,
/* passwd may be NULL pointer. Head it off at the pass... */
if (aconf->passwd == NULL)
return NO;
return (NO);
if (password && *aconf->passwd)
encr = crypt(password, aconf->passwd);
@ -261,7 +270,7 @@ static int match_oper_password(char *password,
#endif /* CRYPT_OPER_PASSWORD */
if (strcmp(encr, aconf->passwd) == 0)
return YES;
return (YES);
else
return NO;
return (NO);
}

View file

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
* $Id: m_whois.c,v 1.3 2002/09/02 04:11:00 fishwaldo Exp $
* $Id: m_whois.c,v 1.4 2002/09/02 07:41:15 fishwaldo Exp $
*/
#include "stdinc.h"
@ -35,6 +35,7 @@
#include "numeric.h"
#include "s_conf.h"
#include "s_serv.h"
#include "s_user.h"
#include "send.h"
#include "list.h"
#include "irc_string.h"
@ -75,7 +76,7 @@ _moddeinit(void)
mod_del_cmd(&whois_msgtab);
}
const char *_version = "$Revision: 1.3 $";
const char *_version = "$Revision: 1.4 $";
#endif
/*
** m_whois

View file

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
* $Id: channel_mode.c,v 1.6 2002/09/02 04:11:00 fishwaldo Exp $
* $Id: channel_mode.c,v 1.7 2002/09/02 07:41:15 fishwaldo Exp $
*/
#include "stdinc.h"
@ -2206,6 +2206,8 @@ static void mode_get_status(struct Channel *chptr, struct Client *target_p,
else {
*t_op = 0;
*t_hop = 0;
*t_voice = 0;
*t_admin = 0;
}
for (i = 0; i < mode_count; i++)
@ -2219,8 +2221,16 @@ static void mode_get_status(struct Channel *chptr, struct Client *target_p,
*t_hop = (mode_changes[i].dir == MODE_ADD) ? 1 : 0;
return;
}
else if (mode_changes[i].letter == 'v')
else if (mode_changes[i].letter == 'v')
{
*t_voice = (mode_changes[i].dir == MODE_ADD) ? 1 : 0;
return;
}
else if (mode_changes[i].letter == 'a')
{
*t_admin = (mode_changes[i].dir == MODE_ADD) ? 1 : 0;
return;
}
}
}
}

View file

@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
* $Id: s_user.c,v 1.4 2002/08/16 12:05:37 fishwaldo Exp $
* $Id: s_user.c,v 1.5 2002/09/02 07:41:15 fishwaldo Exp $
*/
#include "stdinc.h"
@ -93,6 +93,7 @@ static struct flag_item user_modes[] =
{FLAGS_SPY, 'y'},
{FLAGS_OPERWALL, 'z'},
{FLAGS_HIDDEN, 'x'},
{FLAGS_REGNICK, 'r'},
{0, 0}
};
@ -150,7 +151,7 @@ int user_modes_from_c_to_bitmask[] =
FLAGS_OPER, /* o */
0, /* p */
0, /* q */
0, /* r */
FLAGS_REGNICK, /* r */
FLAGS_SERVNOTICE, /* s */
0, /* t */
FLAGS_UNAUTH, /* u */
@ -1124,6 +1125,12 @@ user_mode(struct Client *client_p, struct Client *source_p, int parc, char *parv
me.name, parv[0]);
source_p->umodes &= ~FLAGS_SERVICES;
}
if ((!IsServer(client_p) || !IsUlined(client_p)) && source_p->umodes & FLAGS_REGNICK)
{
sendto_one(source_p, ":%s NOTICE %s :*** Only Services can set +r",
me.name, parv[0]);
source_p->umodes &= ~FLAGS_REGNICK;
}
if (!(setflags & FLAGS_INVISIBLE) && IsInvisible(source_p))
++Count.invisi;