mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-06-12 17:34:46 +02:00
stuff
This commit is contained in:
+7
-2
@@ -16,9 +16,14 @@ Unreal3.1.4-Meadows Release Notes
|
||||
|
||||
* Please Note: There have been a couple of configuration file changes! This is
|
||||
IMPORTANT. Your IRCd WILL NOT START if you don't change the cloak key values found
|
||||
in the .network file. Additionally, it would be prudent to note that there is a
|
||||
in unrealircd.conf. Additionally, it would be prudent to note that there is a
|
||||
new directive in unrealircd.conf, exempt_all, which permits exempt lines in
|
||||
ircd.conf to match glines in addition to klines. It defaults to 1.
|
||||
ircd.conf to match glines in addition to klines. It defaults to 1. Finally, both
|
||||
version numbers in the .network file and unrealircd.conf have been changed. In
|
||||
unrealircd.conf, because of the 4 new directives. In the .network file because
|
||||
we removed techadmin, and the host directive for it. We will NOT bring techadmin
|
||||
back. If you don't like it, readd it yourself, and be sure to note that we won't
|
||||
provide support for modified versions of Unreal.
|
||||
|
||||
* The rest of the changes can be found (obviously) in the Changes file.
|
||||
|
||||
|
||||
@@ -339,7 +339,7 @@ done, but whatever.)
|
||||
--Luke
|
||||
===================================
|
||||
|
||||
Moved cloak key definitions to unrealircd.conf
|
||||
Moved cloak key definitions to .network file
|
||||
--Luke
|
||||
===================================
|
||||
|
||||
@@ -395,3 +395,29 @@ it will display real hosts instead of masked ones
|
||||
in the replies.
|
||||
--Luke
|
||||
===================================
|
||||
|
||||
Oper invisibility is no longer enabled by default
|
||||
but is a provided option in ./Config
|
||||
--Luke
|
||||
===================================
|
||||
|
||||
Changed information flag shown in /version. R now
|
||||
appears if invisibility is compiled in (even if
|
||||
disabled in unrealircd.conf)
|
||||
--Luke
|
||||
===================================
|
||||
|
||||
rmed Config.c (broken, severely) and networks.ndx
|
||||
--Luke
|
||||
===================================
|
||||
|
||||
Added win32-compile-guide in doc/ for people wanting
|
||||
to compile their own version for windows.
|
||||
--Luke
|
||||
===================================
|
||||
|
||||
Once again we global when anyone that's not a local
|
||||
oper opers. I like this, if you don't email me and
|
||||
maybe I'll add a conf option for it.
|
||||
--Luke
|
||||
===================================
|
||||
|
||||
@@ -81,6 +81,7 @@ CRYPT_OPER_PASSWORD=""
|
||||
CRYPT_LINK_PASSWORD=""
|
||||
CRYPT_ILINE_PASSWORD=""
|
||||
CRYPT_XLINE_PASSWORD=""
|
||||
ENABLE_INVISOPER=""
|
||||
LISTEN_SIZE="5"
|
||||
MAXSENDQLENGTH="3000000"
|
||||
BUFFERPOOL="(9 * MAXSENDQLENGTH)"
|
||||
@@ -1502,6 +1503,41 @@ fi
|
||||
esac
|
||||
done
|
||||
|
||||
FOO=""
|
||||
runonce=""
|
||||
while [ -z "$FOO" ] ; do
|
||||
if [ -n "$ENABLE_INVISOPER" ] ; then
|
||||
FOO="Yes"
|
||||
else
|
||||
FOO="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you want to enable total invisibility (+I) mode for opers?"
|
||||
echo $n "[$FOO] -> $c"
|
||||
if [ -z "$AUTO_CONFIG" -o -n "$runonce" ] ; then
|
||||
read cc
|
||||
else
|
||||
cc=""
|
||||
runonce=Yes
|
||||
fi
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$FOO
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
ENABLE_INVISOPER="1"
|
||||
;;
|
||||
[Nn]*)
|
||||
ENABLE_INVISOPER=""
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You need to enter either Yes or No here..."
|
||||
echo ""
|
||||
FOO=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
FOO=""
|
||||
runonce=""
|
||||
@@ -1852,6 +1888,11 @@ if [ -n "$CRYPT_XLINE_PASSWORD" ] ; then
|
||||
else
|
||||
echo "#undef CRYPT_XLINE_PASSWORD" >> $OPTIONS_H
|
||||
fi
|
||||
if [ -n "$ENABLE_INVISOPER" ] ; then
|
||||
echo "#define ENABLE_INVISOPER 1" >> $OPTIONS_H
|
||||
else
|
||||
echo "#undef ENABLE_INVISOPER" >> $OPTIONS_H
|
||||
fi
|
||||
if [ -n "$HUB" ] ; then
|
||||
echo "#define HUB 1" >> $OPTIONS_H
|
||||
else
|
||||
@@ -1897,6 +1938,7 @@ CRYPT_OPER_PASSWORD="$CRYPT_OPER_PASSWORD"
|
||||
CRYPT_LINK_PASSWORD="$CRYPT_LINK_PASSWORD"
|
||||
CRYPT_ILINE_PASSWORD="$CRYPT_ILINE_PASSWORD"
|
||||
CRYPT_XLINE_PASSWORD="$CRYPT_XLINE_PASSWORD"
|
||||
ENABLE_INVISOPER="$ENABLE_INVISOPER"
|
||||
LISTEN_SIZE="$LISTEN_SIZE"
|
||||
MAXSENDQLENGTH="$MAXSENDQLENGTH"
|
||||
BUFFERPOOL="$BUFFERPOOL"
|
||||
@@ -1941,7 +1983,6 @@ cat << __EOF__
|
||||
| - The UnrealIRCd Team - |
|
||||
| * Stskeeps stskeeps@unrealircd.com |
|
||||
| * codemastr codemastr@unrealircd.com |
|
||||
| * DrBin drbin@unrealircd.com |
|
||||
| * Luke luke@unrealircd.com |
|
||||
|_____________________________________________________________________|
|
||||
__EOF__
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
Was brought to you by:
|
||||
* Stskeeps <stskeeps@unrealircd.com>
|
||||
* codemastr <codemastr@unrealircd.com>
|
||||
* DrBin <drbin@unrealircd.com>
|
||||
* Luke <luke@unrealircd.com>
|
||||
|
||||
Precenses on the Internet:
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
Compiling UnrealIRCd 3.1.x for Windows
|
||||
--------------------------------------
|
||||
This document assumes you have a working build environment for
|
||||
Visual Studio .NET or Visual Studio 6.0. Other versions may work
|
||||
as well, but have not been tested.
|
||||
|
||||
1. Copy include/win32/settings.h and setup.h to include/
|
||||
2. Copy extras/regex/regex.h to include/
|
||||
3. Copy extras/regex/regex.c to src/
|
||||
4. Edit include/settings.h to your liking (pretty much change DOMAINNAME)
|
||||
5. Unzip src/win32/unrealircd.bmp.gz
|
||||
6. Execute "nmake makefile.win32"
|
||||
|
||||
Congratulations, you should have a functioning win32 binary.
|
||||
|
||||
--Luke (luke@unrealircd.com)
|
||||
+1
-1
@@ -133,7 +133,7 @@
|
||||
Ident checking
|
||||
#define this to disable ident checking
|
||||
*/
|
||||
#undef NO_IDENT_CHECKING
|
||||
#define NO_IDENT_CHECKING
|
||||
|
||||
/*
|
||||
* No spoof code
|
||||
|
||||
@@ -82,7 +82,10 @@
|
||||
|
||||
#define ERR_HOSTILENAME 455
|
||||
|
||||
#ifdef ENABLE_INVISOPER
|
||||
#define ERR_NOHIDING 459
|
||||
#endif
|
||||
|
||||
#define ERR_NOTFORHALFOPS 460
|
||||
#define ERR_NEEDMOREPARAMS 461
|
||||
#define ERR_ALREADYREGISTRED 462
|
||||
|
||||
+20
-2
@@ -247,14 +247,23 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define UMODE_BOT 0x400000 /* User is a bot */
|
||||
#define UMODE_SECURE 0x800000 /* User is a secure connect */
|
||||
#define UMODE_FCLIENT 0x1000000 /* recieve client on far connects.. */
|
||||
|
||||
#ifdef ENABLE_INVISOPER
|
||||
#define UMODE_HIDING 0x2000000 /* Totally invisible .. */
|
||||
#endif
|
||||
|
||||
#define UMODE_VICTIM 0x8000000 /* Intentional Victim */
|
||||
#define UMODE_DEAF 0x10000000
|
||||
#define UMODE_HIDEOPER 0x20000000 /* Hide oper mode */
|
||||
#define UMODE_SETHOST 0x40000000 /* used sethost */
|
||||
#define UMODE_STRIPBADWORDS 0x80000000 /* */
|
||||
|
||||
#ifdef ENABLE_INVISOPER
|
||||
#define SEND_UMODES (UMODE_INVISIBLE|UMODE_OPER|UMODE_WALLOP|UMODE_FAILOP|UMODE_HELPOP|UMODE_REGNICK|UMODE_SADMIN|UMODE_NETADMIN|UMODE_COADMIN|UMODE_ADMIN|UMODE_SERVICES|UMODE_HIDE|UMODE_EYES|UMODE_WHOIS|UMODE_KIX|UMODE_BOT|UMODE_SECURE|UMODE_FCLIENT|UMODE_HIDING|UMODE_DEAF|UMODE_VICTIM|UMODE_HIDEOPER|UMODE_SETHOST|UMODE_STRIPBADWORDS|UMODE_JUNK)
|
||||
#else
|
||||
#define SEND_UMODES (UMODE_INVISIBLE|UMODE_OPER|UMODE_WALLOP|UMODE_FAILOP|UMODE_HELPOP|UMODE_REGNICK|UMODE_SADMIN|UMODE_NETADMIN|UMODE_COADMIN|UMODE_ADMIN|UMODE_SERVICES|UMODE_HIDE|UMODE_EYES|UMODE_WHOIS|UMODE_KIX|UMODE_BOT|UMODE_SECURE|UMODE_FCLIENT|UMODE_DEAF|UMODE_VICTIM|UMODE_HIDEOPER|UMODE_SETHOST|UMODE_STRIPBADWORDS|UMODE_JUNK)
|
||||
#endif
|
||||
|
||||
#define ALL_UMODES (SEND_UMODES|UMODE_SERVNOTICE|UMODE_LOCOP|UMODE_KILLS|UMODE_CLIENT|UMODE_FLOOD|UMODE_SERVICES|UMODE_EYES)
|
||||
#define FLAGS_ID (FLAGS_DOID|FLAGS_GOTID)
|
||||
|
||||
@@ -283,7 +292,10 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define IsKix(x) ((x)->umodes & UMODE_KIX)
|
||||
#define IsHelpOp(x) ((x)->umodes & UMODE_HELPOP)
|
||||
#define IsAdmin(x) ((x)->umodes & UMODE_ADMIN)
|
||||
|
||||
#ifdef ENABLE_INVISOPER
|
||||
#define IsHiding(x) ((x)->umodes & UMODE_HIDING)
|
||||
#endif
|
||||
|
||||
#ifdef STRIPBADWORDS
|
||||
#define IsFilteringWords(x) ((x)->umodes & UMODE_STRIPBADWORDS)
|
||||
@@ -451,7 +463,9 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define OFLAG_AFOUNDER 0x10000000
|
||||
#define OFLAG_COFOUND 0x20000000
|
||||
#define OFLAG_WMASTER 0x40000000
|
||||
#ifdef ENABLE_INVISOPER
|
||||
#define OFLAG_INVISIBLE 0x80000000
|
||||
#endif
|
||||
#define OFLAG_LOCAL (OFLAG_REHASH|OFLAG_HELPOP|OFLAG_GLOBOP|OFLAG_WALLOP|OFLAG_LOCOP|OFLAG_LROUTE|OFLAG_LKILL|OFLAG_KLINE|OFLAG_UNKLINE|OFLAG_LNOTICE|OFLAG_UMODEC|OFLAG_UMODEF)
|
||||
#define OFLAG_GLOBAL (OFLAG_LOCAL|OFLAG_GROUTE|OFLAG_GKILL|OFLAG_GNOTICE)
|
||||
#define OFLAG_ISGLOBAL (OFLAG_GROUTE|OFLAG_GKILL|OFLAG_GNOTICE)
|
||||
@@ -628,7 +642,7 @@ struct ConfItem {
|
||||
#define CONF_RESTRICT 0x0200
|
||||
#endif
|
||||
#define CONF_CLASS 0x0400
|
||||
#define CONF_SERVICE 0x0800
|
||||
#define CONF_CHANGEUSERNAME 0x0800
|
||||
#define CONF_LEAF 0x1000
|
||||
#define CONF_LISTEN_PORT 0x2000
|
||||
#define CONF_HUB 0x4000
|
||||
@@ -648,7 +662,7 @@ struct ConfItem {
|
||||
#define CONF_VERSION 0x40000000
|
||||
#define CONF_OPS (CONF_OPERATOR | CONF_LOCOP)
|
||||
#define CONF_SERVER_MASK (CONF_CONNECT_SERVER | CONF_NOCONNECT_SERVER)
|
||||
#define CONF_CLIENT_MASK (CONF_CLIENT | CONF_SERVICE | CONF_OPS | \
|
||||
#define CONF_CLIENT_MASK (CONF_CLIENT| CONF_OPS | \
|
||||
CONF_SERVER_MASK)
|
||||
#define CONF_CRULE (CONF_CRULEALL | CONF_CRULEAUTO)
|
||||
#define CONF_QUARANTINE (CONF_QUARANTINED_SERVER|CONF_QUARANTINED_NICK)
|
||||
@@ -1043,7 +1057,11 @@ struct Channel {
|
||||
#define MODE_NOKNOCK 0x800000
|
||||
#define MODE_NOINVITE 0x1000000
|
||||
#define MODE_FLOODLIMIT 0x2000000
|
||||
|
||||
#ifdef ENABLE_INVISOPER
|
||||
#define MODE_NOHIDING 0x4000000
|
||||
#endif
|
||||
|
||||
#ifdef STRIPBADWORDS
|
||||
#define MODE_STRIPBADWORDS 0x8000000
|
||||
#endif
|
||||
|
||||
@@ -1,3 +1,25 @@
|
||||
#define SPATH "."
|
||||
/*
|
||||
* VERSION: Unreal3.1.4 Meadows
|
||||
* DATE: Sat Jun 15 13:43:51 EST 2002
|
||||
* OS: Win-32
|
||||
*
|
||||
*/
|
||||
|
||||
#define DPATH "."
|
||||
#define SPATH "."
|
||||
#define DOMAINNAME "irc.net"
|
||||
#define LISTEN_SIZE 5
|
||||
#define MAXSENDQLENGTH 3000000
|
||||
#define BUFFERPOOL (9 * MAXSENDQLENGTH)
|
||||
#define MAXCONNECTIONS 1024
|
||||
#define NICKNAMEHISTORYLENGTH 2000
|
||||
#undef CRYPT_OPER_PASSWORD
|
||||
#undef USE_SSL
|
||||
#undef CRYPT_LINK_PASSWORD
|
||||
#undef CRYPT_ILINE_PASSWORD
|
||||
#undef CRYPT_XLINE_PASSWORD
|
||||
#undef ENABLE_INVISOPER
|
||||
#define HUB 1
|
||||
#define HAVE_REGEX 1
|
||||
#define NOSPOOF 1
|
||||
#define GLIBC2_x
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
# Networks index file - do not touch please
|
||||
# 1 network listed
|
||||
# Please report outdated entries to unreal-networks@lists.sourceforge.net
|
||||
networks/template.netowrk .........: Template network file
|
||||
@@ -97,7 +97,7 @@ Set WEBTV_SUPPORT .......: 0
|
||||
#
|
||||
# Should usermode +I (Total Invisibility) be disabled?
|
||||
# 1 = Yes 0 = No
|
||||
Set NO_OPER_HIDING ......: 0
|
||||
Set NO_OPER_HIDING ......: 1
|
||||
|
||||
#
|
||||
# Should we make the user join a channel(s) on connect?
|
||||
|
||||
-377
@@ -1,377 +0,0 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#ifdef _WIN32
|
||||
#include <io.h>
|
||||
#endif
|
||||
#include <fcntl.h>
|
||||
#ifdef _WIN32
|
||||
#include <sys\stat.h>
|
||||
#endif
|
||||
#include <time.h>
|
||||
|
||||
int _FD_SETSIZE = 1024;
|
||||
char _NS_ADDRESS[256], _KLINE_ADDRESS[256];
|
||||
|
||||
|
||||
char Makefile[] =
|
||||
"CC=cl\n"
|
||||
"FD_SETSIZE=/D FD_SETSIZE=$FD_SETSIZE\n"
|
||||
"CFLAGS=/MT /O2 /I ./INCLUDE /Fosrc/ /nologo $(FD_SETSIZE) $(NS_ADDRESS) /D NOSPOOF=1 /c\n"
|
||||
"INCLUDES=./include/struct.h ./include/config.h ./include/sys.h \\\n"
|
||||
" ./include/common.h ./include/settings.h ./include/h.h ./include/numeric.h \\\n"
|
||||
" ./include/msg.h ./include/setup.h\n"
|
||||
"LINK=link.exe\n"
|
||||
"LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib wsock32.lib \\\n"
|
||||
" oldnames.lib libcmt.lib /nodefaultlib /nologo /out:SRC/WIRCD.EXE\n"
|
||||
"OBJ_FILES=SRC/CHANNEL.OBJ SRC/USERLOAD.OBJ SRC/SEND.OBJ SRC/BSD.OBJ \\\n"
|
||||
" SRC/CIO_MAIN.OBJ SRC/S_CONF.OBJ SRC/DBUF.OBJ SRC/RES.OBJ \\\n"
|
||||
" SRC/HASH.OBJ SRC/CIO_INIT.OBJ SRC/PARSE.OBJ SRC/IRCD.OBJ \\\n"
|
||||
" SRC/S_NUMERIC.OBJ SRC/WHOWAS.OBJ SRC/RES_COMP.OBJ SRC/S_AUTH.OBJ \\\n"
|
||||
" SRC/HELP.OBJ SRC/S_MISC.OBJ SRC/MATCH.OBJ SRC/CRULE.OBJ \\\n"
|
||||
" SRC/S_DEBUG.OBJ SRC/RES_INIT.OBJ SRC/SUPPORT.OBJ SRC/LIST.OBJ \\\n"
|
||||
" SRC/S_ERR.OBJ SRC/PACKET.OBJ SRC/CLASS.OBJ SRC/S_BSD.OBJ \\\n"
|
||||
" SRC/MD5.OBJ SRC/S_SERV.OBJ SRC/S_USER.OBJ SRC/WIN32.OBJ \\\n"
|
||||
" SRC/DYNCONF.OBJ\\\n"
|
||||
" SRC/VERSION.OBJ SRC/WIN32.RES SRC/CLOAK.OBJ SRC/S_UNREAL.OBJ\n"
|
||||
"RC=rc.exe\n"
|
||||
"\n"
|
||||
"ALL: SRC/WIRCD.EXE SRC/CHKCONF.EXE\n"
|
||||
" @echo Complete.\n"
|
||||
"\n"
|
||||
"CLEAN:\n"
|
||||
" -@erase src\\*.exe 2>NUL\n"
|
||||
" -@erase src\\*.obj 2>NUL\n"
|
||||
" -@erase src\\win32.res 2>NUL\n"
|
||||
" -@erase src\\version.c 2>NUL\n"
|
||||
"\n"
|
||||
"include/setup.h:\n"
|
||||
" @echo Hmm...doesn't look like you've run Config...\n"
|
||||
" @echo Doing so now.\n"
|
||||
" @config.exe\n"
|
||||
"\n"
|
||||
"src/version.c: dummy\n"
|
||||
" @config.exe -v\n"
|
||||
"\n"
|
||||
"src/version.obj: src/version.c\n"
|
||||
" $(CC) $(CFLAGS) src/version.c\n"
|
||||
"\n"
|
||||
"SRC/WIRCD.EXE: $(OBJ_FILES) src/version.obj\n"
|
||||
" $(LINK) $(LFLAGS) $(OBJ_FILES)\n"
|
||||
"\n"
|
||||
"SRC/CHKCONF.EXE: ./include/struct.h ./include/config.h ./include/sys.h \\\n"
|
||||
" ./include/common.h ./src/crule.c ./src/match.c ./src/chkconf.c\n"
|
||||
" $(CC) /nologo /I ./include /D CR_CHKCONF /Fosrc/chkcrule.obj /c src/crule.c\n"
|
||||
" $(CC) /nologo /I ./include /D CR_CHKCONF /Fosrc/chkmatch.obj /c src/match.c\n"
|
||||
" $(CC) /nologo /I ./include /D CR_CHKCONF /Fosrc/chkconf.obj /c src/chkconf.c\n"
|
||||
" $(LINK) /nologo /out:src/chkconf.exe src/chkconf.obj src/chkmatch.obj \\\n"
|
||||
" src/chkcrule.obj\n"
|
||||
"\n"
|
||||
"src/parse.obj: src/parse.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/parse.c\n"
|
||||
"\n"
|
||||
"src/bsd.obj: src/bsd.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/bsd.c\n"
|
||||
"\n"
|
||||
"src/dbuf.obj: src/dbuf.c $(INCLUDES) ./include/dbuf.h\n"
|
||||
" $(CC) $(CFLAGS) src/dbuf.c\n"
|
||||
"\n"
|
||||
"src/packet.obj: src/packet.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/packet.c\n"
|
||||
"\n"
|
||||
"src/send.obj: src/send.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/send.c\n"
|
||||
"\n"
|
||||
"src/match.obj: src/match.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/match.c\n"
|
||||
"\n"
|
||||
"src/support.obj: src/support.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/support.c\n"
|
||||
"\n"
|
||||
"src/channel.obj: src/channel.c $(INCLUDES) ./include/channel.h\n"
|
||||
" $(CC) $(CFLAGS) src/channel.c\n"
|
||||
"\n"
|
||||
"src/class.obj: src/class.c $(INCLUDES) ./include/class.h\n"
|
||||
" $(CC) $(CFLAGS) src/class.c\n"
|
||||
"\n"
|
||||
"src/ircd.obj: src/ircd.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/ircd.c\n"
|
||||
"\n"
|
||||
"src/list.obj: src/list.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/list.c\n"
|
||||
"\n"
|
||||
"src/res.obj: src/res.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/res.c\n"
|
||||
"\n"
|
||||
"src/s_bsd.obj: src/s_bsd.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/s_bsd.c\n"
|
||||
"\n"
|
||||
"src/s_auth.obj: src/s_auth.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/s_auth.c\n"
|
||||
"\n"
|
||||
"src/s_conf.obj: src/s_conf.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/s_conf.c\n"
|
||||
"\n"
|
||||
"src/s_debug.obj: src/s_debug.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/s_debug.c\n"
|
||||
"\n"
|
||||
"src/s_err.obj: src/s_err.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/s_err.c\n"
|
||||
"\n"
|
||||
"src/s_misc.obj: src/s_misc.c $(INCLUDES) ./include/dbuf.h\n"
|
||||
" $(CC) $(CFLAGS) src/s_misc.c\n"
|
||||
"\n"
|
||||
"src/s_user.obj: src/s_user.c $(INCLUDES) ./include/dbuf.h \\\n"
|
||||
" ./include/channel.h ./include/whowas.h\n"
|
||||
" $(CC) $(CFLAGS) src/s_user.c\n"
|
||||
"\n"
|
||||
"src/dynconf.obj: src/dynconf.c $(INCLUDES) ./include/dbuf.h \\\n"
|
||||
" ./include/channel.h ./include/whowas.h ./include/dynconf.h\n"
|
||||
" $(CC) $(CFLAGS) src/dynconf.c\n"
|
||||
"\n"
|
||||
"src/s_unreal.obj: src/s_unreal.c $(INCLUDES) ./include/dbuf.h \\\n"
|
||||
" ./include/channel.h ./include/whowas.h\n"
|
||||
" $(CC) $(CFLAGS) src/s_unreal.c\n"
|
||||
"\n"
|
||||
"src/cloak.obj: src/cloak.c $(INCLUDES) ./include/dbuf.h \\\n"
|
||||
" ./include/channel.h ./include/whowas.h\n"
|
||||
" $(CC) $(CFLAGS) src/s_unreal.c\n"
|
||||
"\n"
|
||||
"src/s_serv.obj: src/s_serv.c $(INCLUDES) ./include/dbuf.h ./include/whowas.h\n"
|
||||
" $(CC) $(CFLAGS) src/s_serv.c\n"
|
||||
"\n"
|
||||
"src/s_numeric.obj: src/s_numeric.c $(INCLUDES) ./include/dbuf.h\n"
|
||||
" $(CC) $(CFLAGS) src/s_numeric.c\n"
|
||||
"\n"
|
||||
"src/whowas.obj: src/whowas.c $(INCLUDES) ./include/dbuf.h ./include/whowas.h\n"
|
||||
" $(CC) $(CFLAGS) src/whowas.c\n"
|
||||
"\n"
|
||||
"src/hash.obj: src/hash.c $(INCLUDES) ./include/hash.h\n"
|
||||
" $(CC) $(CFLAGS) src/hash.c\n"
|
||||
"\n"
|
||||
"src/crule.obj: src/crule.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/crule.c\n"
|
||||
"\n"
|
||||
"src/win32.obj: src/win32.c $(INCLUDES) ./include/resource.h\n"
|
||||
" $(CC) $(CFLAGS) src/win32.c\n"
|
||||
"\n"
|
||||
"src/cio_main.obj: src/cio_main.c $(INCLUDES) ./include/cio.h ./include/ciofunc.h\n"
|
||||
" $(CC) $(CFLAGS) src/cio_main.c\n"
|
||||
"\n"
|
||||
"src/cio_init.obj: src/cio_init.c $(INCLUDES) ./include/cio.h ./include/ciofunc.h\n"
|
||||
" $(CC) $(CFLAGS) src/cio_init.c\n"
|
||||
"\n"
|
||||
"src/res_comp.obj: src/res_comp.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/res_comp.c\n"
|
||||
"\n"
|
||||
"src/res_init.obj: src/res_init.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/res_init.c\n"
|
||||
"\n"
|
||||
"src/help.obj: src/help.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/help.c\n"
|
||||
"\n"
|
||||
"src/md5.obj: src/md5.c $(INCLUDES)\n"
|
||||
" $(CC) $(CFLAGS) src/md5.c\n"
|
||||
"\n"
|
||||
"src/win32.res: src/win32.rc\n"
|
||||
" $(RC) /l 0x409 /fosrc/win32.res /i ./include /i ./src \\\n"
|
||||
" /d NDEBUG src/win32.rc\n" "\n" "dummy:\n" "\n";
|
||||
|
||||
|
||||
char SetupH[] =
|
||||
"/* This is only a wrapper.. --Stskeeps */\n"
|
||||
"#include \"win32/setup.h\"\n";
|
||||
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
if (argc > 1)
|
||||
{
|
||||
if (!strcmp(argv[1], "-v"))
|
||||
return do_version();
|
||||
|
||||
if (!strcmp(argv[1], "-n"))
|
||||
return do_config(1);
|
||||
}
|
||||
printf
|
||||
("To do win32 compiling copy include/win32/setup.h to include/\n");
|
||||
printf("Copy include/win32/settings.h to include/ and modify it\n");
|
||||
printf("and copy makefile.win32 to Makefile\n");
|
||||
}
|
||||
|
||||
|
||||
int do_config(int autoconf)
|
||||
{
|
||||
int fd;
|
||||
char str[128];
|
||||
|
||||
|
||||
if ((fd =
|
||||
open("include\\setup.h", O_CREAT | O_TRUNC | O_WRONLY | O_TEXT,
|
||||
S_IREAD | S_IWRITE)) == -1)
|
||||
printf("Error opening include\\setup.h\n\r");
|
||||
else
|
||||
{
|
||||
write(fd, SetupH, strlen(SetupH));
|
||||
close(fd);
|
||||
}
|
||||
|
||||
while (1)
|
||||
{
|
||||
/*
|
||||
* FD_SETSIZE
|
||||
*/
|
||||
printf("\n");
|
||||
printf
|
||||
("How many file descriptors (or sockets) can the irc server use?");
|
||||
printf("\n");
|
||||
printf("[%d] -> ", _FD_SETSIZE);
|
||||
gets(str);
|
||||
if (*str != '\n' && *str != '\r')
|
||||
sscanf(str, "%d", &_FD_SETSIZE);
|
||||
|
||||
if (_FD_SETSIZE >= 100)
|
||||
{
|
||||
printf("\n");
|
||||
printf("FD_SETSIZE will be overridden using -D "
|
||||
"FD_SETSIZE=%d when compiling ircd.", _FD_SETSIZE);
|
||||
printf("\n");
|
||||
break;
|
||||
}
|
||||
printf("\n");
|
||||
printf
|
||||
("You need to enter a number here, greater or equal to 100.\n");
|
||||
}
|
||||
while (1)
|
||||
{
|
||||
}
|
||||
/*
|
||||
* Now write the makefile out.
|
||||
*/
|
||||
write_makefile();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int write_makefile(void)
|
||||
{
|
||||
int fd, makfd, len;
|
||||
char *buffer, *s;
|
||||
|
||||
buffer = (char *)malloc(strlen(Makefile) + 4096);
|
||||
memcpy(buffer, Makefile, strlen(Makefile) + 1);
|
||||
|
||||
s = (char *)strstr(buffer, "$FD_SETSIZE");
|
||||
if (s)
|
||||
{
|
||||
itoa(_FD_SETSIZE, s, 10);
|
||||
memmove(s + strlen(s), s + 11, strlen(s + 11) + 1);
|
||||
}
|
||||
|
||||
|
||||
if ((makfd = open("Makefile", O_CREAT | O_TRUNC | O_WRONLY | O_TEXT,
|
||||
S_IREAD | S_IWRITE)) == -1)
|
||||
{
|
||||
printf("Error creating Makefile\n\r");
|
||||
return 1;
|
||||
}
|
||||
write(makfd, buffer, strlen(buffer));
|
||||
close(makfd);
|
||||
|
||||
free(buffer);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int do_version(void)
|
||||
{
|
||||
int fd, verfd, generation = 0, len, doingvernow = 0;
|
||||
char buffer[16384], *s;
|
||||
|
||||
if ((verfd = open("src\\version.c", O_RDONLY | O_TEXT)) != -1)
|
||||
{
|
||||
while (!eof(verfd))
|
||||
{
|
||||
len = read(verfd, buffer, sizeof(buffer) - 1);
|
||||
if (len == -1)
|
||||
break;
|
||||
buffer[len] = 0;
|
||||
s = (char *)strstr(buffer, "char *generation = \"");
|
||||
if (s)
|
||||
{
|
||||
s += 20;
|
||||
generation = atoi(s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
close(verfd);
|
||||
}
|
||||
|
||||
if ((fd = open("src\\version.c.SH", O_RDONLY | O_TEXT)) == -1)
|
||||
{
|
||||
printf("Error opening src\\version.c.SH\n\r");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ((verfd =
|
||||
open("src\\version.c", O_CREAT | O_TRUNC | O_WRONLY | O_TEXT,
|
||||
S_IREAD | S_IWRITE)) == -1)
|
||||
{
|
||||
printf("Error opening src\\version.c\n\r");
|
||||
return 1;
|
||||
}
|
||||
|
||||
generation++;
|
||||
|
||||
printf("Extracting IRC/ircd/version.c...\n\r");
|
||||
|
||||
while (!eof(fd))
|
||||
{
|
||||
len = read(fd, buffer, sizeof(buffer) - 1);
|
||||
if (len == -1)
|
||||
break;
|
||||
buffer[len] = 0;
|
||||
if (!doingvernow)
|
||||
{
|
||||
s = (char *)strstr(buffer, "/*");
|
||||
if (!s)
|
||||
continue;
|
||||
memmove(buffer, s, strlen(s) + 1);
|
||||
doingvernow = 1;
|
||||
}
|
||||
s = (char *)strstr(buffer, "$generation");
|
||||
if (s)
|
||||
{
|
||||
itoa(generation, s, 10);
|
||||
memmove(s + strlen(s), s + 11, strlen(s + 11) + 1);
|
||||
}
|
||||
s = (char *)strstr(buffer, "$creation");
|
||||
if (s)
|
||||
{
|
||||
time_t t = time(0);
|
||||
char *ct = ctime(&t);
|
||||
|
||||
memmove(s + strlen(ct) - 1, s + 9, strlen(s + 9) + 1);
|
||||
memmove(s, ct, strlen(ct) - 1);
|
||||
}
|
||||
s = (char *)strstr(buffer, "$package");
|
||||
if (s)
|
||||
{
|
||||
memmove(s, "IRC", 3);
|
||||
memmove(s + 3, s + 8, strlen(s + 8) + 1);
|
||||
}
|
||||
|
||||
s = (char *)strstr(buffer, "!SUB!THIS!");
|
||||
if (s)
|
||||
*s = 0;
|
||||
|
||||
write(verfd, buffer, strlen(buffer));
|
||||
}
|
||||
|
||||
close(fd);
|
||||
close(verfd);
|
||||
return 0;
|
||||
}
|
||||
+25
-3
@@ -142,7 +142,9 @@ aCtab cFlagTab[] = {
|
||||
{MODE_NOKNOCK, 'K', 0, 0}, /* knock knock (no way!) */
|
||||
{MODE_NOINVITE, 'V', 0, 0}, /* no invites */
|
||||
{MODE_FLOODLIMIT, 'f', 0, 1}, /* flood limiter */
|
||||
#ifdef ENABLE_INVISOPER
|
||||
{MODE_NOHIDING, 'H', 0, 0}, /* no +I joiners */
|
||||
#endif
|
||||
#ifdef STRIPBADWORDS
|
||||
{MODE_STRIPBADWORDS, 'G', 0, 0}, /* no badwords */
|
||||
#endif
|
||||
@@ -1565,6 +1567,7 @@ int do_mode_char(chptr, modetype, modechar, param, what, cptr, pcount, pvar,
|
||||
if (!IsServer(cptr) && !IsULine(cptr))
|
||||
break;
|
||||
goto setthephuckingmode;
|
||||
#ifdef ENABLE_INVISOPER
|
||||
case MODE_NOHIDING:
|
||||
if (!IsSkoAdmin(cptr) && !IsServer(cptr)
|
||||
&& !IsULine(cptr))
|
||||
@@ -1575,6 +1578,7 @@ int do_mode_char(chptr, modetype, modechar, param, what, cptr, pcount, pvar,
|
||||
break;
|
||||
}
|
||||
goto setthephuckingmode;
|
||||
#endif
|
||||
case MODE_SECRET:
|
||||
case MODE_PRIVATE:
|
||||
case MODE_MODERATED:
|
||||
@@ -2268,8 +2272,10 @@ static int can_join(cptr, sptr, chptr, key, link, parv)
|
||||
return (ERR_ADMONLY);
|
||||
}
|
||||
|
||||
#ifdef ENABLE_INVISOPER
|
||||
if ((chptr->mode.mode & MODE_NOHIDING) && IsHiding(sptr))
|
||||
return (ERR_NOHIDING);
|
||||
#endif
|
||||
|
||||
if ((IsOper(sptr) && !((chptr->mode.mode & MODE_ADMONLY))) && !(ib==0))
|
||||
{
|
||||
@@ -2741,9 +2747,12 @@ int channel_link(cptr, sptr, parc, parv)
|
||||
/*
|
||||
** notify all other users on the new channel
|
||||
*/
|
||||
#ifdef ENABLE_INVISOPER
|
||||
if (!IsHiding(sptr))
|
||||
#endif
|
||||
sendto_channel_butserv(chptr, sptr,
|
||||
":%s JOIN :%s", parv[0], name);
|
||||
#ifdef ENABLE_INVISOPER
|
||||
else
|
||||
{
|
||||
if (MyClient(sptr))
|
||||
@@ -2752,10 +2761,11 @@ int channel_link(cptr, sptr, parc, parv)
|
||||
(IsHidden(sptr) ? sptr->
|
||||
user->virthost : sptr->user->realhost),
|
||||
name);
|
||||
sendto_umode(UMODE_NETADMIN,
|
||||
sendto_umode(UMODE_ADMIN,
|
||||
"*** Invisibility -- %s (%s@%s) JOIN %s", sptr->name,
|
||||
sptr->user->username, sptr->user->realhost, chptr->chname);
|
||||
}
|
||||
#endif
|
||||
sendto_serv_butone_token(cptr, parv[0], MSG_JOIN,
|
||||
TOK_JOIN, name);
|
||||
|
||||
@@ -2964,6 +2974,7 @@ int m_join(cptr, sptr, parc, parv)
|
||||
/*
|
||||
** notify all other users on the new channel
|
||||
*/
|
||||
#ifdef ENABLE_INVISOPER
|
||||
if (IsHiding(sptr))
|
||||
{
|
||||
if (MyClient(sptr))
|
||||
@@ -2986,6 +2997,9 @@ int m_join(cptr, sptr, parc, parv)
|
||||
}
|
||||
}
|
||||
else if (chptr->mode.mode & MODE_AUDITORIUM)
|
||||
#else
|
||||
if (chptr->mode.mode & MODE_AUDITORIUM)
|
||||
#endif
|
||||
{
|
||||
if (MyClient(sptr))
|
||||
sendto_one(sptr, ":%s!%s@%s JOIN :%s",
|
||||
@@ -3128,7 +3142,7 @@ int m_part(cptr, sptr, parc, parv)
|
||||
|
||||
if (1)
|
||||
{
|
||||
|
||||
#ifdef ENABLE_INVISOPER
|
||||
if (IsHiding(sptr))
|
||||
{
|
||||
if (MyClient(sptr))
|
||||
@@ -3171,6 +3185,9 @@ int m_part(cptr, sptr, parc, parv)
|
||||
chptr->chname, comment);
|
||||
}
|
||||
else if (chptr->mode.mode & MODE_AUDITORIUM)
|
||||
#else
|
||||
if (chptr->mode.mode & MODE_AUDITORIUM)
|
||||
#endif
|
||||
{
|
||||
if (MyClient(sptr))
|
||||
{
|
||||
@@ -3317,6 +3334,7 @@ int m_kick(cptr, sptr, parc, parv)
|
||||
goto attack;
|
||||
|
||||
/* Hiding patch by }{ */
|
||||
#ifdef ENABLE_INVISOPER
|
||||
if (IsHiding(who))
|
||||
{
|
||||
sendto_one(sptr,
|
||||
@@ -3328,7 +3346,7 @@ int m_kick(cptr, sptr, parc, parv)
|
||||
chptr->chname, comment);
|
||||
break;
|
||||
}
|
||||
|
||||
#endif
|
||||
/* If you're kicking yourself, it really shouldn't matter what modes you have set
|
||||
* unless the channel is +Q
|
||||
*/
|
||||
@@ -4319,8 +4337,10 @@ int m_names(cptr, sptr, parc, parv)
|
||||
acptr = cm->value.cptr;
|
||||
if (IsInvisible(acptr) && !member)
|
||||
continue;
|
||||
#ifdef ENABLE_INVISOPER
|
||||
if (IsHiding(acptr) && acptr != sptr && !(IsNetAdmin(sptr)))
|
||||
continue;
|
||||
#endif
|
||||
if (chptr->mode.mode & MODE_AUDITORIUM)
|
||||
if (!is_chan_op(sptr, chptr)
|
||||
&& !is_chanprot(sptr, chptr)
|
||||
@@ -4855,7 +4875,9 @@ int m_sjoin(aClient *cptr, aClient *sptr, int parc, char *parv[])
|
||||
modeflags = 0;
|
||||
}
|
||||
add_user_to_channel(chptr, acptr, modeflags);
|
||||
#ifdef ENABLE_INVISOPER
|
||||
if (!IsHiding(acptr))
|
||||
#endif
|
||||
sendto_channel_butserv(chptr, acptr,
|
||||
":%s JOIN :%s", nick,
|
||||
chptr->chname);
|
||||
|
||||
@@ -315,10 +315,6 @@ static aConfItem *initconf(opt)
|
||||
case 'q': /* network. USE WITH CAUTION! */
|
||||
aconf->status = CONF_QUARANTINED_SERVER;
|
||||
break;
|
||||
case 'S': /* Service. Same semantics as */
|
||||
case 's': /* CONF_OPERATOR */
|
||||
aconf->status = CONF_SERVICE;
|
||||
break;
|
||||
case 'T':
|
||||
aconf->status = CONF_TLINE;
|
||||
break;
|
||||
|
||||
+35
-4
@@ -357,6 +357,18 @@ int attach_conf(cptr, aconf)
|
||||
return 0;
|
||||
}
|
||||
|
||||
aConfItem *find_jline(char *password)
|
||||
{
|
||||
aConfItem *aconf;
|
||||
|
||||
for (aconf = conf; aconf; aconf = aconf->next)
|
||||
if (aconf->status & CONF_CHANGEUSERNAME)
|
||||
if (!strcmp(aconf->passwd, password))
|
||||
{
|
||||
return (aconf);
|
||||
}
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
aConfItem *find_tline(char *host)
|
||||
{
|
||||
@@ -886,9 +898,15 @@ int m_svsnoop(cptr, sptr, parc, parv)
|
||||
acptr->umodes &=
|
||||
~(UMODE_NETADMIN | UMODE_CLIENT |
|
||||
UMODE_FLOOD | UMODE_EYES | UMODE_WHOIS);
|
||||
#ifdef ENABLE_INVISOPER
|
||||
acptr->umodes &=
|
||||
~(UMODE_KIX | UMODE_FCLIENT | UMODE_HIDING |
|
||||
UMODE_DEAF | UMODE_HIDEOPER);
|
||||
#else
|
||||
acptr->umodes &=
|
||||
~(UMODE_KIX | UMODE_FCLIENT |
|
||||
UMODE_DEAF | UMODE_HIDEOPER);
|
||||
#endif
|
||||
acptr->oflag = 0;
|
||||
|
||||
}
|
||||
@@ -1038,9 +1056,15 @@ extern char *getfield();
|
||||
|
||||
#define STAR1 OFLAG_SADMIN|OFLAG_ADMIN|OFLAG_NETADMIN|OFLAG_COADMIN
|
||||
#define STAR2 OFLAG_ZLINE|OFLAG_HIDE|OFLAG_WHOIS
|
||||
#ifdef ENABLE_INVISOPER
|
||||
#define STAR3 OFLAG_INVISIBLE
|
||||
#endif
|
||||
static int oper_access[] = {
|
||||
#ifdef ENABLE_INVISOPER
|
||||
~(STAR1 | STAR2 | STAR3), '*',
|
||||
#else
|
||||
~(STAR1 | STAR2 ), '*',
|
||||
#endif
|
||||
OFLAG_LOCAL, 'o',
|
||||
OFLAG_GLOBAL, 'O',
|
||||
OFLAG_REHASH, 'r',
|
||||
@@ -1069,7 +1093,9 @@ static int oper_access[] = {
|
||||
OFLAG_WHOIS, 'W',
|
||||
OFLAG_HIDE, 'H',
|
||||
/* OFLAG_AGENT, 'S',*/
|
||||
#ifdef ENABLE_INVISOPER
|
||||
OFLAG_INVISIBLE, '^',
|
||||
#endif
|
||||
0, 0
|
||||
};
|
||||
|
||||
@@ -1211,6 +1237,9 @@ int initconf(opt)
|
||||
case 'i': /* to connect me */
|
||||
aconf->status = CONF_CLIENT;
|
||||
break;
|
||||
case 'j':
|
||||
aconf->status = CONF_CHANGEUSERNAME;
|
||||
break;
|
||||
case 'K': /* Kill user line on ircd.conf */
|
||||
case 'k':
|
||||
aconf->status = CONF_KILL;
|
||||
@@ -1255,10 +1284,6 @@ int initconf(opt)
|
||||
/* network. USE WITH CAUTION! */
|
||||
aconf->status = CONF_QUARANTINED_SERVER;
|
||||
|
||||
break;
|
||||
case 'S': /* Service. Same semantics as */
|
||||
case 's': /* CONF_OPERATOR */
|
||||
aconf->status = CONF_SERVICE;
|
||||
break;
|
||||
case 'T':
|
||||
aconf->status = CONF_TLINE;
|
||||
@@ -2855,9 +2880,15 @@ int m_svso(cptr, sptr, parc, parv)
|
||||
acptr->umodes &=
|
||||
~(UMODE_NETADMIN | UMODE_CLIENT |
|
||||
UMODE_FLOOD | UMODE_EYES | UMODE_WHOIS);
|
||||
#ifdef ENABLE_INVISOPER
|
||||
acptr->umodes &=
|
||||
~(UMODE_KIX | UMODE_FCLIENT | UMODE_HIDING |
|
||||
UMODE_DEAF | UMODE_HIDEOPER);
|
||||
#else
|
||||
acptr->umodes &=
|
||||
~(UMODE_KIX | UMODE_FCLIENT |
|
||||
UMODE_DEAF | UMODE_HIDEOPER);
|
||||
#endif
|
||||
acptr->oflag = 0;
|
||||
send_umode_out(acptr, acptr, fLag);
|
||||
}
|
||||
|
||||
+2
-2
@@ -84,8 +84,8 @@ char serveropts[] = {
|
||||
#ifdef USE_SYSLOG
|
||||
'Y',
|
||||
#endif
|
||||
#ifdef OPER_NO_HIDING
|
||||
'H',
|
||||
#ifdef ENABLE_INVISOPER
|
||||
'R',
|
||||
#endif
|
||||
#ifdef NO_IDENT_CHECKING
|
||||
'K',
|
||||
|
||||
@@ -1677,8 +1677,6 @@ void m_info_send(sptr)
|
||||
me.name, RPL_INFO, sptr->name);
|
||||
sendto_one(sptr, ":%s %d %s :| * codemastr <codemastr@unrealircd.com>",
|
||||
me.name, RPL_INFO, sptr->name);
|
||||
sendto_one(sptr, ":%s %d %s :| * DrBin <drbin@unrealircd.com>",
|
||||
me.name, RPL_INFO, sptr->name);
|
||||
sendto_one(sptr, ":%s %d %s :| * Luke <luke@unrealircd.com>",
|
||||
me.name, RPL_INFO, sptr->name);
|
||||
sendto_one(sptr, ":%s %d %s :|", me.name, RPL_INFO, sptr->name);
|
||||
|
||||
@@ -1056,9 +1056,11 @@ int m_sendumode(cptr, sptr, parc, parv)
|
||||
sendto_umode(UMODE_CODER, "%s", parv[2]);
|
||||
break;
|
||||
*/
|
||||
#ifdef ENABLE_INVISOPER
|
||||
case 'I':
|
||||
sendto_umode(UMODE_HIDING, "%s", parv[2]);
|
||||
break;
|
||||
#endif
|
||||
case 'w':
|
||||
sendto_umode(UMODE_WALLOP, "%s", parv[2]);
|
||||
break;
|
||||
|
||||
+57
-34
@@ -88,7 +88,9 @@ static int user_modes[] = { UMODE_OPER, 'o',
|
||||
UMODE_KIX, 'q',
|
||||
UMODE_BOT, 'B',
|
||||
UMODE_FCLIENT, 'F',
|
||||
#ifdef ENABLE_INVISOPER
|
||||
UMODE_HIDING, 'I',
|
||||
#endif
|
||||
UMODE_SECURE, 'z',
|
||||
UMODE_DEAF, 'd',
|
||||
UMODE_VICTIM, 'v',
|
||||
@@ -642,7 +644,7 @@ static int register_user(cptr, sptr, nick, username, umode, virthost)
|
||||
aClient *sptr;
|
||||
char *nick, *username, *virthost, *umode;
|
||||
{
|
||||
aConfItem *aconf;
|
||||
aConfItem *aconf, *ac2;
|
||||
char *parv[3], *tmpstr, *encr;
|
||||
#ifdef HOSTILENAME
|
||||
char stripuser[USERLEN + 1], *u1 = stripuser, *u2, olduser[USERLEN + 1],
|
||||
@@ -763,24 +765,18 @@ static int register_user(cptr, sptr, nick, username, umode, virthost)
|
||||
*
|
||||
* Moved the noident stuff here. -OnyxDragon
|
||||
*/
|
||||
if (!(sptr->flags & FLAGS_DOID))
|
||||
strncpyzt(user->username, username, USERLEN + 1);
|
||||
else if (sptr->flags & FLAGS_GOTID)
|
||||
strncpyzt(user->username, sptr->username, USERLEN + 1);
|
||||
if (sptr->passwd && ((ac2 = (aConfItem *)find_jline(sptr->passwd))))
|
||||
{
|
||||
strncpyzt(user->username, ac2->host, USERLEN + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* because username may point to user->username */
|
||||
char temp[USERLEN + 1];
|
||||
|
||||
strncpyzt(temp, username, USERLEN + 1);
|
||||
#ifdef NO_IDENT_CHECKING
|
||||
strncpy(user->username, temp, USERLEN);
|
||||
user->username[USERLEN] = '\0';
|
||||
#else
|
||||
*user->username = '~';
|
||||
(void)strncpy(&user->username[1], temp, USERLEN);
|
||||
user->username[USERLEN] = '\0';
|
||||
#endif
|
||||
#ifdef HOSTILENAME
|
||||
noident = 1;
|
||||
#endif
|
||||
@@ -2452,8 +2448,10 @@ static void do_who(sptr, acptr, repchan)
|
||||
/* checks for channel /who's and nonopers */
|
||||
if (channelwho && !IsOper(sptr) && sptr != acptr)
|
||||
{
|
||||
#ifdef ENABLE_INVISOPER
|
||||
if IsHiding(acptr)
|
||||
return;
|
||||
#endif
|
||||
if (IsAuditorium(repchan) && !is_chan_op(acptr,repchan)
|
||||
&& !is_chan_op(sptr,repchan))
|
||||
return;
|
||||
@@ -2462,10 +2460,10 @@ static void do_who(sptr, acptr, repchan)
|
||||
if (IsInvisible(acptr) && !IsMember(sptr,repchan))
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef ENABLE_INVISOPER
|
||||
if (channelwho && IsHiding(acptr) && !IsNetAdmin(sptr))
|
||||
return;
|
||||
|
||||
#endif
|
||||
if (acptr->user->away)
|
||||
status[i++] = 'G';
|
||||
else
|
||||
@@ -2484,11 +2482,19 @@ static void do_who(sptr, acptr, repchan)
|
||||
* simply because they are an oper. (adds ! to the who "flags")
|
||||
*/
|
||||
if (IsAnOper(sptr) && sptr != acptr)
|
||||
#ifdef ENABLE_INVISOPER
|
||||
if (channelwho && IsHiding(acptr) && IsNetAdmin(sptr) ||
|
||||
IsInvisible(acptr) ||
|
||||
IsInvisible(acptr) && !IsMember(sptr,repchan) ||
|
||||
IsAuditorium(repchan) && !is_chan_op(acptr,repchan) ||
|
||||
!ShowChannel(sptr,repchan))
|
||||
status[i++] = '!';
|
||||
#else
|
||||
if (channelwho && IsNetAdmin(sptr) ||
|
||||
IsInvisible(acptr) && !IsMember(sptr,repchan) ||
|
||||
IsAuditorium(repchan) && !is_chan_op(acptr,repchan) ||
|
||||
!ShowChannel(sptr,repchan))
|
||||
status[i++] = '!';
|
||||
#endif
|
||||
|
||||
/* Channel operator */
|
||||
if (repchan && is_chan_op(acptr, repchan))
|
||||
@@ -2509,8 +2515,10 @@ static void do_who(sptr, acptr, repchan)
|
||||
":%s NOTICE %s :*** %s either did a /who or a specific /who on you",
|
||||
me.name, acptr->name, sptr->name);
|
||||
}
|
||||
#ifdef ENABLE_INVISOPER
|
||||
if (IsHiding(acptr) && sptr != acptr && !IsNetAdmin(sptr))
|
||||
repchan = NULL;
|
||||
#endif
|
||||
|
||||
sendto_one(sptr, rpl_str(RPL_WHOREPLY), me.name, sptr->name,
|
||||
(repchan) ? (repchan->chname) : "*", acptr->user->username,
|
||||
@@ -2525,7 +2533,7 @@ static void do_who(sptr, acptr, repchan)
|
||||
** m_who
|
||||
** parv[0] = sender prefix
|
||||
** parv[1] = nickname mask list
|
||||
** parv[2] = additional selection flag, only 'o' for now.
|
||||
** parv[2] = additional selection flag, 'o' and 'h' for now.
|
||||
*/
|
||||
int m_who(cptr, sptr, parc, parv)
|
||||
aClient *cptr, *sptr;
|
||||
@@ -3894,12 +3902,6 @@ int m_oper(cptr, sptr, parc, parv)
|
||||
iNAH_host(sptr, locop_host);
|
||||
sptr->umodes &= ~UMODE_OPER;
|
||||
}
|
||||
/* else
|
||||
if ((aconf->port & OFLAG_AGENT))
|
||||
{
|
||||
sendto_ops("%s (%s@%s) is now an IRCd Agent (S)", parv[0],
|
||||
sptr->user->username, IsHidden(sptr) ? sptr->user->virthost : sptr->user->realhost);
|
||||
}*/
|
||||
else if (aconf->port & OFLAG_NETADMIN)
|
||||
{
|
||||
sendto_ops
|
||||
@@ -3921,22 +3923,22 @@ int m_oper(cptr, sptr, parc, parv)
|
||||
}
|
||||
else if (aconf->port & OFLAG_COADMIN)
|
||||
{
|
||||
sendto_ops("%s (%s@%s) is now a co administrator (C)",
|
||||
sendto_ops("%s (%s@%s) is now a co administrator (C) on %s",
|
||||
parv[0], sptr->user->username,
|
||||
IsHidden(sptr) ? sptr->user->virthost : sptr->user->
|
||||
realhost);
|
||||
realhost,me.name);
|
||||
if (MyClient(sptr))
|
||||
{
|
||||
/* sendto_serv_butone(&me, ":%s GLOBOPS :%s (%s@%s) is now a co administrator (C)", me.name, parv[0],
|
||||
sptr->user->username, IsHidden(sptr) ? sptr->user->virthost : sptr->user->realhost);
|
||||
*/
|
||||
sendto_serv_butone(&me, ":%s GLOBOPS :%s (%s@%s) is now a co administrator (C) on %s",
|
||||
me.name, parv[0], sptr->user->username,
|
||||
IsHidden(sptr) ? sptr->user->virthost : sptr->user->realhost, me.name);
|
||||
}
|
||||
if (iNAH == 1 && (sptr->oflag & OFLAG_HIDE))
|
||||
iNAH_host(sptr, coadmin_host);
|
||||
}
|
||||
else if (aconf->port & OFLAG_SADMIN)
|
||||
{
|
||||
sendto_ops("%s (%s@%s) is now a services admin (a)",
|
||||
sendto_ops("%s (%s@%s) is now a services administrator (a)",
|
||||
parv[0], sptr->user->username,
|
||||
IsHidden(sptr) ? sptr->user->virthost : sptr->user->
|
||||
realhost);
|
||||
@@ -3953,19 +3955,33 @@ int m_oper(cptr, sptr, parc, parv)
|
||||
}
|
||||
else if (aconf->port & OFLAG_ADMIN)
|
||||
{
|
||||
sendto_ops("%s (%s@%s) is now a server admin (A)",
|
||||
sendto_ops("%s (%s@%s) is now a server administrator (A) on %s",
|
||||
parv[0], sptr->user->username,
|
||||
IsHidden(sptr) ? sptr->user->virthost : sptr->user->
|
||||
realhost);
|
||||
realhost,me.name);
|
||||
if (MyClient(sptr))
|
||||
{
|
||||
sendto_serv_butone(&me,
|
||||
":%s GLOBOPS :%s (%s@%s) is now a server administrator (A) on %s",
|
||||
me.name, parv[0], sptr->user->username,
|
||||
IsHidden(sptr) ? sptr->user->virthost : sptr->user->realhost,me.name);
|
||||
}
|
||||
if (iNAH == 1 && (sptr->oflag & OFLAG_HIDE))
|
||||
iNAH_host(sptr, admin_host);
|
||||
}
|
||||
else
|
||||
{
|
||||
sendto_ops("%s (%s@%s) is now an operator (O)", parv[0],
|
||||
sendto_ops("%s (%s@%s) is now an operator (O) on %s", parv[0],
|
||||
sptr->user->username,
|
||||
IsHidden(sptr) ? sptr->user->virthost : sptr->user->
|
||||
realhost);
|
||||
realhost,me.name);
|
||||
if (MyClient(sptr))
|
||||
{
|
||||
sendto_serv_butone(&me,
|
||||
":%s GLOBOPS :%s (%s@%s) is now an operator (O) on %s",
|
||||
me.name, parv[0], sptr->user->username,
|
||||
IsHidden(sptr) ? sptr->user->virthost : sptr->user->realhost,me.name);
|
||||
}
|
||||
if (iNAH == 1 && (sptr->oflag & OFLAG_HIDE))
|
||||
iNAH_host(sptr, oper_host);
|
||||
}
|
||||
@@ -4329,11 +4345,13 @@ int m_umode(cptr, sptr, parc, parv)
|
||||
&& MyClient(sptr))
|
||||
break;
|
||||
goto def;
|
||||
#ifdef ENABLE_INVISOPER
|
||||
case 'I':
|
||||
if (NO_OPER_HIDING == 1 && what == MODE_ADD
|
||||
&& MyClient(sptr))
|
||||
break;
|
||||
goto def;
|
||||
#endif
|
||||
case 'B':
|
||||
if (what == MODE_ADD && MyClient(sptr))
|
||||
(void)m_botmotd(sptr, sptr, 1, parv);
|
||||
@@ -4422,9 +4440,11 @@ int m_umode(cptr, sptr, parc, parv)
|
||||
ClearNetAdmin(sptr);
|
||||
if (IsCoAdmin(sptr) && !OPIsCoAdmin(sptr))
|
||||
ClearCoAdmin(sptr);
|
||||
#ifdef ENABLE_INVISOPER
|
||||
if ((sptr->umodes & UMODE_HIDING)
|
||||
&& !(sptr->oflag & OFLAG_INVISIBLE))
|
||||
sptr->umodes &= ~UMODE_HIDING;
|
||||
#endif
|
||||
if (MyClient(sptr) && (sptr->umodes & UMODE_SECURE)
|
||||
&& !IsSecure(sptr))
|
||||
sptr->umodes &= ~UMODE_SECURE;
|
||||
@@ -4468,17 +4488,17 @@ int m_umode(cptr, sptr, parc, parv)
|
||||
/* Agents
|
||||
if ((sptr->umodes & (UMODE_AGENT)) && !(sptr->oflag & OFLAG_AGENT))
|
||||
sptr->umodes &= ~UMODE_AGENT; */
|
||||
#ifdef ENABLE_INVISOPER
|
||||
if ((sptr->umodes & UMODE_HIDING) && !IsAnOper(sptr))
|
||||
sptr->umodes &= ~UMODE_HIDING;
|
||||
|
||||
|
||||
if ((sptr->umodes & UMODE_HIDING)
|
||||
&& !(sptr->oflag & OFLAG_INVISIBLE))
|
||||
sptr->umodes &= ~UMODE_HIDING;
|
||||
#endif
|
||||
if (MyClient(sptr) && (sptr->umodes & UMODE_SECURE)
|
||||
&& !IsSecure(sptr))
|
||||
sptr->umodes &= ~UMODE_SECURE;
|
||||
|
||||
#ifdef ENABLE_INVISOPER
|
||||
if ((sptr->umodes & (UMODE_HIDING))
|
||||
&& !(setflags & UMODE_HIDING))
|
||||
{
|
||||
@@ -4490,9 +4510,11 @@ int m_umode(cptr, sptr, parc, parv)
|
||||
me.name, sptr->name);
|
||||
sendto_channels_inviso_part(sptr);
|
||||
}
|
||||
#endif
|
||||
if ((sptr->umodes & UMODE_JUNK) && !IsOper(sptr))
|
||||
sptr->umodes &= ~UMODE_JUNK;
|
||||
|
||||
#ifdef ENABLE_INVISOPER
|
||||
if (!(sptr->umodes & (UMODE_HIDING)))
|
||||
{
|
||||
if (setflags & UMODE_HIDING)
|
||||
@@ -4507,6 +4529,7 @@ int m_umode(cptr, sptr, parc, parv)
|
||||
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
/*
|
||||
* If I understand what this code is doing correctly...
|
||||
|
||||
@@ -299,8 +299,12 @@ int w_whois(aClient *cptr, aClient *sptr, int parc, char *parv[])
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef ENABLE_INVISOPER
|
||||
if (buf[0] != '\0' && !IsULine(acptr) && (!IsHiding(acptr) ||
|
||||
IsNetAdmin(sptr) || sptr == acptr))
|
||||
#else
|
||||
if (buf[0] != '\0' && !IsULine(acptr))
|
||||
#endif
|
||||
sendto_one(sptr,
|
||||
":IRC PRIVMSG %s :%s is on %s",
|
||||
sptr->name, name, buf);
|
||||
|
||||
Reference in New Issue
Block a user