From 41eb4cea2f8596d542b6da9f712dc099cdb9a02e Mon Sep 17 00:00:00 2001 From: stskeeps Date: Sun, 10 Dec 2000 21:25:20 +0000 Subject: [PATCH] stable merge with beta (unreal3.1.1-darkshades-stable) --- .CHANGES.NEW | 13 +- .RELEASE.NOTES | 26 +- .SICI | 20 + .UPDATE | 21 +- Changes | 797 +++------- Changes.old | 555 +++++++ Config | 108 +- Donation | 3 + INSTALL | 2 +- Makefile.dist | 24 +- READMENOW.Win32.txt | 23 + TODO | 19 +- Unreal.nfo | 9 +- devel/new.plines | 2 + doc/example.conf | 1003 +++++++------ doc/faq | 2 +- doc/features.txt | 109 ++ doc/unrealircd.doc | 1419 +++++++++++++----- extras/burst.c | 308 ++++ include/channel.h | 2 +- include/common.h | 32 +- include/config.h | 58 +- include/h.h | 28 +- include/ircsprintf.h | 6 - include/msg.h | 291 ++-- include/numeric.h | 1 + include/proto.h | 99 ++ include/sock.h | 4 +- include/ssl.h | 10 + include/struct.h | 122 +- include/sys.h | 10 +- include/version.h | 8 +- ircdreg | 2 +- makefile.win32 | 72 +- networks/auspice.network | 28 + networks/axenet.network | 61 +- networks/darkfyre.network | 39 + networks/darkwar.network | 29 + networks/data-storm.network | 31 + networks/german-global-irc.network | 71 + networks/irc-chat.network | 28 + networks/israelnet.network | 30 + networks/lamenet.network | 29 + networks/makenet | 6 + networks/music-chatnet.network | 29 + networks/networks.ndx | 21 +- networks/qkaka.network | 73 + networks/raptanet.network | 35 + networks/sheytoybox.network | 42 + networks/sparkhaven.network | 28 + networks/spin.network | 29 + networks/subtrexnet.network | 29 + networks/tierrared.network | 29 + networks/tutkunet.network | 33 + networks/unrealircd.conf | 11 +- src/Makefile | 15 +- src/agent.c | 4 +- src/aln.c | 118 +- src/badwords.c | 8 +- src/bsd.c | 8 + src/channel.c | 720 +++++---- src/chkconf.c | 3 +- src/class.c | 3 +- src/cloak.c | 6 +- src/dynconf.c | 14 +- src/hash.c | 24 +- src/help.c | 2201 ++++++++++++++++++++-------- src/ircd.c | 158 +- src/ircsprintf.c | 25 + src/list.c | 52 +- src/lusers.c | 4 +- src/newdns.c | 424 ++++++ src/packet.c | 109 -- src/parse.c | 40 +- src/res.c | 22 +- src/res_comp.c | 4 +- src/s_auth.c | 25 +- src/s_bsd.c | 365 +++-- src/s_conf.c | 141 +- src/s_debug.c | 11 +- src/s_err.c | 24 +- src/s_extra.c | 18 +- src/s_kline.c | 216 ++- src/s_misc.c | 30 +- src/s_numeric.c | 7 +- src/s_serv.c | 516 +++---- src/s_socks.c | 36 +- src/s_unreal.c | 184 +-- src/s_user.c | 437 ++++-- src/scache.c | 1 + src/send.c | 268 ++-- src/ssl.c | 229 +++ src/ssl.cnf | 33 + src/ssl.rnd | Bin 0 -> 1024 bytes src/support.c | 61 +- src/version.c.SH | 31 +- src/webtv.c | 387 +++++ src/whowas.c | 27 +- src/win32.c | 907 ------------ src/win32.rc | 228 --- src/win32/Win32GUI.c | 6 +- src/win32/compilerhelp.c | 55 + src/win32/debug/StackTrace.dll | Bin 0 -> 159838 bytes src/win32/debug/StackTrace.exp | Bin 0 -> 725 bytes src/win32/debug/StackTrace.lib | Bin 0 -> 2226 bytes src/win32/gnu_regex.dll | Bin 0 -> 56320 bytes src/win32/gnu_regex.lib | Bin 0 -> 5132 bytes src/win32/leavealone.h | 9 + update | 18 +- 109 files changed, 8866 insertions(+), 5285 deletions(-) create mode 100644 .SICI create mode 100644 READMENOW.Win32.txt create mode 100644 doc/features.txt create mode 100644 extras/burst.c create mode 100644 include/proto.h create mode 100644 include/ssl.h create mode 100644 networks/auspice.network create mode 100644 networks/darkfyre.network create mode 100644 networks/darkwar.network create mode 100644 networks/data-storm.network create mode 100644 networks/german-global-irc.network create mode 100644 networks/irc-chat.network create mode 100644 networks/israelnet.network create mode 100644 networks/lamenet.network create mode 100644 networks/music-chatnet.network create mode 100644 networks/qkaka.network create mode 100644 networks/raptanet.network create mode 100644 networks/sheytoybox.network create mode 100644 networks/sparkhaven.network create mode 100644 networks/spin.network create mode 100644 networks/subtrexnet.network create mode 100644 networks/tierrared.network create mode 100644 networks/tutkunet.network create mode 100644 src/newdns.c create mode 100644 src/ssl.c create mode 100644 src/ssl.cnf create mode 100644 src/ssl.rnd create mode 100644 src/webtv.c delete mode 100644 src/win32.c delete mode 100644 src/win32.rc create mode 100644 src/win32/compilerhelp.c create mode 100644 src/win32/debug/StackTrace.dll create mode 100644 src/win32/debug/StackTrace.exp create mode 100644 src/win32/debug/StackTrace.lib create mode 100644 src/win32/gnu_regex.dll create mode 100644 src/win32/gnu_regex.lib create mode 100644 src/win32/leavealone.h diff --git a/.CHANGES.NEW b/.CHANGES.NEW index 86b1ba72f..e28fd7d39 100644 --- a/.CHANGES.NEW +++ b/.CHANGES.NEW @@ -1,5 +1,3 @@ - - Welcome to the UnrealIRCd configuration program. This program will help you to compile your IRC server, and ask you questions regarding the setup of it, during the process. @@ -9,7 +7,7 @@ unreal-support@lists.sourceforge.net or ask at IRC: /server irc.ircsystems.net, /join #unrealircd For any sake, read Unreal.nfo and read doc/faq before asking questions - + NOTE: If the code is changed in any way, or the version string is changed, we do _NOT_ support the product, except if you got explicit permission from one of the UnrealIRCd coders. If it fails and you messed with it, @@ -17,13 +15,4 @@ NOTE: If the code is changed in any way, or the version string is changed, builds (if it doesn't say "geniune" in the display) are _NOT_ supported. -It has been a year since I made the first UnrealIRCd release, Unreal2.1. -A lot of things have happened since. I started Unreal as a hobby project, -but it has turned into a community, where people ask for help, and give help -too - people like the program (as the first I've made actually :>). So I -am happy you have followed all this way - Thanks to Shmad, Nutcais, -Sporty_McFly, DjBoxy, zero9000, and all the people following the product -for the time it has existed. So - enjoy this release - we have tried to do -our best, and if its not - we'll make the next our best. So - Seeya in 2001 - -Stskeeps (Head coder of UnrealIRCd) diff --git a/.RELEASE.NOTES b/.RELEASE.NOTES index 5f4669796..632929da8 100644 --- a/.RELEASE.NOTES +++ b/.RELEASE.NOTES @@ -1,11 +1,10 @@ -Unreal3.1-Silverheart Release Notes +Unreal3.1.1-Darkshades Release Notes =================================== -* It is most wise to have a Unreal3.1 (FINAL) -only network whenever possible. Do not - link this to 2.1.7 or alike (might have unexpected problems). Unreal3.0 - linking might at times cause channel desynchs because of 3.0 broken SJOIN - code. +* It is REALLY RECOMMENDED that you run only Unreal3.1.1<->Unreal3.1.1, + as Unreal3.1+sf got some funny SJOIN bugs that causes the network to + desynch * It is ADVISABLE that you allocate numerics to each server on your network. You simply in the M: line, just after the port, add :numeric, like: @@ -15,15 +14,10 @@ Unreal3.1-Silverheart Release Notes Where 20 is the numeric. Numerics are 1-255, 0 means no numeric (bad), and no server must have same numeric -* We have introduced encrypted irc connections, and we will soon have a - client out for it (this is not SSL). Stay tuned in #UnrealIRCd for more - information +* We have introduced encrypted irc connections, using SSL + You need to set up a SSL port, P:IP:s:*:port + To connect securely to another server, add :S at the end of the C:line + and make sure it autoconnect/connects to a SSL port -* NOTE, in #UnrealIRCD we don't help with Services etc. - -* Documentation will show up on the website sooner or later, - http://unreal.tspre.org - -* Read Unreal.nfo for any sake. To update your IRCd, please run the ./update - script. This requires "wget" and "cvs" on the box to function - \ No newline at end of file +* Read Unreal.nfo for any sake AND THE DOCS IN doc/. To update/upgrade your IRCd, + please run the ./update script. This requires "wget" and "cvs" on the box to function diff --git a/.SICI b/.SICI new file mode 100644 index 000000000..1605509fb --- /dev/null +++ b/.SICI @@ -0,0 +1,20 @@ +|-------------------------------------------------------------------------| +| Congratulations on your new SSL self-signed certificate for your IRCd. | +| However, wouldn't it be better that you get your certifcate signed by | +| some kind of Certification Authority (CA), so your users can check that | +| they are really connected to the real server, so they feel secure? | +| | +| A initiative have been started, to help this problem, as more and more | +| SSL-enabled IRC servers will be started in the future, and people will | +| have trouble authenticating that they are really at the right server. | +| This initiative is called SICI (Secure IRC Certification Initiative. We | +| sign your certificates for free, using the simple way of authenticating | +| you by going to your IRC server and testing if it's really you. | +| | +| You can send in your "server.req.pem" file to us at our email | +| certs@sici.ircsystems.net, with contact info on you (IRC network, nick, | +| status). We will then contact you, and check if you have provided true | +| information. If you need more information about SICI, visit our website | +| http://sici.ircsystems.net, where you can download our root certificate,| +| and read even more about this project. | Press enter to continue | +--------------------------------------------------------------------------- diff --git a/.UPDATE b/.UPDATE index b44da14a7..5c65cfd54 100644 --- a/.UPDATE +++ b/.UPDATE @@ -1,6 +1,17 @@ -* -* -* UnrealIRCd Upgrade Script -* -*** Downloading upgrade script from unreal.tspre.org + _ _ _ ___________ _____ _ +| | | | | |_ _| ___ \/ __ \ | | +| | | |_ __ _ __ ___ __ _| | | | | |_/ /| / \/ __| | +| | | | '_ \| '__/ _ \/ _` | | | | | / | | / _` | +| |_| | | | | | | __/ (_| | |_| |_| |\ \ | \__/\ (_| | + \___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_| + + Update Script v2.0 + +What download program do you want to use? +----------------------------------------- + +Type "wget" for wget +Type "lynx" for lynx + +> diff --git a/Changes b/Changes index f1fc0e8c0..eb7a7c9f7 100644 --- a/Changes +++ b/Changes @@ -1,573 +1,252 @@ -/* +/* * UnrealIRCd Changes File - (C) Carsten Munk 1999-2000 & * The UnrealIRCd Team - * + * * $Id$ - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 1, or (at your option) - * any later version. - * + * any later version. + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ + * + */ + -*** Unreal3.1 *** (final) -- Moved REMOVE_ADVERTISE a little -- Fixed bug where you could /mode #test +L #test (link a channel to - itself) -- Fixed a bug where a +L channel didn't have to be valid ex /mode #test - +L blah would work, dangerous if 0 is used -- Fixed /map showing U:lines even if HIDE_ULINES was set oops :) -- Fixed a bug where opers couldn't walk through +l -- Fixed a bug where /mode #test +f *N:N was recognized the same as +f N:N - (if *2:3 was set then /mode #chan +f 2:3 it wouldn't set, thought it was the same) -- Removed src/cio_init.c src/cio_main.c src/win32.c src/win32.rc as we don't - use that anymore -- Added ircsprintf() (ircsprintf.c and ircsprintf.h) -- Converted to use ircsprintf -- Now using sprintf_irc from ircu, as %li would screw up the hybrid variant -- Some fdlist updates from bahamut -- Header change -- Some more Header change -- Added agent.c for IRCd Agents (remote control etc) -- Fixed up some make misalignments -- Fixed +I /names -- Removed TESTNET defines -- Added poll() engine from bahamut (hard!) -- Made /vhost send failed login's to +e -- Made /stats V/R/F use raw rather than NOTICE -- Fixed some poll() engine problems -- Some more problems with poll() -- Removed the \2's from the is a Coder msg, whywere they there, no one - knows (codemastr) Because i was the only one using it =P (Stskeeps) -- Fixed /names problem.. -- Made /mode use get_mode_str() to list the modes -- Made /lusers info be pre-calculated :) Saves hell of a lot CPU time -- Made /stats z/Z oper only -- Fixed SJOIN bug only totally fixed when all servers upgraded -- Moving old 3.0 stuff to Changes.old -- Re-added README.ALPHA -- Fixed some more SJOIN bugs -- Fixed NICKv2 bugs with non NICKv2 -- Fixed up /info, there will be a better layout for this -- Fixed up some poll() engine bugs (i hope) -- Start of telnet proxy scan code -- Took telnet proxy scan code out again =/ It really fux0red up -- Added networks/treklink.network -- Added options to /HTM, ON/OFF TO (what load do we auto start at) NOISY/QUIET (toggle whether HTM should - announce when it starts) -- Fixed a little bug where /part didn't show the correct channel case -- Made unresolved host connections go faster, idea from PTLink IRCd v3.5.4 great job :) -- Removed support for & and + channels (i hope) and made m_message more - handy and support for /notice +#channel, %#channel etc etc -- Topic fix? -- Incorperated the bahamut m_list and send_list, it's faster and smaller :P -- When /HTM is active /list is disabled to non-opers -- OperMOTD is now loaded into memory (faster, saves memory, and CPU) -- Added /rehash -omotd to rehash the OperMOTD -- Added unrealircd.conf option for SETUID and SETGID if ircd started as root. And you can turn that off/on - by defining/undefining BIG_SECURITY_HOLE in config.h -- Fixed small bug in ircd.c and dynconf.c (not using #ifndef BIG_SECURITY_HOLE) -- Removed & and + channels for sure.. -- All MOTDs, RULES are read into memory (including T:lines) -- Added /rehash -bmotd (BotMOTD) /rehash -motd/-rules (MOTDs/RULES) -- Fixed memory leak in dynconf.c, allocated 2048 on each /rehash -dynconf -- Fixed _serious_ memory leak in cloak.c, abused 128 bytes every time - someone went +x -- Alphabeticalized making.. -- flush_connections more better -- Fixed calls to check_registered*, more CPU spare:) -- Fixed a bug in /tsctl svstime -- Fixed a bug in the cached MOTDs -- Added support for remote /htm -- Even more tokensation -- Removed IRCII_KLUDGE -- Fixed /lusers wrong reply -- Removed V28PlusOnly define -- Fixed a bug in channel_modes() -- More and more and more tokenzation >:) -- Fixed a bug in m_user -- Removed have_ops() and is_deopped(), they weren't used -- Reorganized can_send() to make it faster -- More tokenzation >:) -- Fixed ircsprintf() %lu error when %lu == 0 -- Added devel/ directory, put ideas/specifications in here -- Added devel/new.plines to describe new upcoming P:lines -- Added NO_IDENT_CHECKING in config.h -- Fixed bugs in get_version() and also made it a bit faster -- Fixed RPL_MYINFO problem with UnrealIRCd/32 version and ircII - misunderstanding it, prob other clients too -- Updated msg.h hashtable to get most used commands more close -- Removed some unused defines in msg.h -- Removed dusers (not in use) -- m_user stuff -- Made use of : 's in between ircd.conf field working, using this format: - A:"Test test:Moo":Moo:moo -- Fixed some /lusers miscalculations -- Added INET6 patch, now for making it work :P -- More INET6 patching (not working atm) -- INET6 compiles now, works? :P -- Fixed some WebTV stuff -- Made the m_message routine not do a user hash lookup if it starts with # -- Removed some fields in structures like aClient etc that was unused -- Removed Client->iown and the OWNLOGON code -- Removed Channel->blist -- Removed heaps of unused variables in functions -- Fixed THE G:line bug, missing parameter -- Hopefully fixed some calculation bugs -- +F bugfix -- In TKL a gline shows reason in quit message now -- Fixed the SVSMOTD OPERMOTD and BOTMOTD bug, suggest parantheses problem -- In K:Line it shows reason in quit message now, not sure about AKILL -- Experimental NOTE in register_user added -- Implemented hybrid scache.c, created by orabidoo and Dianora -- Fixed /connect scache problem, and actually fixed the OPERMOTD bug -- The hopefully last calculation bug.. -- Made bans and exceptions actually sync *ducks*, done in old fashion MODE - manner, better than making BS (bansync) or incorporating it in SJOIN -- Made /opermotd oper-only, bug reported by Bagge@ROXnet -- Made TOPICs be dynamically allocated - saves heaps memory -- Added hybrids/+cs'es /whowas system. Improved so it doesn't use static - character arrays, and uses dynamically allocated strings instead -- Added UMODE2 PROTOCTL and command, when a usermode change it uses :nick - UMODE2 +-umodes. token = '|' -- Made CONNECTFAST default, will ensure faster connecting -- Updated /helpop to list more commands and new modes -- the 1-message-per-2-sec not applied to opers -- Topic fix with dynamic allocation -- 1-message-per-2-sec now 1-message-per-1.5-sec -- Removed TS fix notice -- Removed User %s tries to become server notice -- Made MAXCHANNELSPERUSER an unrealircd.conf option -- Changed unrealircd.conf version to 1.2 -- Credit changes.. -- Uses dgets() from hybrid now, should be a minor CPU fix -- Moved WebTV support, and +I disabling to an unrealircd.conf option -- Updated doc/conf.doc, removed references to DALnet, and fixed typos -- Moved doc/Elite.Changes to doc/History/Elite.Changes, away away away with - that one -- Tokenized SQLINE -- Recoded dynconf, validates data too now -- Fixed a /list bug that crashed the server -- Fixed a minor bug in the new dynconf -- Fixed a bug in vhost.conf and dccdeny.conf where if the line was not valid it would crash, now it just - ignores that line -- Added comment support to vhost.conf, dccdeny.conf, and chrestrict.conf (makes loading faster) -- Fixed one of those "code, what the fuck were you smoking" bugs in m_svsmode etc - (what = MODE_DEL - eh?) -- Added AUTO_JOIN_CHANS to unrealircd.conf to force a user to join 1 or - more channels on connect, read networks/unrealircd.conf for more info -- Added networks/axenet.network -- Possible change in the -1 operator bug -- /info changes -- Unreal3.1-beta1 release -- Added a bunch of networks -- Updated doc/conf.doc -- Updated networks/networks.ndx cause someone *cough* sts *cough* forgot -- Updated m_svso to -H the user -- Added Solaris2.5 support and cleaned up Solaris2.x support -- A little /list fix -- Changed the unrealircd.conf version to 1.3 -- Fixed a bug in the AUTO_JOIN_CHANS -- Added OPER_AUTO_JOIN_CHANS to unrealircd.conf, same as AUTO_JOIN_CHANS - but is called on /oper -- Readded /ns, /cs, etc but this time they point to /nickserv, /chanserv, - etc -- Removed IRCd Agents and made it so all opers can join unlimited channels -- Updated src/chkconf.c to recognize new lines -- Added "/mode #chan qa" support to send a list of +q users / +a users in a chan -- Fixed "/mode #chan qa" ... see channel.c m_join for the problem ... sts you owe me a tenner =P .. -- Removed Reg1, Reg2 etc etc and register. Modern compilers optimize better - that way -- Sidenote: /msg nick@ bug can easily be caused in m_message -- Unreal3.1-beta1(build2) -- Disabled ID_* stuff but is still there, saves memory -- Made user->virthost a dynamic string now -- Fixed a virthost bug again, and starting to wreck in meow's badword patch, - gonna be a swearword filter and new version of REMOVE_ADVERTISING -- Added meow's badword patch -- Moved the badword patch chmode to +G (G Rated Channel) cause thats what some other ircd's use so lets try - and keep cross compatibility :P -- Added networks/interturk.network -- Fixed a bug in /names thanks to lucas for reporting it and fixing it :) -- Changed the badword umode to +G also -- Removed some unused variables from dynconf.h -- Cleaned up the dynconf and network file code to use less memory -- Fixed the kill bug in NICKv2, caused by codemastr(TM) code - (was calling m_join before sending NICK info to other servers) - - SO NO IT WAS NOT MY FAULT *slap* (Stskeeps) - -- Did an attempt on fixing the /msg nick@ bug -- /stats s in DEVELOP mode will show cached scache hosts -- Added src/aln.c, for the new ALN system, read doc/aln.doc -- Minor ALN fix -- Introduced ALN system, look at send.c::sendto_serv_butone_nickcmd, a - little better, we can scrape some functions now -- Some more ALN stuff, the server now understands | prefixes, - find_client too -- Added the "IRC Operators Message Of The Day" to /opermotd -- Made Y:1 class in makeconf max 250 (we might get some complaints here, - but people can change to their limit, but we have to make it this low - because else the program rj had can flood/crash the server -- Fixed a ALN problem with |nick persons getting killed off -- Removed an OLD EliteIRCD reference in ./Config, thanks to Linus -- Moved the ALN prefix to @ instead of |, as | would conflict with - clients -- Fixed ALN problem with it masskilling everyone :P -- ** RELEASE OF UNREAL3.1-BETA2 ** -- Small Linux-ALPHA fix -- A small vsendto_prefix bugfix(?) -- Added /stats e to list e:lines -- Fixed a small /list problem -- Added #define USE_LOCALE, uses locale stuff in *nix versions - to make better toupper() tolower(). might help some chinese nick - things too -- Fixed a few minor NOSPOOF things -- Changed ircsprintf() to work with %lu with 0-5 -- Added unreal-test.network, for the upcoming Unreal TESTnet (for beta - testers and developers only) -- Using MyFree/MyMalloc now instead of MyRealloc.. lets hope it fixes - something -- Fixed the virthost (possible), need extensive testing -- Possible fix of some server_estab problems -- Added networks/cc2.network, networks/kissland.network, and networks/digital-irc.network -- Changed unrealircd.conf version to 1.5 -- Added HOST_TIMEOUT and HOST_RETRIES to unrealircd.conf to customize host resolving times -- Added Freelinks garbage collector (by Stskeeps :)), saves a lot of memory. - Check include/config.h on configuring it (default values should do) -- Fixed a /chghost and /chgident buffer overflow problem reported - by Gravitron. -- Added Solaris2.6 and 2.7 support -- Added /dccdeny to add a temporary dccdeny, erased on /rehash -dccdeny -- Added /undccdeny, if the EXACT file you type is found it is removed, else it uses wildcards to search -- Made it so you can't add duplicate dccdenys -- IRCstats.operators count fix. It MUST work now. -- Fixed a bug in dccdeny -- Added a logo to the IRCd startup and made it work a little bit better -- Made version.c update when .c.SH is changed -- Made sendto_serv_butone_token work with ALN prefixes too -- Fixed an SQLINE bug -- SVSFLINEs now sync when a server links -- SVSFLINEs are now tokenized -- Fixed the /nick othernick thing failing (ALN fault, lets hope it doesnt - break other stuff) -- Implemented DOUGH_HASH from hybrid IRCd -- Ran Unreal thru another memory leak check - - Fixed a whowas.c memory leak -- Added /rehash -garbage which will clean up freelinks -- NOTE on PTlinks so called make yourself oper bug.. cannot see how it - can trigger at all. -- Fixed up some E:line code -- Added n:lines banning based on real names (E:lines override n:lines) -- Fixed a minor bug in m_message -- Fixed up and ALNized SERVER commands like @E8 SERVER name - for instance.. sts tends to severely drool over this -- Hopefully fixed the /msg unknownnick missing ERR_NOSUCHNICK bug -- Fixed the cannot change to lowercase nick thing, and made - find_server() call hash_find_server instead of hash_find_client - *slaps* to stskeeps :P -- Fixed a bug caused by sts's '/msg unknownnick missing ERR_NOSUCHNICK bug' fix :) -- n:lines now checked on /setname (not checked for opers) -- Fixed a bug caused by a line of code I forgot to remove ;P -- Fixed the pesky \r bug caused by windows editors. Unreal ignores \r now - in ircd.conf -- For any sake, included the PTlink bugfix.., had some reports from - zurna.net of it -- Fixed an n:line bug(nice bug really? :P) -- Removed behavoir of co-admins able to set +q in #channels - (i think this was cos i was co-admin long time ago -sts) -- Made IRCops able to talk through +b, suggested by The_Cat -- Added /chgname nick :new realname and /svsname as an alias for it - (suggested by ^Tux^) -- Fixed Sts's favorite mistake -- Indented Unreal .c files -- PROTOCTL's can be said more than once now -- Fixed a /dccdeny - /undccdeny bug reported by auspice -- Fixed the negative oper count bug. Was caused by codemastr-coding(TM) -- Removed the old non-caching motd functions -- Some IRCstats.unknown fixes.. -- Took out compatibility for "Pyramid OS", is ancient and let them - fix their fscked up os -- If a user (unknown connection) floods 2K (2048 byte) the user is - disconnected and tkl z:lined for 600 secs (10 mins). Idea by GZ - from StarChat IRCd, code recoded by Stskeeps -- A ircd.conf Y:Line class is not added if it contains max clients - > (MAXCONNECTIONS - 15) -- Flood activates only at unknown connections and only at 4K now .. -- Fixed a bug in m_setname with n:lines -- Added n:line support to m_chgname -- n:lines are now checked after a rehash -- Did a bugfix on ALN and non-ALN servers -- Fixed a bug with /chgname with incorrect parameters to other servers -- "Fixed" the /stats u bug? -- Fixed +f not working (?) -- Made the Own-protection just reduce the class maxli instead of bitching.. -- Did a dirty hack on ALN problem with colliding hash (will deny linking in - wrong servers) -- Fixed /stats C not showing N:lines, reported by auspice -- Fixed codemastr (possible) fucked up the shell ircd script with - overwriting it ... -- Created /shun, /gline style. /shun +user@host time reason /shun -user@host - will extend it so you can /shun +nick later -- A little anti-0 fix in channel.c -- Made MODE_X, MODE_I etc show mode change to user -- Added channel mode +C to disallow channel CTCPs, /me (CTCP ACTION) is still allowed -- Fixed a bunch of +H bugs -- Fixed a bug where the channel was still shown in /who for +I users -- First part of ZIP_LINKS -- Fixed a typo in ./newnet -- Made /close reset IRCstats.unknown .. -- Made SVSO (ofcourse) IRCstats.operators--; -- Another IRCstats.unknown fix. Hope this works (hacked from undernet code) -- NETINFO protocol 0 is accepted as valid protocool (for services etc) -- /stats s is now avail only for opers in mainstream -- Took out "nick did a /userhost on you" -- Reduced hashtable size -- Took out sequent/dynix support -- Fixed a bug that prolly was fixed by Potvin, but was "not fixed correctly" -- Fixed a crash problem in register_user and most likely fixed the "strange - vhost" thing, (was a dumb bug, mising ircsprintf) -- Fixed the *** NickServ sets mode +creep SVS2MODE bug.. -- sendto_serv_butone_token_opt ().. -- Small testing stuff -- In ./Config it runs a quick test to see how many socket()s you can do -- Fixed the double +cF notice on local connections exiting, ugly hack -- Removed the last traces of unix sockets, flag 0x10 free now -- Made all ircops able to use +F (totally this time) -- /quote close do not show realhost of caller anymore -- /shun accepts nick in add mode now (adds *@host) -- Allowed /shunned users to use /pong now -- Fixed (by DrBin) Shun and Gline bug, where they replaced eachothers ->type - .... Learn that (= != ==) /me looks at Sts -- You can now specify 0 as the time for any TKL (ex Glines, Shun) for it to be perm -- Fixed a +L bug, (3.1 only) where any op could set +L -- Added channel mode +u, "Auditorium". Makes /names and /who #channel only - show @'s -- Added config.h setting to disable oper overrides, NO_OPEROVERRIDE -- Added Debug support to win32 makefile ... compile with syntax - NMAKE -f makefile.win32 DEBUG=1 - inorder to have debug support ... leave the DEBUG=1 out for normal builds -- Fixed ircsprintf.h ... we do want it to compile in debug mode yes ? -- Made /addline write to correct place when you use -f -- Made /zline not memory corrupt/crash, bad df bug -- Fixed a counting bug with unknown connections, very hopefully -- Fixed /htm giving wrong response when /htm to 1 -- Fixed /shun showing "1970" to permanently shunned users -- Fixed ./Config showing freebsd 3.0 in freebsd 4 -- Made so badwords.*.conf accepts # comments -- Added some default default badwords.message.conf and badwords.channel.conf -- Made so auditorium mode shows users to @'s -- Fixed a bug where /chgident would overflow into the *real* host if it where greater than USERLEN - because _someone_ aka sts told it to check against HOSTLEN rather than USERLEN... reported by wshs -- Fixed a bug in badwords not loading words correctly, and upped word limit - to 50 -- Small fix with ./Config showing incorrect path of stddef.h -- Made operkick be part of NO_OPEROVERRIDE -- Made admins unable to be shunned -- Made some socket errors which normally only showed up in DEBUGMODE, show - up in ircd.log as well -- Fixed a wrongly outputted message (in hash collision detect) -- Removed aHush, not in use -- Removed DISALLOW_MIXED_CASE and IGNORE_FIRST_CHAR, waste of space -- Made IDLE_FROM_MSG stock define -- Made IRCII_KLUDGE disappear :P -- Fixed SENDQ_ALWAYS to be mainstream define (as always) -- Removed s_gline, not in use, removed some modeless channel checks (not needed), removed an old zombie - code, and removed a line from aHush that was missed -- Added networks/seveneagle.network -- /msg irc now works whether or not WEBTV_SUPPORT is on -- Moved /mode #channel ^ and ListBits() to #ifdef DEVELOP -- Made it so servers behind a U:lined server (ex Juped Server) are U:lined too, helpful if HIDE_ULINES is - on (from bahamut) -- Added find_uline (from bahamut) for the new U:line code -- Modified /map to work with the new U:line code -- Redid s_err.c to be ALOT faster, based on bahamut's s_err.c (ALOT of - work) -- Fixed last R_LINE stuff (check_time_interval) -- Fixed /setname desynch -- Removed IsService(), and some wierd stuff -- Broken INETD support removed -- Removed some odd Clone stuff(?) -- Added Blowfish encryption ability (SetSecure()), will extend to more - better encryption -- Fixed a typo in /stats z -- Some more crypto stuff, will work on the new engine tommorow -- You can now encrypt the I:line passwords using mkpasswd (must have CRYPT_ILINE_PASSWORD defined) -- Editted Config to ask if you want encrypted I:line passwords -- Made it so you can encrypt restart/die passwords (same as I:line passwords) -- Editted Config to ask about encrypted restart/die passwords -- Made it so you can *view* a channel topic using /topic #channel without being a member -- Removed , support from /topic (not needed) -- Removed count_channels (not in use) -- Made a major is_banned speed up -- Redid K:line and n:line checking to be alot faster -- Fixed crypto stuff 100% :)) -- Added CRYPTOIRCd ('r') to version string -- Added some more crypto stuff - - /crypto -- Fixed a ->passwd bug caused by codemastr.. -- Added fclose() calls to the vhost, dccdeny, and chrestrict confs -- Some V:line stuff (added VL protoctl, and parsing of the SERVER command for the proto and flags) -- Fixed so that in +c it shows if a user is connected securely -- Backported the passwd stuff, not needed. -- Fixed a crash problem on /quit or /squit -- Fixed some aligning in the VL PROTOCTL -- Fixed some fucked up passwd stuff again .. -- Fixed a little Client Protoctl problem -- Fixed a crypto problem (forgot an #ifdef bad sts!) -- Fully added V:lines (doesn't really do much till the next version, since old versions don't support it) -- Added /stats v to list V:lines (/stats V still does vhost.conf) -- Added OpenBSD 2.x support, thanks to noriko for donating the development shell -- Added so stuff like Lost connection to, (report_error) only goes to realops -- Added some more descriptive error messages -- Added doc/crypto.doc describing the encrypted irc protocol -- Fixed a sendto_serv_butone_token problem -- Removed any trace of MD5, we use random() for nospoof now, this fixed a - license problem too -- Removed NOSPOOF_SEED01 and 02 -- Added VHP protoctl, (not in use in the synch). This makes virthost field - in NICKv2 use the real virthost even if its +t. (Thanks to SL7) -- Added support for the CR Java Chat auto join feature -- Fixed a msg.h location problem .. -- Added secure connections and openssl tracing to Config -- Added regex portablity and checks in Config -- Added a #define capability to config.h (DISABLE_USERMOD), - disables /sethost, /setident, /chgname, /chghost, /chgident -- Fixed a /rehash -garbage bug reported by Curt|s -- Added networks/makenet (generates a network configuration file) -- Added networks/staticedge.network -- Fixed some host revealing nick collision stuff -- Tokenized nick->nick PRIVMSG and NOTICE -- Made it so you can remove a protoctl by putting a - in front -- Fixed a bug in summon -- Added protection against webproxies -- Fixed TKL? -- Added SJ3, removed the old -- SJ3 bugfix, and another -- Hopefully a res.c fix. -- Fixed a +I bug -- Fixed a more SJ3 bug -- Updated networks/networks.ndx (bad sts!) -- Added networks/linuxsquare.network -- Added networks/chatstation.network -[recall] -- Fixed the pesky hostname bug -- Fixed a NO_OPEROVERDIE bug reported by Taz -- Fixed a +L bug -- Fixed a typo in Config -- SJ3 fixes. Let's hope this works (f*cken hell..) -- Fixed a V:line bug -- Added /infoserv (you can stop bugging us now skold ;P) -- Removed ALN, and the ALN system. -- Added base64 encoding instead, for ALN v2 (NS) -- Removed a SJ3 debug msg -- Removed SVSMODE +l support, and fixed servicestamp and +d support -- Changed to ircu/hybrid6/unreal mix of numeric 005 -- Fixed a SJ3 Fake Direction loopbug (kills on nick collisions) -- SJ3 fixes, loop fix -- Added NS, new generation ALN. -- Added llthangel's whoisfix.patch, Makes sure +hv users show up as - %#channel instead of +#channel. Bug report by ^Fanta. -- Changed find_server_quick to work with masks too .. -- Removed UPING UDP socket. Only resfd opens a udp fd now -- Small memory cleanup -- NS introduction in sendto_serv_butone_token -- Fixed Q:lined nick NickServ from on Nickname Server message -- Fixed a problem in synch using acptr->name as info line -- Introduced NS in SQLINE.. -- Fixed a problem in SVS2MODE not displaying mode changes, and well known - why -- Recoded SVSNOOP, but the IRCd doesn't get it at all?? -- added llthangel to credits -- Changed channel.c so when you kick someone as halfop it doesn't show as an - OperKick (unless you kick an op) (reported by ^Fanta, patch by llthangel) -(rc2) -- Fixed SVS2MODE bug with illegal modes -- Fixed /notice @%+ bug, where it didnt work at all -- Fixed a small chmode +u bug -- Added sendto_chanops_butone because of codemastr's laziness -- Fixed a few +u bugs -- Fixed a +I bug (yes another one) -- Changed channel.c so that when an opped non +q/+a Oper kicks a user who - is +q/+a it invokes an OperKick (patch by llthangel) -- Fixed the +lL (+Ll) bug, will first be fixed 100% when all is 3.1 -- Possible fixed the lopts bug -- Fixed a egcs problem in Config, the strtok bug -- Fixed the 'ulimit core size failed' bug (now checks whether it should - set the core size to unlimited in ./Config -- Changed s_user.c so that Opers will see +s channels in /whois - (patch by llthangel) -- +u now lists +a and +q people, and sends JOINs/PARTs to +a and +q people -- Fixed a /mode (umode) typo where it said no such channel rather than no such nick, - reported by llthangel -- Disabled anything with time in /list options temporary, causes bugs -- Fixed a little /chghost bug -- Fixed a SJ3 bug with ban syncing to SJ2 servers -- Fixed some cloak bugs(???) -- Made it so you can /knock without a reason, and a few /knock cleanups -- Made it so if the server name specified in the M:line does not contain a "." - the ircd logs it to ircd.log and dies -- Updated ./ircd to also say to look at ircd.log -- Fixed a SQLINE synch bug -- Added command line option -F to prevent the ircd to fork out -- Fixed the f*cken TKL bug -- Fixed a netsplit bug -- Changed some find_server(name, NULL) to find_server_quick to speed up - lookup of servers -- Made find_server_quick a prototype, and made some work more quicker as - well -- Removed the : in :nick NICK newnick :timestamp -- Added script ./update to help update, uses pull technology (wget, cvs) -- Added script ./Setup which makes the user forced through Unreal.nfo, FAQ, - Config, and all the things we want them to read/do to compile the IRCd -- Updated PREFIX Client Protoctl -- Added ^MrMike^'s command list, this one will be updated -- Removed ID_CVS, hopefully fixing some bastard stuff -- Fixed a last minute SJOIN bug -[ last fixes ] -- Re-added res_comp.c and win32.c and res_mkquery.c, which was damaged by - the ID_CVS remove -- Fixed a SHOWCONNECTINFO bug -- Fixed a MODE_STRIPWORDS bug -- Fixed a PART bug -- Fixed a STRIPBADWORDS bug -- Fixed a BotMOTD bug -- Added Dianora's /userhost -- Recoded /links using NS -- Recoded /map a bit using NS, and added usercounts to Server struct -- Some crazy time_t -> TS stuff, will save us some time in 2038 -- Fixed the "/mode #blah +Cplkf 1 moo 5:5" ( mode/#blah [+pClkf 1moo 5:5] - problem -- Hopefully fixed the +x problem -- Fixed a bug with mkpasswd on OpenBSD -- Added desynch +e warning, and updated ./update enough ... -- Updated update to work better, and that you can use lynx instead of wget -- Added #undef SHUN_NOTICES, to add notices for users who are shunned -- Fixed bug with U:Lines should be able to privmsg/notice and recieve - badwords :P, does not work in channels -- Removed the old GLINE system, TKL is now standard. -- Added INV_TRACK define, we want people testing this. -- Fixed the -1 usercount bug, found by codemastr, fixed by Stskeeps -- Fixed a +h bug reported by Dukemaster -- Added IRIX support (does it work?) -- Fixed crypter so it actually functions (Makefile now sets mode 700) and - it encrypts X and N lines too. -- Fixed empty mode sends in register_user, reported by Bagge -- Added some portability stuff -- Fixed some empty-line/missing parameter stuff in dccdeny, vhost, - and dynconf, chrestrict -- Made vhost strip too long vhosts -- Removed INV_TRACK -- Fixed a typo in /vhost -- Fixed some problems/typos/notlookingsogood (TM) bugs, in the tkl code -- Fixed ban merging/similar bug in SJOIN -- Made /kick for opers only be possible for netadmin/techadmin -- Fixed /server so it doesnt support SERVER name :info anymore.. +[Unreal3.1.1-Darkshades] +- Fixed /userhost showing "unknown" as username for a lot of people +- Fixed ./update error +- Fixed a NO_FDLIST define problem in send.c and channel.c +- Added define PROPER_COREDUMP, will not launch s_segv when done and make + proper coredumps +- Fixed the G:line bugs, i hope - moved tkl_sweep into a loopstruct +- Removed the ERR_NOTONCHANNEL message =P +- Made some memory cleanups on the command list (saved 268 bytes) +- More memory cleanups, changed aClient->refcnt to a signed char, + aClient->hopcount to unsigned char +- Changed aChannel->mode.msgs & .per to unsigned short, and changed + .kmode to unsigned char +- Changed aChannel->users to unsigned short (max 65536 users per channel) + and FloodOpt->nmsg to an unsigned short +- Removed SUMMON totally +- Fixed another SJOIN problem, but not the exact one i was looking for +- Added IRCd bot (raw commands) and the IRC bot, webtv.c + - Added WHOIS command (working) to IRCbot- +- Fixed a fun doublechar token problem (the AA unknown command) +- Removed _alot_ of unused variables +- Fixed *some* -Wall warnings (still alot left to fix) +- Fixed some more -Wall warnings +- ./update now checks when you specify wget if it exists, if not it tries lynx +- Cached MOTDs are now dynamically allocated (saves alot of memory) +- Made aClient->passwd dynamically allocated (saves 32bytes per user/server) +- Fixed a NOTICE crash bug, reported by EJ +- Removed a excessive va_end in send.c +- Fixed a bug when running the ircd with -h +- Readded /summon to return ERR_SUMMONDISABLED (required by RFC1459) +- Made /users return ERR_USERSDISABLED (required by RFC1459) +- Removed all utmp calls +- Fixed Something ... cant remember what ... oh yes, fixed if (sptr->passwd[0]) to if (sptr->passwd) + it stopped the server crashing ! +- Made Code revisions so that we can compile on Win32, and fixed some of sts's late nite + coding sessions(dbin) +- Fixed some REAL dumb find_server_quick bugs +- Fixed a wierd NOTICE bug +- Modified and fixed the NOTICE bug totally, with some waste of the nospoof + system +- Fixed a bug where +K could be set when +i was not (reported by rapta) +- Made it so if you set -i on a channel that is +K it sets -iK +- Fixed whowas so it no longer reports away messages +- Made major changes to +I (may need debugging) + - When you set +I while on a chan it sends a PART to the rest of the channel + - When you set -I which on a chan it sends a JOIN to the rest of the channel + - Net/TechAdmins now receive a JOIN/PART when you JOIN/PART a channel - Net/TechAdmins can now see +I users in /names +- Fixed a typo in s_err.c reported by TRON +- Fixed more -Wall warnings +- Added #define LIST_SHOW_MODES to show channel modes in a /list (NOTE: only shows modes, not params) +- Fixed /mode # + bug reported by PhatNet/Mind +- Possible fixed the SJOIN kick bug (mode +Q), servers can now always kick +- Added NEW DNS resolver (Win32 Only atm) ... use by defining NEWDNS +- FIXED "BUG" caused by NEWDNS *shrug* +- Fixed the passwd NICK problem +- Fixed the problem with NewDNS (ive always known about it but never known how it happens) [a pointer prob] +- Redhat 7 (broken string.h problem), ./Config +- Added SSL connections, open ports with P:ip:s:*:port to make them SSL + ports, made after hq.alert.sk's implementation +- Added P:line flags C - client only, S - server only, J - java clients (replaces CONFROOM_JAVA_PORT) +- Fixed up a few various things +- Made SHOWCONNECTNOTICES work properly again, also with SSL +- Changed ./Config to detect SSL better, and generate certificates properly +- Removed some annoying logging in ssl.c +- Merged in changes from TEMPcvs branch +- Fixed a /UNSQLINE para problem, found by Joe +- #define SHOW_SECRET now allows all ircops to see +s channels in /whois. If not defined, only net/tech admins can. +- Added #define CENSOR_QUIT, for WaveRide +- Fixed hashing bug that caused the server to crash on exit +- Made find_server_b64_or_real be a little faster, possible fixing bug +- Made /stats s checking check for sanity or insanity (ignore them for 0 + numerics) +- Fixed SJOIN (mp2parv) bug, that caused insane desynchs +- Changed Cannot find server message to be to sendto_realops +- Fixed a warning in CENSOR_QUIT +- Fixed the G:Line user wrongly matching (ip-alike addys didnt check user) +- Added protoctl SJB64, which adds B64-9 timestamps to many timestamping + operations +- Added ircsprintf %B (base64-9^10) with ! as prefix, and %b (no prefix) +- Fixed a few places where for some reason sprintf() was used rather than ircsprintf() +- Tokenized ADCHAT, TECHAT, NACHAT, SWHOIS, and SVSKILL +- Fixed a bug in opermode that would make it display a notice on invalid modes +- Fixed a bug where the Found your hostname (cached) message was messed up +- Fixed a memory leak in the new password code +- Fixed a sptr->passwd bug +- Removed the unnecessary param from IsULine() it is now just IsULine(sptr) +- ircsprintf() is now used everywhere +- Fixed the SJB64 bugs that misplaced users +- Removed sendto_helpops and replaced it with sendto_umode +- Added is_chanownprotop() checks if +q +a or +o with 1 loop +- Added chmode +N (no nick changes) (opers, ulines, +o +q or +a can override) +- Added some fixes on the SJB64 crashing bug, and added tokenization in + channel messsages (yahooooo!) +- Fixed the /list bug, reported by many people +- Fixed a linking bug (where did that come from) +- Fixed bug where duplicate numerics could occur +- Fixed the hashing bug (thank you ROXnet ...) +- Fixed a wierd channel message bug || +- Fixed a bug where non-NS servers would crash when linking +- Added TS2ts (supporting the SJB64 stuff), and fixed the !0 timestamp bug +- Fixed the /list only showing 64 channels bug! Also sped /list up in the process +- Probably fixed the hash bug, again. +- Possible fixed some b64 bugs +- Autodetects /usr/sbin/openssl now, thanks trinity +- Tokenized PING and PONG +- Fixes a missing : in SJOIN +- Possible fixed a internal server list bug +- When IRC WebTV bot cannot find a command, it sends it to parse() instead, + thanks [Real] +- Added burst.c in extras/ +- Moved lopt and whowas to anUser (saves 8 bytes for every server) +- Removed aClient->history, not used (saves 4 bytes for every user/server) +- Fixed compile error with SSL +- Fixed a /list and /quit bug +- Fixed the masskill bug with replacing "Server Exists" code.. i removed it + accidentialy last time +- Added /botserv /bs command, patch by ATHnet.de +- /who's now show +i users for opers in channels, idea by Strider@ChatCircuit +- Fixed NO_OPEROVERRIDE bug reported by otherguy +- #define STATSWRITING will make ircd write ircd.stats every 4 seconds, + idea/sortof by WaveRide + Format of ircd.stats: + + + + + + + + + +- Fixed +d (deaf) so it works again +- Removed some leftovers from the &channel code (which fixed a minor bug as well) +- Fixed a SJOIN3<->services problem +- Fixed a typo where it still said +I instead of +V in an error message +- Fixed the "Bad file descriptor" bug in SSL. This bugfix may be a bit risky + as it is manipulating BIO fds. The reason openssl freaked at this, was + that when a fd is closed, we change fds from 4 to 3 etc, in other words, + we renumber fds. SSL didn't know this and if you would call SSL_set_fd it + would close the connection/crash. Added SSL_change_fd() to change the FD + directly through BIO_set_fd. +- Fixed the masskill bug, hopefully. Was a delimiter/number array bug in + find_server_b64_or_real, causing negative base64 to be accepted (bad). + value 1-256 will never be able to be in two letters (a server name) +- Fixed \r\n bug, hopefully +- made SSL use same cert client/server +- Fixed help.c bug reported by Curt|s +- Different fixes, unreal.tspre.org -> unrealircd.com +- Fixed-fixed-fixed the \r\n bug and removed some useless cpu wasting code +- Removed remapping fds, and did a severe select() speedup, suggested by + Demiurgus. Should speed CPU a lot +- Updated some messages +- Fixed-fixed-fixed the U:line branching thing made by codemastr +- Fixed a G: line-turn-into Z:line problem, reported by eYe-Man +- Added SJOIN (SJ3 only) instead of JOIN/MODE in /join and discovered a bug in + SJOIN code, that if the line doesnt have a " " appeneded, it wont take the + last users or first for that sake. Hopefully patched SJ3 code for it +- Added OPT target OPT_SJB64 and OPT_NOT_SJB64 +- Made SSL server<->server work, using __blocking__ sockets (this is only + in connect moment thou) -stskeeps +- Removed 1.0 msg/s when not in HTM +- Fixed cutoff server infos in synch +- Added so /gline and /shun accepts time periods in 1d2h3s etc. a recode of + some potvin stuff +- Added so blocking is only effective when SSL_connect()'ing +- Fixed a couple of SJOIN/Link problems detected by Curt|s +- Changed some stuff with SSL, you may want to seperate server.pem into + server.key.pem and server.cert.pem (or "rm Makefile" and "./Config") +- Fixed a couple of SJOIN/Link problems detected by Curt|s +- Made /stats C show SSL/Zip flags +- Fixed the Stskeeps "mass G:line on /rehash" (tm) bug +- Removed last point of confusion in ALN/NS +- Removed CRYPTOIRCD (replaced by SSL) +- Added support for some more SJB64 stuff +- Added some more support for some even more SJB64 stuff +- Added some network files and even more network files +- Fixed some copyright stuff in ssl.c +- Fixed a /map problem +- Updated doc/conf.doc and doc/example.conf +- Fixed a bug where /map showed U:lines while HIDE_ULINES was set +- Removed "on network" in /whois oper +- Added code to makenet to stop fake submissions +- Fixed some /whois channels code, which may break +I /whois +- Fixed overflow in SJOIN +- Added SMO *, all users +- If a +r user is /who'ed, it shows a "r" in flags field. Suggested by + Mirar. +- Fixed a typo in ssl.c +- Added SICI information, Donation information, fixed a ./Config problem + overwriting certs .. +- Added hatblade's files +- Added some credits +- Fixed a real bad /whois bug, reported by BiGi +- Fixed a problem with /sajoin .. atleast possible +- Added infofield in /stats L for clients/listeners +- Fixed a blocking socket thing +- Fixed up /stats L bug +- Changed CONNECTTIMEOUT to 30sec +- Changed some _more_ credits +- Fixed compile error found by Headbang +- #define CHINESE_NICK will make you able to use chinese nicks + thanks to RexHsu and Aim +- Fixed up CHINESE_NICK and JAPANESE_NICK, suggested by Aim, see + include/config.h +- Config change in SSL.h detection part +- SSL error change to sendto_umode(UMODE_JUNK) +- Fixed a hash error, topic problem + +[fixes] +- Fixed a +d bug (it didnt send ` prefixes) +- Fixed a SJOIN bug, i think, thanks to Web +- Fixed a chinese nick thing, thanks to miCro and RexHsu +- Fixed a typo in config.h +- Fixed a bug in sendto_channel_prefix_tok reported by Strider@ChatCircuit +- Fixed P:line bug, caused by codemastr(tm) coding, (masskills), reported by + sidv@sid-kitty-land.org +- Some few fixes from CodeM and Barubary: + - Fixed /whois to show users for opers when not in the channel. + - Fixed /whois to allow only global eyes opers to see user modes. + - Fixed /whois to not show idle times of global opers to anyone except + another global oper or services. + - Fixed /who to show users for opers when not in the channel. +- Fixed restart bug, reported by RaYmAn +- Fix-fixed " Fixed /whois to not show idle times of global opers to + anyone" patch +- Fixed a recently found exploit involving reverse DNS (fix from bahamut) +- Made more openssl binary detection using 'which' +- Added message when trying to join a +z channel +- New segmentation fault code by Kanzen_Greiver \ No newline at end of file diff --git a/Changes.old b/Changes.old index 0cda1df1c..ad9ba29ba 100644 --- a/Changes.old +++ b/Changes.old @@ -1,3 +1,558 @@ +OLD CHANGES: + +*** Unreal3.1 *** (final) +- Moved REMOVE_ADVERTISE a little +- Fixed bug where you could /mode #test +L #test (link a channel to + itself) +- Fixed a bug where a +L channel didn't have to be valid ex /mode #test + +L blah would work, dangerous if 0 is used +- Fixed /map showing U:lines even if HIDE_ULINES was set oops :) +- Fixed a bug where opers couldn't walk through +l +- Fixed a bug where /mode #test +f *N:N was recognized the same as +f N:N + (if *2:3 was set then /mode #chan +f 2:3 it wouldn't set, thought it was the same) +- Removed src/cio_init.c src/cio_main.c src/win32.c src/win32.rc as we don't + use that anymore +- Added ircsprintf() (ircsprintf.c and ircsprintf.h) +- Converted to use ircsprintf +- Now using sprintf_irc from ircu, as %li would screw up the hybrid variant +- Some fdlist updates from bahamut +- Header change +- Some more Header change +- Added agent.c for IRCd Agents (remote control etc) +- Fixed up some make misalignments +- Fixed +I /names +- Removed TESTNET defines +- Added poll() engine from bahamut (hard!) +- Made /vhost send failed login's to +e +- Made /stats V/R/F use raw rather than NOTICE +- Fixed some poll() engine problems +- Some more problems with poll() +- Removed the \2's from the is a Coder msg, whywere they there, no one + knows (codemastr) Because i was the only one using it =P (Stskeeps) +- Fixed /names problem.. +- Made /mode use get_mode_str() to list the modes +- Made /lusers info be pre-calculated :) Saves hell of a lot CPU time +- Made /stats z/Z oper only +- Fixed SJOIN bug only totally fixed when all servers upgraded +- Moving old 3.0 stuff to Changes.old +- Re-added README.ALPHA +- Fixed some more SJOIN bugs +- Fixed NICKv2 bugs with non NICKv2 +- Fixed up /info, there will be a better layout for this +- Fixed up some poll() engine bugs (i hope) +- Start of telnet proxy scan code +- Took telnet proxy scan code out again =/ It really fux0red up +- Added networks/treklink.network +- Added options to /HTM, ON/OFF TO (what load do we auto start at) NOISY/QUIET (toggle whether HTM should + announce when it starts) +- Fixed a little bug where /part didn't show the correct channel case +- Made unresolved host connections go faster, idea from PTLink IRCd v3.5.4 great job :) +- Removed support for & and + channels (i hope) and made m_message more + handy and support for /notice +#channel, %#channel etc etc +- Topic fix? +- Incorperated the bahamut m_list and send_list, it's faster and smaller :P +- When /HTM is active /list is disabled to non-opers +- OperMOTD is now loaded into memory (faster, saves memory, and CPU) +- Added /rehash -omotd to rehash the OperMOTD +- Added unrealircd.conf option for SETUID and SETGID if ircd started as root. And you can turn that off/on + by defining/undefining BIG_SECURITY_HOLE in config.h +- Fixed small bug in ircd.c and dynconf.c (not using #ifndef BIG_SECURITY_HOLE) +- Removed & and + channels for sure.. +- All MOTDs, RULES are read into memory (including T:lines) +- Added /rehash -bmotd (BotMOTD) /rehash -motd/-rules (MOTDs/RULES) +- Fixed memory leak in dynconf.c, allocated 2048 on each /rehash -dynconf +- Fixed _serious_ memory leak in cloak.c, abused 128 bytes every time + someone went +x +- Alphabeticalized making.. +- flush_connections more better +- Fixed calls to check_registered*, more CPU spare:) +- Fixed a bug in /tsctl svstime +- Fixed a bug in the cached MOTDs +- Added support for remote /htm +- Even more tokensation +- Removed IRCII_KLUDGE +- Fixed /lusers wrong reply +- Removed V28PlusOnly define +- Fixed a bug in channel_modes() +- More and more and more tokenzation >:) +- Fixed a bug in m_user +- Removed have_ops() and is_deopped(), they weren't used +- Reorganized can_send() to make it faster +- More tokenzation >:) +- Fixed ircsprintf() %lu error when %lu == 0 +- Added devel/ directory, put ideas/specifications in here +- Added devel/new.plines to describe new upcoming P:lines +- Added NO_IDENT_CHECKING in config.h +- Fixed bugs in get_version() and also made it a bit faster +- Fixed RPL_MYINFO problem with UnrealIRCd/32 version and ircII + misunderstanding it, prob other clients too +- Updated msg.h hashtable to get most used commands more close +- Removed some unused defines in msg.h +- Removed dusers (not in use) +- m_user stuff +- Made use of : 's in between ircd.conf field working, using this format: + A:"Test test:Moo":Moo:moo +- Fixed some /lusers miscalculations +- Added INET6 patch, now for making it work :P +- More INET6 patching (not working atm) +- INET6 compiles now, works? :P +- Fixed some WebTV stuff +- Made the m_message routine not do a user hash lookup if it starts with # +- Removed some fields in structures like aClient etc that was unused +- Removed Client->iown and the OWNLOGON code +- Removed Channel->blist +- Removed heaps of unused variables in functions +- Fixed THE G:line bug, missing parameter +- Hopefully fixed some calculation bugs +- +F bugfix +- In TKL a gline shows reason in quit message now +- Fixed the SVSMOTD OPERMOTD and BOTMOTD bug, suggest parantheses problem +- In K:Line it shows reason in quit message now, not sure about AKILL +- Experimental NOTE in register_user added +- Implemented hybrid scache.c, created by orabidoo and Dianora +- Fixed /connect scache problem, and actually fixed the OPERMOTD bug +- The hopefully last calculation bug.. +- Made bans and exceptions actually sync *ducks*, done in old fashion MODE + manner, better than making BS (bansync) or incorporating it in SJOIN +- Made /opermotd oper-only, bug reported by Bagge@ROXnet +- Made TOPICs be dynamically allocated - saves heaps memory +- Added hybrids/+cs'es /whowas system. Improved so it doesn't use static + character arrays, and uses dynamically allocated strings instead +- Added UMODE2 PROTOCTL and command, when a usermode change it uses :nick + UMODE2 +-umodes. token = '|' +- Made CONNECTFAST default, will ensure faster connecting +- Updated /helpop to list more commands and new modes +- the 1-message-per-2-sec not applied to opers +- Topic fix with dynamic allocation +- 1-message-per-2-sec now 1-message-per-1.5-sec +- Removed TS fix notice +- Removed User %s tries to become server notice +- Made MAXCHANNELSPERUSER an unrealircd.conf option +- Changed unrealircd.conf version to 1.2 +- Credit changes.. +- Uses dgets() from hybrid now, should be a minor CPU fix +- Moved WebTV support, and +I disabling to an unrealircd.conf option +- Updated doc/conf.doc, removed references to DALnet, and fixed typos +- Moved doc/Elite.Changes to doc/History/Elite.Changes, away away away with + that one +- Tokenized SQLINE +- Recoded dynconf, validates data too now +- Fixed a /list bug that crashed the server +- Fixed a minor bug in the new dynconf +- Fixed a bug in vhost.conf and dccdeny.conf where if the line was not valid it would crash, now it just + ignores that line +- Added comment support to vhost.conf, dccdeny.conf, and chrestrict.conf (makes loading faster) +- Fixed one of those "code, what the fuck were you smoking" bugs in m_svsmode etc + (what = MODE_DEL - eh?) +- Added AUTO_JOIN_CHANS to unrealircd.conf to force a user to join 1 or + more channels on connect, read networks/unrealircd.conf for more info +- Added networks/axenet.network +- Possible change in the -1 operator bug +- /info changes - Unreal3.1-beta1 release +- Added a bunch of networks +- Updated doc/conf.doc +- Updated networks/networks.ndx cause someone *cough* sts *cough* forgot +- Updated m_svso to -H the user +- Added Solaris2.5 support and cleaned up Solaris2.x support +- A little /list fix +- Changed the unrealircd.conf version to 1.3 +- Fixed a bug in the AUTO_JOIN_CHANS +- Added OPER_AUTO_JOIN_CHANS to unrealircd.conf, same as AUTO_JOIN_CHANS + but is called on /oper +- Readded /ns, /cs, etc but this time they point to /nickserv, /chanserv, + etc +- Removed IRCd Agents and made it so all opers can join unlimited channels +- Updated src/chkconf.c to recognize new lines +- Added "/mode #chan qa" support to send a list of +q users / +a users in a chan +- Fixed "/mode #chan qa" ... see channel.c m_join for the problem ... sts you owe me a tenner =P .. +- Removed Reg1, Reg2 etc etc and register. Modern compilers optimize better + that way +- Sidenote: /msg nick@ bug can easily be caused in m_message +- Unreal3.1-beta1(build2) +- Disabled ID_* stuff but is still there, saves memory +- Made user->virthost a dynamic string now +- Fixed a virthost bug again, and starting to wreck in meow's badword patch, + gonna be a swearword filter and new version of REMOVE_ADVERTISING +- Added meow's badword patch +- Moved the badword patch chmode to +G (G Rated Channel) cause thats what some other ircd's use so lets try + and keep cross compatibility :P +- Added networks/interturk.network +- Fixed a bug in /names thanks to lucas for reporting it and fixing it :) +- Changed the badword umode to +G also +- Removed some unused variables from dynconf.h +- Cleaned up the dynconf and network file code to use less memory +- Fixed the kill bug in NICKv2, caused by codemastr(TM) code + (was calling m_join before sending NICK info to other servers) + - SO NO IT WAS NOT MY FAULT *slap* (Stskeeps) - +- Did an attempt on fixing the /msg nick@ bug +- /stats s in DEVELOP mode will show cached scache hosts +- Added src/aln.c, for the new ALN system, read doc/aln.doc +- Minor ALN fix +- Introduced ALN system, look at send.c::sendto_serv_butone_nickcmd, a + little better, we can scrape some functions now +- Some more ALN stuff, the server now understands | prefixes, + find_client too +- Added the "IRC Operators Message Of The Day" to /opermotd +- Made Y:1 class in makeconf max 250 (we might get some complaints here, + but people can change to their limit, but we have to make it this low + because else the program rj had can flood/crash the server +- Fixed a ALN problem with |nick persons getting killed off +- Removed an OLD EliteIRCD reference in ./Config, thanks to Linus +- Moved the ALN prefix to @ instead of |, as | would conflict with + clients +- Fixed ALN problem with it masskilling everyone :P +- ** RELEASE OF UNREAL3.1-BETA2 ** +- Small Linux-ALPHA fix +- A small vsendto_prefix bugfix(?) +- Added /stats e to list e:lines +- Fixed a small /list problem +- Added #define USE_LOCALE, uses locale stuff in *nix versions + to make better toupper() tolower(). might help some chinese nick + things too +- Fixed a few minor NOSPOOF things +- Changed ircsprintf() to work with %lu with 0-5 +- Added unreal-test.network, for the upcoming Unreal TESTnet (for beta + testers and developers only) +- Using MyFree/MyMalloc now instead of MyRealloc.. lets hope it fixes + something +- Fixed the virthost (possible), need extensive testing +- Possible fix of some server_estab problems +- Added networks/cc2.network, networks/kissland.network, and networks/digital-irc.network +- Changed unrealircd.conf version to 1.5 +- Added HOST_TIMEOUT and HOST_RETRIES to unrealircd.conf to customize host resolving times +- Added Freelinks garbage collector (by Stskeeps :)), saves a lot of memory. + Check include/config.h on configuring it (default values should do) +- Fixed a /chghost and /chgident buffer overflow problem reported + by Gravitron. +- Added Solaris2.6 and 2.7 support +- Added /dccdeny to add a temporary dccdeny, erased on /rehash -dccdeny +- Added /undccdeny, if the EXACT file you type is found it is removed, else it uses wildcards to search +- Made it so you can't add duplicate dccdenys +- IRCstats.operators count fix. It MUST work now. +- Fixed a bug in dccdeny +- Added a logo to the IRCd startup and made it work a little bit better +- Made version.c update when .c.SH is changed +- Made sendto_serv_butone_token work with ALN prefixes too +- Fixed an SQLINE bug +- SVSFLINEs now sync when a server links +- SVSFLINEs are now tokenized +- Fixed the /nick othernick thing failing (ALN fault, lets hope it doesnt + break other stuff) +- Implemented DOUGH_HASH from hybrid IRCd +- Ran Unreal thru another memory leak check + - Fixed a whowas.c memory leak +- Added /rehash -garbage which will clean up freelinks +- NOTE on PTlinks so called make yourself oper bug.. cannot see how it + can trigger at all. +- Fixed up some E:line code +- Added n:lines banning based on real names (E:lines override n:lines) +- Fixed a minor bug in m_message +- Fixed up and ALNized SERVER commands like @E8 SERVER name + for instance.. sts tends to severely drool over this +- Hopefully fixed the /msg unknownnick missing ERR_NOSUCHNICK bug +- Fixed the cannot change to lowercase nick thing, and made + find_server() call hash_find_server instead of hash_find_client + *slaps* to stskeeps :P +- Fixed a bug caused by sts's '/msg unknownnick missing ERR_NOSUCHNICK bug' fix :) +- n:lines now checked on /setname (not checked for opers) +- Fixed a bug caused by a line of code I forgot to remove ;P +- Fixed the pesky \r bug caused by windows editors. Unreal ignores \r now + in ircd.conf +- For any sake, included the PTlink bugfix.., had some reports from + zurna.net of it +- Fixed an n:line bug(nice bug really? :P) +- Removed behavoir of co-admins able to set +q in #channels + (i think this was cos i was co-admin long time ago -sts) +- Made IRCops able to talk through +b, suggested by The_Cat +- Added /chgname nick :new realname and /svsname as an alias for it + (suggested by ^Tux^) +- Fixed Sts's favorite mistake +- Indented Unreal .c files +- PROTOCTL's can be said more than once now +- Fixed a /dccdeny - /undccdeny bug reported by auspice +- Fixed the negative oper count bug. Was caused by codemastr-coding(TM) +- Removed the old non-caching motd functions +- Some IRCstats.unknown fixes.. +- Took out compatibility for "Pyramid OS", is ancient and let them + fix their fscked up os +- If a user (unknown connection) floods 2K (2048 byte) the user is + disconnected and tkl z:lined for 600 secs (10 mins). Idea by GZ + from StarChat IRCd, code recoded by Stskeeps +- A ircd.conf Y:Line class is not added if it contains max clients + > (MAXCONNECTIONS - 15) +- Flood activates only at unknown connections and only at 4K now .. +- Fixed a bug in m_setname with n:lines +- Added n:line support to m_chgname +- n:lines are now checked after a rehash +- Did a bugfix on ALN and non-ALN servers +- Fixed a bug with /chgname with incorrect parameters to other servers +- "Fixed" the /stats u bug? +- Fixed +f not working (?) +- Made the Own-protection just reduce the class maxli instead of bitching.. +- Did a dirty hack on ALN problem with colliding hash (will deny linking in + wrong servers) +- Fixed /stats C not showing N:lines, reported by auspice +- Fixed codemastr (possible) fucked up the shell ircd script with + overwriting it ... +- Created /shun, /gline style. /shun +user@host time reason /shun -user@host + will extend it so you can /shun +nick later +- A little anti-0 fix in channel.c +- Made MODE_X, MODE_I etc show mode change to user +- Added channel mode +C to disallow channel CTCPs, /me (CTCP ACTION) is still allowed +- Fixed a bunch of +H bugs +- Fixed a bug where the channel was still shown in /who for +I users +- First part of ZIP_LINKS +- Fixed a typo in ./newnet +- Made /close reset IRCstats.unknown .. +- Made SVSO (ofcourse) IRCstats.operators--; +- Another IRCstats.unknown fix. Hope this works (hacked from undernet code) +- NETINFO protocol 0 is accepted as valid protocool (for services etc) +- /stats s is now avail only for opers in mainstream +- Took out "nick did a /userhost on you" +- Reduced hashtable size +- Took out sequent/dynix support +- Fixed a bug that prolly was fixed by Potvin, but was "not fixed correctly" +- Fixed a crash problem in register_user and most likely fixed the "strange + vhost" thing, (was a dumb bug, mising ircsprintf) +- Fixed the *** NickServ sets mode +creep SVS2MODE bug.. +- sendto_serv_butone_token_opt ().. +- Small testing stuff +- In ./Config it runs a quick test to see how many socket()s you can do +- Fixed the double +cF notice on local connections exiting, ugly hack +- Removed the last traces of unix sockets, flag 0x10 free now +- Made all ircops able to use +F (totally this time) +- /quote close do not show realhost of caller anymore +- /shun accepts nick in add mode now (adds *@host) +- Allowed /shunned users to use /pong now +- Fixed (by DrBin) Shun and Gline bug, where they replaced eachothers ->type + .... Learn that (= != ==) /me looks at Sts +- You can now specify 0 as the time for any TKL (ex Glines, Shun) for it to be perm +- Fixed a +L bug, (3.1 only) where any op could set +L +- Added channel mode +u, "Auditorium". Makes /names and /who #channel only + show @'s +- Added config.h setting to disable oper overrides, NO_OPEROVERRIDE +- Added Debug support to win32 makefile ... compile with syntax + NMAKE -f makefile.win32 DEBUG=1 + inorder to have debug support ... leave the DEBUG=1 out for normal builds +- Fixed ircsprintf.h ... we do want it to compile in debug mode yes ? +- Made /addline write to correct place when you use -f +- Made /zline not memory corrupt/crash, bad df bug +- Fixed a counting bug with unknown connections, very hopefully +- Fixed /htm giving wrong response when /htm to 1 +- Fixed /shun showing "1970" to permanently shunned users +- Fixed ./Config showing freebsd 3.0 in freebsd 4 +- Made so badwords.*.conf accepts # comments +- Added some default default badwords.message.conf and badwords.channel.conf +- Made so auditorium mode shows users to @'s +- Fixed a bug where /chgident would overflow into the *real* host if it where greater than USERLEN + because _someone_ aka sts told it to check against HOSTLEN rather than USERLEN... reported by wshs +- Fixed a bug in badwords not loading words correctly, and upped word limit + to 50 +- Small fix with ./Config showing incorrect path of stddef.h +- Made operkick be part of NO_OPEROVERRIDE +- Made admins unable to be shunned +- Made some socket errors which normally only showed up in DEBUGMODE, show + up in ircd.log as well +- Fixed a wrongly outputted message (in hash collision detect) +- Removed aHush, not in use +- Removed DISALLOW_MIXED_CASE and IGNORE_FIRST_CHAR, waste of space +- Made IDLE_FROM_MSG stock define +- Made IRCII_KLUDGE disappear :P +- Fixed SENDQ_ALWAYS to be mainstream define (as always) +- Removed s_gline, not in use, removed some modeless channel checks (not needed), removed an old zombie + code, and removed a line from aHush that was missed +- Added networks/seveneagle.network +- /msg irc now works whether or not WEBTV_SUPPORT is on +- Moved /mode #channel ^ and ListBits() to #ifdef DEVELOP +- Made it so servers behind a U:lined server (ex Juped Server) are U:lined too, helpful if HIDE_ULINES is + on (from bahamut) +- Added find_uline (from bahamut) for the new U:line code +- Modified /map to work with the new U:line code +- Redid s_err.c to be ALOT faster, based on bahamut's s_err.c (ALOT of + work) +- Fixed last R_LINE stuff (check_time_interval) +- Fixed /setname desynch +- Removed IsService(), and some wierd stuff +- Broken INETD support removed +- Removed some odd Clone stuff(?) +- Added Blowfish encryption ability (SetSecure()), will extend to more + better encryption +- Fixed a typo in /stats z +- Some more crypto stuff, will work on the new engine tommorow +- You can now encrypt the I:line passwords using mkpasswd (must have CRYPT_ILINE_PASSWORD defined) +- Editted Config to ask if you want encrypted I:line passwords +- Made it so you can encrypt restart/die passwords (same as I:line passwords) +- Editted Config to ask about encrypted restart/die passwords +- Made it so you can *view* a channel topic using /topic #channel without being a member +- Removed , support from /topic (not needed) +- Removed count_channels (not in use) +- Made a major is_banned speed up +- Redid K:line and n:line checking to be alot faster +- Fixed crypto stuff 100% :)) +- Added CRYPTOIRCd ('r') to version string +- Added some more crypto stuff + - /crypto +- Fixed a ->passwd bug caused by codemastr.. +- Added fclose() calls to the vhost, dccdeny, and chrestrict confs +- Some V:line stuff (added VL protoctl, and parsing of the SERVER command for the proto and flags) +- Fixed so that in +c it shows if a user is connected securely +- Backported the passwd stuff, not needed. +- Fixed a crash problem on /quit or /squit +- Fixed some aligning in the VL PROTOCTL +- Fixed some fucked up passwd stuff again .. +- Fixed a little Client Protoctl problem +- Fixed a crypto problem (forgot an #ifdef bad sts!) +- Fully added V:lines (doesn't really do much till the next version, since old versions don't support it) +- Added /stats v to list V:lines (/stats V still does vhost.conf) +- Added OpenBSD 2.x support, thanks to noriko for donating the development shell +- Added so stuff like Lost connection to, (report_error) only goes to realops +- Added some more descriptive error messages +- Added doc/crypto.doc describing the encrypted irc protocol +- Fixed a sendto_serv_butone_token problem +- Removed any trace of MD5, we use random() for nospoof now, this fixed a + license problem too +- Removed NOSPOOF_SEED01 and 02 +- Added VHP protoctl, (not in use in the synch). This makes virthost field + in NICKv2 use the real virthost even if its +t. (Thanks to SL7) +- Added support for the CR Java Chat auto join feature +- Fixed a msg.h location problem .. +- Added secure connections and openssl tracing to Config +- Added regex portablity and checks in Config +- Added a #define capability to config.h (DISABLE_USERMOD), + disables /sethost, /setident, /chgname, /chghost, /chgident +- Fixed a /rehash -garbage bug reported by Curt|s +- Added networks/makenet (generates a network configuration file) +- Added networks/staticedge.network +- Fixed some host revealing nick collision stuff +- Tokenized nick->nick PRIVMSG and NOTICE +- Made it so you can remove a protoctl by putting a - in front +- Fixed a bug in summon +- Added protection against webproxies +- Fixed TKL? +- Added SJ3, removed the old +- SJ3 bugfix, and another +- Hopefully a res.c fix. +- Fixed a +I bug +- Fixed a more SJ3 bug +- Updated networks/networks.ndx (bad sts!) +- Added networks/linuxsquare.network +- Added networks/chatstation.network +[recall] +- Fixed the pesky hostname bug +- Fixed a NO_OPEROVERDIE bug reported by Taz +- Fixed a +L bug +- Fixed a typo in Config +- SJ3 fixes. Let's hope this works (f*cken hell..) +- Fixed a V:line bug +- Added /infoserv (you can stop bugging us now skold ;P) +- Removed ALN, and the ALN system. +- Added base64 encoding instead, for ALN v2 (NS) +- Removed a SJ3 debug msg +- Removed SVSMODE +l support, and fixed servicestamp and +d support +- Changed to ircu/hybrid6/unreal mix of numeric 005 +- Fixed a SJ3 Fake Direction loopbug (kills on nick collisions) +- SJ3 fixes, loop fix +- Added NS, new generation ALN. +- Added llthangel's whoisfix.patch, Makes sure +hv users show up as + %#channel instead of +#channel. Bug report by ^Fanta. +- Changed find_server_quick to work with masks too .. +- Removed UPING UDP socket. Only resfd opens a udp fd now +- Small memory cleanup +- NS introduction in sendto_serv_butone_token +- Fixed Q:lined nick NickServ from on Nickname Server message +- Fixed a problem in synch using acptr->name as info line +- Introduced NS in SQLINE.. +- Fixed a problem in SVS2MODE not displaying mode changes, and well known + why +- Recoded SVSNOOP, but the IRCd doesn't get it at all?? +- added llthangel to credits +- Changed channel.c so when you kick someone as halfop it doesn't show as an + OperKick (unless you kick an op) (reported by ^Fanta, patch by llthangel) +(rc2) +- Fixed SVS2MODE bug with illegal modes +- Fixed /notice @%+ bug, where it didnt work at all +- Fixed a small chmode +u bug +- Added sendto_chanops_butone because of codemastr's laziness +- Fixed a few +u bugs +- Fixed a +I bug (yes another one) +- Changed channel.c so that when an opped non +q/+a Oper kicks a user who + is +q/+a it invokes an OperKick (patch by llthangel) +- Fixed the +lL (+Ll) bug, will first be fixed 100% when all is 3.1 +- Possible fixed the lopts bug +- Fixed a egcs problem in Config, the strtok bug +- Fixed the 'ulimit core size failed' bug (now checks whether it should + set the core size to unlimited in ./Config +- Changed s_user.c so that Opers will see +s channels in /whois + (patch by llthangel) +- +u now lists +a and +q people, and sends JOINs/PARTs to +a and +q people +- Fixed a /mode (umode) typo where it said no such channel rather than no such nick, + reported by llthangel +- Disabled anything with time in /list options temporary, causes bugs +- Fixed a little /chghost bug +- Fixed a SJ3 bug with ban syncing to SJ2 servers +- Fixed some cloak bugs(???) +- Made it so you can /knock without a reason, and a few /knock cleanups +- Made it so if the server name specified in the M:line does not contain a "." + the ircd logs it to ircd.log and dies +- Updated ./ircd to also say to look at ircd.log +- Fixed a SQLINE synch bug +- Added command line option -F to prevent the ircd to fork out +- Fixed the f*cken TKL bug +- Fixed a netsplit bug +- Changed some find_server(name, NULL) to find_server_quick to speed up + lookup of servers +- Made find_server_quick a prototype, and made some work more quicker as + well +- Removed the : in :nick NICK newnick :timestamp +- Added script ./update to help update, uses pull technology (wget, cvs) +- Added script ./Setup which makes the user forced through Unreal.nfo, FAQ, + Config, and all the things we want them to read/do to compile the IRCd +- Updated PREFIX Client Protoctl +- Added ^MrMike^'s command list, this one will be updated +- Removed ID_CVS, hopefully fixing some bastard stuff +- Fixed a last minute SJOIN bug +[ last fixes ] +- Re-added res_comp.c and win32.c and res_mkquery.c, which was damaged by + the ID_CVS remove +- Fixed a SHOWCONNECTINFO bug +- Fixed a MODE_STRIPWORDS bug +- Fixed a PART bug +- Fixed a STRIPBADWORDS bug +- Fixed a BotMOTD bug +- Added Dianora's /userhost +- Recoded /links using NS +- Recoded /map a bit using NS, and added usercounts to Server struct +- Some crazy time_t -> TS stuff, will save us some time in 2038 +- Fixed the "/mode #blah +Cplkf 1 moo 5:5" ( mode/#blah [+pClkf 1moo 5:5] + problem +- Hopefully fixed the +x problem +- Fixed a bug with mkpasswd on OpenBSD +- Added desynch +e warning, and updated ./update enough ... +- Updated update to work better, and that you can use lynx instead of wget +- Added #undef SHUN_NOTICES, to add notices for users who are shunned +- Fixed bug with U:Lines should be able to privmsg/notice and recieve + badwords :P, does not work in channels +- Removed the old GLINE system, TKL is now standard. +- Added INV_TRACK define, we want people testing this. +- Fixed the -1 usercount bug, found by codemastr, fixed by Stskeeps +- Fixed a +h bug reported by Dukemaster +- Added IRIX support (does it work?) +- Fixed crypter so it actually functions (Makefile now sets mode 700) and + it encrypts X and N lines too. +- Fixed empty mode sends in register_user, reported by Bagge +- Added some portability stuff +- Fixed some empty-line/missing parameter stuff in dccdeny, vhost, + and dynconf, chrestrict +- Made vhost strip too long vhosts +- Removed INV_TRACK +- Fixed a typo in /vhost +- Fixed some problems/typos/notlookingsogood (TM) bugs, in the tkl code +- Fixed ban merging/similar bug in SJOIN +- Made /kick for opers only be possible for netadmin/techadmin +- Fixed /server so it doesnt support SERVER name :info anymore.. + + + *** Unreal3.0-Morrigan(fix) *** * NOTE: If your system clock is wrong you will have problems with TOPICs being set on all servers. That is because TOPICs which are _new_ are diff --git a/Config b/Config index e14e12c4b..77fdaa811 100755 --- a/Config +++ b/Config @@ -11,7 +11,7 @@ # distribution without the author's prior consent. # # $Id$ -IRCD_VERSION="Unreal3.1" +IRCD_VERSION="Unreal3.1.1-Darkshades" CONF_DATE=`date` LAST_VERSION="very very old" # @@ -44,11 +44,14 @@ GETTIMEOFDAY=undef LRAND48=undef STRTOUL=undef OPENSSL="" +OPENSSL_OTHERPLACE="" REGEXP="" NEEDSKIPNAME="" CRYPTOLIB="" CRYPTOIRCD="" +OPENSSLPATH="" CCPATH='' +STRCASECMP=undef SIGNAL='' BLOCKING='' TMP=/tmp/.Configtmp$$.c @@ -503,12 +506,13 @@ else echo 'not found (good!)' fi -echo $n "...Looking for /usr/include/openssl/blowfish.h...$c" -if [ -r /usr/include/openssl/blowfish.h ] ; then +echo $n "...Looking for /usr/include/openssl/ssl.h...$c" +if [ -r /usr/include/openssl/ssl.h ] ; then OPENSSL=define echo 'found!' else - echo 'not found (you will not be able to do secure connections)' + echo 'not found (you will not be able to do secure connections' + echo 'If you do have it, please type in ln -s /usr/include/openssl' fi echo $n "...Looking for /usr/include/regex.h...$c" @@ -524,6 +528,33 @@ else cd ../.. fi +if [ -r /usr/include/openssl/ssl.h ] ; then + echo $n "...Looking where you got the openssl binary...$c" + if [ -r /bin/openssl ] ; then + OPENSSLPATH=/bin/openssl + echo $OPENSSLPATH + elif [ -r /usr/bin/openssl ] ; then + OPENSSLPATH=/usr/bin/openssl + echo $OPENSSLPATH + elif [ -r /usr/sbin/openssl ] ; then + OPENSSLPATH=/usr/sbin/openssl + echo $OPENSSLPATH + elif [ -r /usr/local/bin/openssl ] ; then + OPENSSLPATH=/usr/local/bin/openssl + echo $OPENSSLPATH + elif [ -r /usr/local/ssl/bin/openssl ] ; then + OPENSSLPATH=/usr/local/ssl/bin/openssl + echo $OPENSSLPATH + elif [ -r `which openssl` ] ; then + OPENSSLPATH=`which openssl` + echo $OPENSSLPATH + else + echo "Couldn't find it! (bad)" + OPENSSLPATH=/bin/false + OPENSSLPATH=/bin/false + fi +fi + # # to b or not to b # @@ -792,7 +823,6 @@ else fi fi $RM -f $EXEC $TMP - # # what do we need that isn't here already ? # @@ -993,8 +1023,25 @@ if [ $? -ne 0 ] ; then echo $n " inet_netof$c" NINETNETOF=define fi -$RM -f $EXEC $TMP echo " " +$RM -f $EXEC $TMP +cat > $TMP << __EOF__ +#include +main() +{ + strcasecmp("moo", "moo"); +} +__EOF__ +$COMP +# >/dev/null 2>&1 +if [ $? -ne 0 ] ; then + echo $n " strcasecmp $c " + STRCASECMP=undef +else + STRCASECMP=define +fi +$RM -f $EXEC $TMP + # # # @@ -1074,6 +1121,7 @@ cat > $SETUP <<__EOF__ #$NINETNETOF NEED_INET_NETOF #$GETTIMEOFDAY GETTIMEOFDAY #$LRAND48 LRAND48 +#$STRCASECMP GOT_STRCASECMP __EOF__ if [ "$MALLOCH" = "undef" ] ; then echo "#undef MALLOCH" >> $SETUP @@ -1281,7 +1329,7 @@ while [ -z "$FOO" ] ; do FOO="No" fi echo "" - echo "Do you want to support encrypted connections" + echo "Do you want to support SSL (Secure Sockets Layer) connections" echo $n "[$FOO] -> $c" if [ -z "$AUTO_CONFIG" -o -n "$runonce" ] ; then read cc @@ -1295,7 +1343,7 @@ while [ -z "$FOO" ] ; do case "$cc" in [Yy]*) CRYPTOIRCD="1" - CRYPTOLIB="-lcrypto" + CRYPTOLIB="-lssl -lcrypto" ;; [Nn]*) CRYPTOIRCD="" @@ -1709,6 +1757,30 @@ else fi +if [ -n "$CRYPTOIRCD" ] ; then + $RM -f Makefile.tmp + sed -e "s@^OPENSSLPATH=\(.*\)@OPENSSLPATH=$OPENSSLPATH@" Makefile > Makefile.tmp + cp Makefile.tmp Makefile + $RM -f Makefile.tmp +else + $RM -f Makefile.tmp + sed -e "s@^OPENSSLPATH=\(.*\)@OPENSSLPATH=@" Makefile > Makefile.tmp + cp Makefile.tmp Makefile + $RM -f Makefile.tmp +fi + +if [ -n "$OPENSSL_OTHERPLACE" ] ; then + $RM -f Makefile.tmp + sed -e "s@^OPENSSLINCLUDE=\(.*\)@OPENSSLINCLUDES=-I/usr/local/ssl/include/openssl@" Makefile > Makefile.tmp + cp Makefile.tmp Makefile + $RM -f Makefile.tmp +else + $RM -f Makefile.tmp + sed -e "s@^OPENSSLINCLUDE=\(.*\)@OPENSSLINCLUDES=@" Makefile > Makefile.tmp + cp Makefile.tmp Makefile + $RM -f Makefile.tmp +fi + if [ -n "$REGEX" ] ; then $RM -f Makefile.tmp sed -e "s@^REGEX=\(.*\)@REGEX=@" Makefile > Makefile.tmp @@ -1756,9 +1828,9 @@ else echo "#undef CRYPT_OPER_PASSWORD" >> $OPTIONS_H fi if [ -n "$CRYPTOIRCD" ] ; then - echo "#define CRYPTOIRCD 1" >> $OPTIONS_H + echo "#define USE_SSL 1" >> $OPTIONS_H else - echo "#undef CRYPTOIRCD" >> $OPTIONS_H + echo "#undef USE_SSL" >> $OPTIONS_H fi if [ -n "$CRYPT_LINK_PASSWORD" ] ; then echo "#define CRYPT_LINK_PASSWORD 1" >> $OPTIONS_H @@ -1834,6 +1906,16 @@ if [ "$OSNAME" = "Linux (with GLIBC 2.x or greater)" ]; then echo "" fi +if [ -n "$CRYPTOIRCD" ] ; then + if [ ! -f server.req.pem ]; then + echo "Using openssl in $OPENSSLPATH .." + export OPENSSLPATH + make pem + cat .SICI + read cc + fi +fi + cat << __EOF__ _____________________________________________________________________ @@ -1852,8 +1934,8 @@ cat << __EOF__ |_____________________________________________________________________| |_____________________________________________________________________| | - The UnrealIRCd Team - | -| * Stskeeps stskeeps@tspre.org | -| * codemastr codemastr@tspre.org | -| * DrBin drbin@tspre.org | +| * Stskeeps stskeeps@unrealircd.com | +| * codemastr codemastr@unrealircd.com | +| * DrBin drbin@unrealircd.com | |_____________________________________________________________________| __EOF__ diff --git a/Donation b/Donation index 6cfac6b7e..6400d034e 100644 --- a/Donation +++ b/Donation @@ -7,6 +7,9 @@ P.O.Box 52 7400 Herning Denmark +(if you want to that is .. it will just make us a little more able to code +even more on this project. You will get in /credits if you do so). + -- Stskeeps [ $Id$ ] diff --git a/INSTALL b/INSTALL index c891c59bf..17f79510c 100644 --- a/INSTALL +++ b/INSTALL @@ -11,7 +11,7 @@ an IRC server. For more information on UnrealIRCD contact us at unreal-dev@lists.sourceforge.net -The UnrealIRCD is available from http://unreal.tspre.org +The UnrealIRCD is available from http://www.unrealircd.com along with the latest copy of this document. diff --git a/Makefile.dist b/Makefile.dist index aaddfe0e6..e6ffc89da 100644 --- a/Makefile.dist +++ b/Makefile.dist @@ -34,6 +34,7 @@ FROMDOS=/home/cmunk/bin/4dos XCFLAGS= IRCDLIBS= CRYPTOLIB= +OPENSSLINCLUDES= # # use the following on MIPS: #CFLAGS= -systype bsd43 -DSYSTYPE_BSD43 -I$(INCLUDEDIR) @@ -121,6 +122,9 @@ STRTOUL= # override it here and see what happens. FD_SETSIZE= +# Where is your openssl binary +OPENSSLPATH= + CFLAGS=-I$(INCLUDEDIR) $(XCFLAGS) $(NEED_U_INT32_T) $(FD_SETSIZE) SHELL=/bin/sh @@ -140,7 +144,8 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \ 'INCLUDEDIR=${INCLUDEDIR}' 'IRCDDIR=${IRCDDIR}' \ 'MANDIR=${MANDIR}' 'RM=${RM}' 'CP=${CP}' 'TOUCH=${TOUCH}' \ 'RES=${RES}' 'SHELL=${SHELL}' 'STRTOUL=${STRTOUL}' \ - 'CRYPTOLIB=${CRYPTOLIB}' 'REGEX=${REGEX}' + 'CRYPTOLIB=${CRYPTOLIB}' 'REGEX=${REGEX}' \ + 'CRYPTOINCLUDES=${CRYPTOINCLUDES}' server: build: @@ -159,6 +164,12 @@ build: @echo '| file "dynconf" using your favourite viewer or |' @echo '| editor. The file will contain instructions on how|' @echo '| to do the dynamic configuration :) |' + @echo '| You might want to see include/config.h to adjust |' + @echo '| some settings |' + @echo '| |' + @echo '| If you really like UnrealIRCd, and would like to |' + @echo '| make a donation, please read the Donation file in|' + @echo '| this archive. :) |' @echo '| |' @echo '| Thanks for using Unreal IRCd! If you are in need |' @echo '| for any kind of help regarding the IRCd please |' @@ -210,3 +221,14 @@ depend: install: all @echo "Now install by hand; make install is broken." +pem: src/ssl.cnf + @echo "Generating certificate request .. " + $(OPENSSLPATH) req -new -config src/ssl.cnf -out server.req.pem \ + -keyout server.key.pem -nodes + @echo "Generating self-signed certificate .. " + $(OPENSSLPATH) req -x509 -days 365 -in server.req.pem \ + -key server.key.pem -out server.cert.pem + @echo "Generating fingerprint .." + $(OPENSSLPATH) x509 -subject -dates -fingerprint -noout \ + -in server.cert.pem + \ No newline at end of file diff --git a/READMENOW.Win32.txt b/READMENOW.Win32.txt new file mode 100644 index 000000000..43437ae6c --- /dev/null +++ b/READMENOW.Win32.txt @@ -0,0 +1,23 @@ +Unreal IRCD Win32 Version +-=-=-=-=-=-=-=-=-=-=-=-=- + +Ok, in order to save time, and my nerves i am writing this short readme, and eventually an FAQ (after people ask questions) =) + +This is information on how to run the win32 version, it does not say, and WILL not say how to use an ircd, as that is sufficiently docuimented in the docs !!!! + +you will NEED to modify/create an ircd.conf, follow the documentation for that. + + +Right, thats almost it( that i can think of), but what happens if the server Crashes ??? +---------------------------------------------------------------------------------------- +ok i Have now coded the first bit of usefull (for me) code that dumps the stack to a dialog box, WHAT EVER YOU DO you must do the following: + 1. Copy and paste EVERYTHING in that dialog box, and send it to me in an e-mail + 2. Include in that e-mail EVERYTHING that happened in the lead up to the crash + +i hope thats SIMPLE to follow, but it will help me soo much !!!!! + + +DrBin (Dave) +drbin@tspre.org + + diff --git a/TODO b/TODO index b561d26d6..facb778cd 100644 --- a/TODO +++ b/TODO @@ -10,16 +10,9 @@ Scheduled for 4.0: ---------------- * B:Lines or ircu i:lines -* Raising PING bug * Config Remote access ----------------------------------------------------------- -* Add svsvline for global vlines ---------------- -Assigned to codemastr: -* Remove some of the _little_ config.h defines and replace with - unrealircd.conf lines, ex ADMINCHAT, REMOTE_REHASH -* Documentation documentation AND DOCUMENTATION Assigned to DrBin: ------------------ @@ -39,18 +32,16 @@ Assigned to DrBin: (from irc2.10.3) * CTCP flood protection(?) * A /who flag system, like bahamut's -* Something like bahamut/hybrids P:line system where you can specify - which IPs can you a specific port, maybe port specific passwords too? -* add -SIGTERM support, /restarts on SIGTERM * Recode dynconf and all the other new confs * Make proxy scanner scan port 23 also (postponed) * #define for auto oflag +H * Port to MacOS 7-9, 68k architecture and PPC * Port to BeOS -* +N (no nickname changes chmode) -* Chmodes in /list possbility -* Make cached MOTDs more memory friendly (dynamic allocation) * Fix up the flag and proto system -* Make a is_chan_op, is_chanprot, is_chanowner all-in-one function * Split up Link (SLink) * Add Dlink (DSLink) +* Option to allow color striping of QUIT/PART msgs in +S channels +* Option to hide QUIT/PART msgs in +c channels (if it has color) or in +m channels (if not +v) + + +----------------------------------------------------- diff --git a/Unreal.nfo b/Unreal.nfo index ab7a99f21..83b068476 100644 --- a/Unreal.nfo +++ b/Unreal.nfo @@ -1,14 +1,13 @@ =============================================== -= UnrealIRCd v3.1 = += UnrealIRCd v3.1.1 = =============================================== Was brought to you by: * Stskeeps - * codemastr - * DrBin + * codemastr + * DrBin Precenses on the Internet: - * http://unreal.tspre.org or http://unreal.sourceforge.net - * ftp://unreal.sourceforge.net/pub/unreal + * http://www.unrealircd.com CVS: To get anonymous access: (read only) diff --git a/devel/new.plines b/devel/new.plines index 022041db3..26a24bec2 100644 --- a/devel/new.plines +++ b/devel/new.plines @@ -21,7 +21,9 @@ P:ip:flags:password1,password2,password3:port | R = ONLY allow our remote admin connections | (may only be on a P:line of its own) | J = Clients that connect here are counted as Java(Confroomhack) + | s = Makes this a SSL port | * = CS + | | \--- IP to bind to, * = INADDR_ANY (all interfaces) diff --git a/doc/example.conf b/doc/example.conf index 754ef8f61..5ce9e90f1 100644 --- a/doc/example.conf +++ b/doc/example.conf @@ -1,481 +1,522 @@ -# -# IRC - Internet Relay Chat, doc/example.conf -# Copyright (C) 1994, Helen Rose -# $Id$ -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 1, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -# This is an example configuration file for the Unreal3.0-Morrican -# and higher IRC servers. -# -# You only need an ircd.conf (IRC server configuration file) if you are -# running an IRC server. If you are running a standalone client this file -# is not necessary. -# -# This file will explain the various lines in the IRC server -# configuration file. Not all lines are mandatory. You can check to make -# sure that your configuration file is correct by using the program -# "chkconf", provided in the server distribution (and when you do "make -# install" this program will be installed in the same directory as the irc -# server). -# -# This document modified for use by with the Unreal3.0 IRCD -# -# -# The options for whether a line is needed or not are: -# MANDATORY: you absolutely MUST have this line -# NETWORKED: you must have this line if you are connecting this irc -# server to any other server (servers can run standalone). -# SUGGESTED: it is highly suggested that you use this line -# OPTIONAL: it's completely up to you whether to define this or not -# DISCOURAGED: you really really should not use this line if at all -# possible. -# OBSOLETE: an old or out of date line that isn't needed. -# -# MANDATORY lines are absolute *musts*, that is, if you do not have this -# line then your server will not work properly. SUGGESTED lines are -# close-to-mandatory (that is, the server will run without it, but you are -# highly encouraged to use these lines). -# -# Note that "*" in a field indicates an "unused" field. -# -# -# ======================================================================== -# NOTE! this entire configuration file is read UPSIDE-DOWN! So if you have -# to put something in a specific order (for example, client-connection -# lines), put them in reverse order! -# ======================================================================== -# -# -# M: [MANDATORY]. This line sets your server's name, description, port -# number, and IP address to bind to. Fields, in order, are: -# -# If you are compiling this server for use on dalnet, port number 7000 -# as the default is recommended. If you leave IP address field blank or -# *, it defaults to binding all local IP addresses on the machine. -# -# M:hostname:IP:Description Of Your Server:7000 -# -M:server.my.net:*:My IRC Server:7000 -# -# A: [MANDATORY]. This line lists your administrative information -# (contact address, etc). To view this information, /admin (server) will -# show it to you. -# -# The A: line has no set information, in fact, you can put arbitrary text -# in there if you wish (it is encouraged that you put at *least* a contact -# address for a person responsible for the irc server, however) -# -A:Generic Internet Access:Admin John Doe:jdoe@generic.com -# -# Y: [SUGGESTED]. These lines define connection classes. Connection -# classes allow you to fine-tune your client and server connections. It is -# suggested that clients and servers be placed in seperate classes, and if -# you have lots of server connections (if you do have lots of servers you -# shouldn't be reading this file :-) each set of servers (defined -# arbitrarily by you) should have its own class. If you have clients -# coming in from lots of different sites, you may want to seperate them -# out into classes. For instance, you may want to put local users in one -# class, with remote users in another class. -# -# The class numbers are not arbitrary. In auto-connecting servers -- that -# is, servers that you have a port number (e.g. 6667) on the end of the C: -# line (see below) the higher the number the higher the priority in -# auto-connecting. -# -# The fields in order are: class number, ping frequency (in seconds), -# connect frequency (in seconds), maximum number of links (used for -# auto-connecting, and for limiting the number of clients in that class), -# and sendq (this overrides any value set in include/config.h for #define -# MAXSENDQLENGTH). -# -# Note that it is a good idea to have ping frequency the same at both ends -# of the link. -# -# in this case, connect-frequency is 0 indicating that this is a client -# class (servers never connect to clients, it is the other way around). -Y:1:90:0:20:100000 -# -# These are the recommended server Y:lines for connecting to dalnet. -# In addition to these you should have at *least* one client class, and one -# oper class (see O:lines). By convention on dalnet, these are usually -# numbered from 5 to 10. -# -# Class 50 - Hub to hub, autoconnect -Y:50:90:60:1:4000000 -# -# Class 51 - Hub to hub, no autoconnect -Y:51:90:60:0:4000000 -# -# Class 30 - Hub to US leaf -Y:30:90:0:0:3500000 -# -# Class 32 - Hub to EU leaf -Y:32:180:0:0:3500000 -# -# Class 34 - Hub to AU leaf -Y:34:300:0:0:3500000 -# -# Class 40 - US leaf to hub, autoconnect -Y:40:90:90:1:3500000 -# -# Class 41 - US leaf to hub, no autoconnect -Y:41:90:90:0:3500000 -# -# Class 42 - EU leaf hub -Y:42:180:90:1:3500000 -# -# Class 44 - AU leaf to hub -Y:44:300:120:1:3500000 -# -# I: [MANDATORY]. The I: lines are client-authorization lines. Without -# these lines, no clients will be able to connect to your server. -# Wildcards ("*") are permitted. Passwords are also permitted (clients can -# be configured to send passwords). -# -# Ident (for more information on this, see rfc1413) can also be used by -# placing a @ in the appropriate fields. -# -# Fields are as follows: -# I:IP-address-mask:optional password:domain-mask::connection class (opt) -# -# With a password..... This will allow anyone from anywhere to connect -# as long as they know the password ("foobar"). Note listing this I: line -# first, it will be read *last*, meaning it is the "fall-through". That -# is, anyone who doesn't match the I: lines listed below must know the -# password ("foobar") to connect. -# -I:*@*:foobar:*@*::1 -# This is a standard vanilla I: line which will permit anyone with an IP -# address starting with 205.133 OR with a hostname ending in -# .toledolink.com to connect to the server. NOTE, the ircd matches on the -# *right-most* match, so if I connect as rmiller@glass.toledolink.com -# (which is rmiller@205.133.127.8) I will show up on irc as -# rmiller@glass.toledolink.com since that is the first match it found. -# (Even though the second match is valid). -I:205.133.*::*.toledolink.com::1 -# -# using ident -I:*@205.133.*::*@*.toledolink.com::1 -# and you can even specify just certain usernames running ident (as long -# as the client's site is running the ident daemon): -I:NOMATCH::rmiller@glass.toledolink.com::1 -# putting NOMATCH in the first field will stop the ircd from matching -# automatically against the IP address and it will force the server to -# match against the hostname. (the "NOMATCH" string is not mandatory, you -# can use any arbitrary text in the first field). -I:*@*:ONE:*@*::1 -# putting the ONE in the password field makes it so that only 1 user matching -# that host or IP can connect through that I:line. -# -# -# O: [OPTIONAL]. These lines define operator access. You do not need to -# have an operator to run a server. A well configured leaf site should not -# need an operator online, if it's connections are well defined, the irc -# administrator can use kill -HUP on the ircd to reload the configuration -# file. -# The fields are as follows: -# O:hostname (ident "@" permitted):password:NickName:AccessFlags:class -# if the person in "NickName" is not coming from the hostname defined in -# the first field then the person will get the error message "No O: lines -# for your host". -# NOTE that since Crypted Passwords are defined by default in -# include/config.h this text probably will not be plaintext. See -# ircd/crypt/README for more information. -# -# class is the Y:Line class you want this operator to end up in after they -# have successfully /oper'd. -# -# Access flags may be left blank, or * to give full access rights. Flags -# are in the form of single characters making a string. Any combination -# of the following can be used(these are cAsE sensitive characters): -# -# r = access to /rehash server -# R = access to /restart server -# D = access to /die server -# h = oper can send /help ops -# g = oper can send /globops -# w = oper can send /wallops -# l = oper can send /locops -# c = access to do local /squits and /connects -# L = access to do remote /squits and /connects -# k = access to do local /kills -# K = access to do global /kills -# b = oper can /kline users from server -# B = oper can /unkline users from server -# n = oper can send local server notices(/notice $servername message) -# G = oper can send global server notices(/notce $*.my.net message) -# S = oper can join unlimited amount of channels -# A = admin -# u = oper can set /umode +c -# f = oper can set /umode +f -# ^ = oper can set /umode +I -# e = oper can set /umode +e -# W = oper can set /umode +W -# H = oper gets auto +x on /oper -# o = local oper, flags included: rhgwlckbBnuf -# O = global oper, flags included: oRDCK -# a = services admin, access to /samode -# C = co admin -# T = tech admin -# A = admin -# N = network admin access to remote /rehash and remote /restart and a bunch more -# * = flags included: AaNCTzSHW^ - -# -# This is a plain vanilla O:line: -O:*.toledolink.com:nopassword:Russell:*:10 -# -# and this line forces ident: -O:rmiller@glass.toledolink.com:nopassword:Russell::10 -# -# This line is a generic "local operator", because of the flags, the only -# thing that really makes them global operators, is if they have the flags -# CKN set in their access flags. -# -# this line permits the nickname "jhs" with the password of "ITBites" to -# be a local operator only (be able to issue commands locally -- can /kill -# and /squit and /connect -- but *only* locally) -# -O:*.something.net:ITBites:jhs:o:10 -# -# a crypted password line (NOTE that if you have crypted passwords, *all* -# of you passwords must be crypted! In fact, if you are getting an error -# "Incorrect Password" it may well be because crypted passwords are -# defined and you have used plaintext. So my example of plaintext and -# crypted strings in the same IRC server configuration file is an -# impossibility (but it is just theoretical, which is why I explained both). -# -O:rmiller@*.toledolink.com:T0eiVgHrqeKTQ:Russell::10 -# -# U: [OPTIONAL]. This line defines the servers that IRC recognizes as being -# allowed to make various changes to the IRC environment (mode changes, for -# example), without complaining or otherwise obstructing them. For example, -# DALnet requires the following line: -U:services.my.net:*:* -# -# X: [ENCOURAGED]. This line defines the password that an operator must use -# to restart or die the server. Note that they still myst have they R and D -# flags. This is just a security precaution against accidentaly typing -# /die or /restart -# X:: -X:diepass:restartpass - -# C: [NETWORKED]. These lines define what servers your server tries to -# connect to. -# N: [NETWORKED]. These lines define what servers your server permits -# connections to be initiated from. -# C/N lines MUST be used in pairs. You cannot have one without the other. -# -# C: lines contain the following fields: -# C:remote server's hostname:passwd:remote server's name:port:conn class -# (connection class) -# N: lines contain the following fields: -# N:remote server's hostname:passwd:remote server's name:host mask:conn class -# (connection class) -# "host mask" is the number of parts in *your* hostname to mask to. For -# instance, with my servername being "csa.bu.edu", if I wanted to present -# my servername to be "*.bu.edu" I would have a host-mask portion of "1". -# -# it is *strongly* advised that your C/N line passwords be different for -# security's sake. -# -# ident is allowed in the server's hostname part of the field. -# these lines tell the server to automatically (note the port number, that -# means automatic connection) connect to server2.my.net: -C:foobar@server2.my.net:bigspark:server2.my.net:7000:32 -N:foobar@server2.my.net:bigalpha:server2.my.net::32 -# -# This server's connection lines are more vanilla, masking the host to -# *.toledolink.com (as described above): -C:*.my.net:camelsrk00l:*.my.net::32 -N:*.my.net:andsoarellamas:*.my.net:1:32 -# -# K: [OPTIONAL]. These lines define user@host patterns to be banned from -# this particular server (with an optional time field). Note that K: lines -# are *not* global, and if you ban a user they can still use any other IRC -# server (unless they have specifically been banned there as well). -# -# The time field (same as reason) is only used if you #define -# TIMED_KLINES in config.h, and even then they are discouraged. -# -# the fields are defined as: -# K:hostmask:reason:username -# wildcards are permitted in any one of the fields, in other words, you can -# K:*::* if you wanted (but your server wouldn't be used much ;-) -# -# Spaces are permitted in the reason field (you don't have to use _). -# The /stats command has been modified to replace all spaces with _'s when -# doing a /stats k. K:lines also allows you to specify a file to play to the -# user when they are K:lined. To use this feature the reason must be in the -# format of |filename. the filename must be kc.anythinghere, this is to prevent -# the sending of text files such as your ircd.conf. -# -# This K: line bans the username "hrose" (the wildcards are used to make -# sure that any ident-checking character will match) on any machine from -# the University of Boston. -K:*.bu.edu:Hacking #UnrealIRCD:*hrose* -# -# This K: line bans any users from acs*.bu.edu between the hours of 8am -# and 12pm and 1pm and 5pm (the time is always the server's local time). -# Time-based K-lines such as this require TIMED_KLINES in config.h to be -# #defined. -K:acs*.bu.edu:0800-1200,1300-1700:* -# Note that 24 hour time is used (no "AM" or "PM"). -# This K: line bans all *.foobar.com users and will play the file |kc.flooding -# to the user as the reason. -K:*.foobar.com:|kc.flooding:* -# -# E: [OPTIONAL]. This allows kline exceptions, even if a person matches -# a K:line or /kline they are still allowed to connect. -# -# The fields are as follows -# E:hostmask:reason:usermask -# -E:foo.bar.com:Oper on this server:*john21* -# -# -# q: [DISCOURAGED]. These lines "quarantine" specified servers. Because -# of the way they operates, the same q: lines MUST be installed by -# everyone or the net will keep breaking. I CANNOT EMPHASIZE THIS ENOUGH. -# Do NOT use q: lines lightly! -# -# This is NOT a nick q-line, if you wish to quarantine a NICK, see below. -# -# The fields are as follows: -# q:*:reason why quarantine is in place:servername -# -q::this server is too slow and lags the net:cm5.eng.umd.edu -# -# Q: [OPTIONAL]. Different from the above type of q: line, these lines -# prevent users on your server from picking certain nicks. This is useful -# if your network has 'reserved' nicknames that should not be taken by -# normal users. Note the difference in capitalization and BE CAREFUL! -# -# The fields are as follows: -# Q:*:reason why quarantine is in place:nickname -# -# For example, You might want to use the following lines: -Q::Reserved for services:ChanServ -Q::Reserved for services:NickServ -Q::Reserved for services:MemoServ -Q::Reserved for services:OperServ -Q::Reserved for services:HelpServ -Q::Reserved for services:StatServ -Q::Reserved for operators:IRCop -Q::Reserved for operators:*Oper* -Q::Reserved for administrators:Admin* -# -# -# T: [OPTIONAL]. These allow you to specify different MOTD and RULES files -# based on a users host. This is made so you can have MOTDs in different -# languages so all users can see the MOTD and understand it. -# -# The fields are as follows: -# T:host:motdfile:rulesfile -# -# T:*.fr:french.motd:french.rules -# -# -# e: [OPTIONAL]. These lines allow you to specify a host which will not -# be scanned by the proxy scanner when they connect. This is made so you -# can allow some open proxys to connect while still killing others. Make -# sure you use an IP and not a host for this line or it will not work. -# NOTE: These are not the same as E:lines. -# -# The fields are as follows: -# e:IP:*:* -# -# e:123.123.123:*:* -# -# -# Z: [DISCOURAGED]. These block ALL incoming connections from a certain -# IP address mask. They can stop users who log on and issue the SERVER -# command a couple of times just to annoy irc ops. They are more -# powerful that K-lines because they can stop users before they've had a -# chance to register. This works on servers, SO BE VERY CAREFUL WITH -# YOUR Z-LINE MASKS. Z-lines are a LAST RESORT. They are much too -# dangerous and powerful to be using them instead of K-lines and akills. -# -# NOTE 1: Z-lines do NOT work on host names! Only IP addresses. -# NOTE 2: Z-lines are part of /stats k. -# NOTE 3: The :* at the end is REQUIRED. Not using it will cause both -# ircd and chkconf to segfault without saying why. -# -# Syntax: -# Z:IP mask:reason for zapping:* -Z:127.0.0.1:Please don't log on from the local machine:* -# -# L: [OPTIONAL]. These lines "Leaf" specified servers. They are only -# useful if you are a non-leaf site yourself. There are two ways you can -# use L: lines. The first will limit one particular site to a particular -# tree depth (including 0, which would mean the server has to connect with -# no servers linked behind it otherwise the connection will fail). The -# second will allow you to be selective about which other servers you wish -# the connecting server to behave as a leaf towards. -# -# The fields are as follows: -# L:disallow connections to this hostmask::server name:depth -# For example, this will force kaja.gi.alaska.edu to connect only as a -# leaf (if it is not a leaf, the link will be dropped): -L:::kaja.gi.alaska.edu -# This line will force cm5.eng.umd.edu to have a depth of only 1 below it -# (that is, it is allowed to have only leaves connected to it): -L:::cm5.eng.umd.edu:1 -# -# This line will prohibit anything matching *.edu to be connected behind -# any server matching *.au: -L:*.edu::*.au -# -# H: [OPTIONAL]. These lines define who you permit to act as a "hub" to -# you (that is, who you permit to connect non-leafed servers to you). -# -# the first field may use wildcards, the third field *must* be an exact -# match for a server's name (NOT a server's hostname, if they differ, the -# server's name must be used). If the servername is a wildcard (e.g. *.au) -# that is an acceptable name for the third field. -# -# The fields are as follows: -# H:servers which are permitted entry::hub server -# -# Example, permit server.my.net to allow any servers behind it to -# connect: -H:*::server2.my.net -# -# Example, permit irc-2.mit.edu to allow any MIT servers behind it to -# connect: -H:*.mit.edu::irc-2.mit.edu -# -# P: [OPTIONAL]. This field allows the server to listen on various ports -# (other than 7000) for connections. Any internet domain port that is -# below 1024 means the ircd has to be run from inetd. The server can -# listen to ports in the UNIX domain or the internet domain. If you wish -# to create a port in the UNIX domain you must compile with UNIXPORT -# defined in include/config.h. If you are permitting connections to a -# seperate port, you can control access to that port by the host field. -# -# You can now bind internet ports to specific IP interface devices. To do -# this put the IP address of the interface in the host field. To bind to -# all interfaces, leave empty or put * in. -# -# The fields are as follows:: -# P:IP# or UNIX socket file:*:*:port number -# for example, an internet domain socket on port 6665 for the local -# computer -P:127.0.0.1:*:*:6665 -# -# This line is an example of a UNIX domain socket in /tmp -P:/tmp/.ircd:*:*:6666 - +# +# IRC - Internet Relay Chat, doc/example.conf +# Copyright (C) 1994, Helen Rose +# $Id$ +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 1, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# This is an example configuration file for the Unreal3.0-Morrican +# and higher IRC servers. +# +# You only need an ircd.conf (IRC server configuration file) if you are +# running an IRC server. If you are running a standalone client this file +# is not necessary. +# +# This file will explain the various lines in the IRC server +# configuration file. Not all lines are mandatory. You can check to make +# sure that your configuration file is correct by using the program +# "chkconf", provided in the server distribution (and when you do "make +# install" this program will be installed in the same directory as the irc +# server). +# +# This document modified for use by with the Unreal3.0 IRCD +# +# +# The options for whether a line is needed or not are: +# MANDATORY: you absolutely MUST have this line +# NETWORKED: you must have this line if you are connecting this irc +# server to any other server (servers can run standalone). +# SUGGESTED: it is highly suggested that you use this line +# OPTIONAL: it's completely up to you whether to define this or not +# DISCOURAGED: you really really should not use this line if at all +# possible. +# OBSOLETE: an old or out of date line that isn't needed. +# +# MANDATORY lines are absolute *musts*, that is, if you do not have this +# line then your server will not work properly. SUGGESTED lines are +# close-to-mandatory (that is, the server will run without it, but you are +# highly encouraged to use these lines). +# +# Note that "*" in a field indicates an "unused" field. +# +# +# ======================================================================== +# NOTE! this entire configuration file is read UPSIDE-DOWN! So if you have +# to put something in a specific order (for example, client-connection +# lines), put them in reverse order! +# ======================================================================== +# +# +# M: [MANDATORY]. This line sets your server's name, description, port +# number, and IP address to bind to. Fields, in order, are: +# +# If you leave IP address field blank or +# *, it defaults to binding all local IP addresses on the machine. +# +# M:hostname:IP:Description Of Your Server:port:NS +# +# NS is a new feature in Unreal3.1. It is optional but it is recommended. +# Every server on the network must have a completely unique NS. This number +# will be used to identify the server. +# +M:server.my.net:*:My IRC Server:6667:34 +# +# A: [MANDATORY]. This line lists your administrative information +# (contact address, etc). To view this information, /admin (server) will +# show it to you. +# +# The A: line has no set information, in fact, you can put arbitrary text +# in there if you wish (it is encouraged that you put at *least* a contact +# address for a person responsible for the irc server, however) +# +A:Generic Internet Access:Admin John Doe:jdoe@generic.com +# +# Y: [SUGGESTED]. These lines define connection classes. Connection +# classes allow you to fine-tune your client and server connections. It is +# suggested that clients and servers be placed in seperate classes, and if +# you have lots of server connections (if you do have lots of servers you +# shouldn't be reading this file :-) each set of servers (defined +# arbitrarily by you) should have its own class. If you have clients +# coming in from lots of different sites, you may want to seperate them +# out into classes. For instance, you may want to put local users in one +# class, with remote users in another class. +# +# The class numbers are not arbitrary. In auto-connecting servers -- that +# is, servers that you have a port number (e.g. 6667) on the end of the C: +# line (see below) the higher the number the higher the priority in +# auto-connecting. +# +# The fields in order are: class number, ping frequency (in seconds), +# connect frequency (in seconds), maximum number of links (used for +# auto-connecting, and for limiting the number of clients in that class), +# and sendq (this overrides any value set in include/config.h for #define +# MAXSENDQLENGTH). +# +# Note that it is a good idea to have ping frequency the same at both ends +# of the link. +# +# in this case, connect-frequency is 0 indicating that this is a client +# class (servers never connect to clients, it is the other way around). +Y:1:90:0:20:100000 +# +# These are the recommended server Y:lines for connecting to dalnet. +# In addition to these you should have at *least* one client class, and one +# oper class (see O:lines). By convention on dalnet, these are usually +# numbered from 5 to 10. +# +# Class 50 - Hub to hub, autoconnect +Y:50:90:60:1:4000000 +# +# Class 51 - Hub to hub, no autoconnect +Y:51:90:60:0:4000000 +# +# Class 30 - Hub to US leaf +Y:30:90:0:0:3500000 +# +# Class 32 - Hub to EU leaf +Y:32:180:0:0:3500000 +# +# Class 34 - Hub to AU leaf +Y:34:300:0:0:3500000 +# +# Class 40 - US leaf to hub, autoconnect +Y:40:90:90:1:3500000 +# +# Class 41 - US leaf to hub, no autoconnect +Y:41:90:90:0:3500000 +# +# Class 42 - EU leaf hub +Y:42:180:90:1:3500000 +# +# Class 44 - AU leaf to hub +Y:44:300:120:1:3500000 +# +# I: [MANDATORY]. The I: lines are client-authorization lines. Without +# these lines, no clients will be able to connect to your server. +# Wildcards ("*") are permitted. Passwords are also permitted (clients can +# be configured to send passwords). +# +# Ident (for more information on this, see rfc1413) can also be used by +# placing a @ in the appropriate fields. +# +# Fields are as follows: +# I:IP-address-mask:optional password:domain-mask::connection class (opt) +# +# With a password..... This will allow anyone from anywhere to connect +# as long as they know the password ("foobar"). Note listing this I: line +# first, it will be read *last*, meaning it is the "fall-through". That +# is, anyone who doesn't match the I: lines listed below must know the +# password ("foobar") to connect. +# +I:*@*:foobar:*@*::1 +# This is a standard vanilla I: line which will permit anyone with an IP +# address starting with 205.133 OR with a hostname ending in +# .toledolink.com to connect to the server. NOTE, the ircd matches on the +# *right-most* match, so if I connect as rmiller@glass.toledolink.com +# (which is rmiller@205.133.127.8) I will show up on irc as +# rmiller@glass.toledolink.com since that is the first match it found. +# (Even though the second match is valid). +I:205.133.*::*.toledolink.com::1 +# +# using ident +I:*@205.133.*::*@*.toledolink.com::1 +# and you can even specify just certain usernames running ident (as long +# as the client's site is running the ident daemon): +I:NOMATCH::rmiller@glass.toledolink.com::1 +# putting NOMATCH in the first field will stop the ircd from matching +# automatically against the IP address and it will force the server to +# match against the hostname. (the "NOMATCH" string is not mandatory, you +# can use any arbitrary text in the first field). +I:*@*:ONE:*@*::1 +# putting the ONE in the password field makes it so that only 1 user matching +# that host or IP can connect through that I:line. +# +# +# O: [OPTIONAL]. These lines define operator access. You do not need to +# have an operator to run a server. A well configured leaf site should not +# need an operator online, if it's connections are well defined, the irc +# administrator can use kill -HUP on the ircd to reload the configuration +# file. +# The fields are as follows: +# O:hostname (ident "@" permitted):password:NickName:AccessFlags:class +# if the person in "NickName" is not coming from the hostname defined in +# the first field then the person will get the error message "No O: lines +# for your host". +# NOTE that since Crypted Passwords are defined by default in +# include/config.h this text probably will not be plaintext. See +# ircd/crypt/README for more information. +# +# class is the Y:Line class you want this operator to end up in after they +# have successfully /oper'd. +# +# Access flags may be left blank, or * to give full access rights. Flags +# are in the form of single characters making a string. Any combination +# of the following can be used(these are cAsE sensitive characters): +# +# r = access to /rehash server +# R = access to /restart server +# D = access to /die server +# h = oper can send /help ops +# g = oper can send /globops +# w = oper can send /wallops +# l = oper can send /locops +# c = access to do local /squits and /connects +# L = access to do remote /squits and /connects +# k = access to do local /kills +# K = access to do global /kills +# b = oper can /kline users from server +# B = oper can /unkline users from server +# n = oper can send local server notices(/notice $servername message) +# G = oper can send global server notices(/notce $*.my.net message) +# A = admin +# u = oper can set /umode +c +# f = oper can set /umode +f +# ^ = oper can set /umode +I +# e = oper can set /umode +e +# W = oper can set /umode +W +# H = oper gets auto +x on /oper +# o = local oper, flags included: rhgwlckbBnuf +# O = global oper, flags included: oRDCK +# a = services admin, access to /samode +# C = co admin +# T = tech admin +# A = admin +# N = network admin access to remote /rehash and remote /restart and a bunch more +# * = flags included: AaNCTzSHW^ + +# +# This is a plain vanilla O:line: +O:*.toledolink.com:nopassword:Russell:*:10 +# +# and this line forces ident: +O:rmiller@glass.toledolink.com:nopassword:Russell::10 +# +# This line is a generic "local operator", because of the flags, the only +# thing that really makes them global operators, is if they have the flags +# CKN set in their access flags. +# +# this line permits the nickname "jhs" with the password of "ITBites" to +# be a local operator only (be able to issue commands locally -- can /kill +# and /squit and /connect -- but *only* locally) +# +O:*.something.net:ITBites:jhs:o:10 +# +# a crypted password line (NOTE that if you have crypted passwords, *all* +# of you passwords must be crypted! In fact, if you are getting an error +# "Incorrect Password" it may well be because crypted passwords are +# defined and you have used plaintext. So my example of plaintext and +# crypted strings in the same IRC server configuration file is an +# impossibility (but it is just theoretical, which is why I explained both). +# +O:rmiller@*.toledolink.com:T0eiVgHrqeKTQ:Russell::10 +# +# U: [OPTIONAL]. This line defines the servers that IRC recognizes as being +# allowed to make various changes to the IRC environment (mode changes, for +# example), without complaining or otherwise obstructing them. For example, +# DALnet requires the following line: +U:services.my.net:*:* +# +# X: [ENCOURAGED]. This line defines the password that an operator must use +# to restart or die the server. Note that they still myst have they R and D +# flags. This is just a security precaution against accidentaly typing +# /die or /restart +# X:: +X:diepass:restartpass + +# C: [NETWORKED]. These lines define what servers your server tries to +# connect to. +# N: [NETWORKED]. These lines define what servers your server permits +# connections to be initiated from. +# C/N lines MUST be used in pairs. You cannot have one without the other. +# +# C: lines contain the following fields: +# C:remote server's hostname:passwd:remote server's name:port:conn class:options +# N: lines contain the following fields: +# N:remote server's hostname:passwd:remote server's name:host mask:conn class +# +# "host mask" is the number of parts in *your* hostname to mask to. For +# instance, with my servername being "csa.bu.edu", if I wanted to present +# my servername to be "*.bu.edu" I would have a host-mask portion of "1". +# +# it is *strongly* advised that your C/N line passwords be different for +# security's sake. +# +# ident is allowed in the server's hostname part of the field. +# The options field in a C:line is only available as of Unreal3.1.1 +# Currently the only option is S which declares the link an SSL link. +# If the other server is not compiled with SSL then the link will fail. +# +# these lines tell the server to automatically (note the port number, that +# means automatic connection) connect to server2.my.net: +C:foobar@server2.my.net:bigspark:server2.my.net:7000:32 +N:foobar@server2.my.net:bigalpha:server2.my.net::32 +# +# This server's connection lines are more vanilla, masking the host to +# *.toledolink.com (as described above): +C:*.my.net:camelsrk00l:*.my.net::32 +N:*.my.net:andsoarellamas:*.my.net:1:32 +# +# This this line makes use of the options field: +# C:*.my.net:linkme:*.my.net:6667:32:S +# N:*.my.net:linkme:*.my.net::32 +# +# K: [OPTIONAL]. These lines define user@host patterns to be banned from +# this particular server (with an optional time field). Note that K: lines +# are *not* global, and if you ban a user they can still use any other IRC +# server (unless they have specifically been banned there as well). +# +# The time field (same as reason) is only used if you #define +# TIMED_KLINES in config.h, and even then they are discouraged. +# +# the fields are defined as: +# K:hostmask:reason:username +# wildcards are permitted in any one of the fields, in other words, you can +# K:*::* if you wanted (but your server wouldn't be used much ;-) +# +# Spaces are permitted in the reason field (you don't have to use _). +# The /stats command has been modified to replace all spaces with _'s when +# doing a /stats k. K:lines also allows you to specify a file to play to the +# user when they are K:lined. To use this feature the reason must be in the +# format of |filename. the filename must be kc.anythinghere, this is to prevent +# the sending of text files such as your ircd.conf. +# +# This K: line bans the username "hrose" (the wildcards are used to make +# sure that any ident-checking character will match) on any machine from +# the University of Boston. +K:*.bu.edu:Hacking #UnrealIRCD:*hrose* +# +# This K: line bans any users from acs*.bu.edu between the hours of 8am +# and 12pm and 1pm and 5pm (the time is always the server's local time). +# Time-based K-lines such as this require TIMED_KLINES in config.h to be +# #defined. +K:acs*.bu.edu:0800-1200,1300-1700:* +# Note that 24 hour time is used (no "AM" or "PM"). +# This K: line bans all *.foobar.com users and will play the file |kc.flooding +# to the user as the reason. +K:*.foobar.com:|kc.flooding:* +# +# E: [OPTIONAL]. This allows kline exceptions, even if a person matches +# a K:line or /kline they are still allowed to connect. +# +# The fields are as follows +# E:hostmask:reason:usermask +# +E:foo.bar.com:Oper on this server:*john21* +# +# +# q: [DISCOURAGED]. These lines "quarantine" specified servers. Because +# of the way they operates, the same q: lines MUST be installed by +# everyone or the net will keep breaking. I CANNOT EMPHASIZE THIS ENOUGH. +# Do NOT use q: lines lightly! +# +# This is NOT a nick q-line, if you wish to quarantine a NICK, see below. +# +# The fields are as follows: +# q:*:reason why quarantine is in place:servername +# +q::this server is too slow and lags the net:cm5.eng.umd.edu +# +# Q: [OPTIONAL]. Different from the above type of q: line, these lines +# prevent users on your server from picking certain nicks. This is useful +# if your network has 'reserved' nicknames that should not be taken by +# normal users. Note the difference in capitalization and BE CAREFUL! +# +# The fields are as follows: +# Q:*:reason why quarantine is in place:nickname +# +# For example, You might want to use the following lines: +Q::Reserved for services:ChanServ +Q::Reserved for services:NickServ +Q::Reserved for services:MemoServ +Q::Reserved for services:OperServ +Q::Reserved for services:HelpServ +Q::Reserved for services:StatServ +Q::Reserved for operators:IRCop +Q::Reserved for operators:*Oper* +Q::Reserved for administrators:Admin* +# +# +# T: [OPTIONAL]. These allow you to specify different MOTD and RULES files +# based on a users host. This is made so you can have MOTDs in different +# languages so all users can see the MOTD and understand it. +# +# The fields are as follows: +# T:host:motdfile:rulesfile +# +# T:*.fr:french.motd:french.rules +# +# +# e: [OPTIONAL]. These lines allow you to specify a host which will not +# be scanned by the proxy scanner when they connect. This is made so you +# can allow some open proxys to connect while still killing others. Make +# sure you use an IP and not a host for this line or it will not work. +# NOTE: These are not the same as E:lines. +# +# The fields are as follows: +# e:IP:*:* +# +# e:123.123.123:*:* +# +# +# Z: [DISCOURAGED]. These block ALL incoming connections from a certain +# IP address mask. They can stop users who log on and issue the SERVER +# command a couple of times just to annoy irc ops. They are more +# powerful that K-lines because they can stop users before they've had a +# chance to register. This works on servers, SO BE VERY CAREFUL WITH +# YOUR Z-LINE MASKS. Z-lines are a LAST RESORT. They are much too +# dangerous and powerful to be using them instead of K-lines and akills. +# +# NOTE 1: Z-lines do NOT work on host names! Only IP addresses. +# NOTE 2: Z-lines are part of /stats k. +# NOTE 3: The :* at the end is REQUIRED. Not using it will cause both +# ircd and chkconf to segfault without saying why. +# +# Syntax: +# Z:IP mask:reason for zapping:* +Z:127.0.0.1:Please don't log on from the local machine:* +# +# L: [OPTIONAL]. These lines "Leaf" specified servers. They are only +# useful if you are a non-leaf site yourself. There are two ways you can +# use L: lines. The first will limit one particular site to a particular +# tree depth (including 0, which would mean the server has to connect with +# no servers linked behind it otherwise the connection will fail). The +# second will allow you to be selective about which other servers you wish +# the connecting server to behave as a leaf towards. +# +# The fields are as follows: +# L:disallow connections to this hostmask::server name:depth +# For example, this will force kaja.gi.alaska.edu to connect only as a +# leaf (if it is not a leaf, the link will be dropped): +L:::kaja.gi.alaska.edu +# This line will force cm5.eng.umd.edu to have a depth of only 1 below it +# (that is, it is allowed to have only leaves connected to it): +L:::cm5.eng.umd.edu:1 +# +# This line will prohibit anything matching *.edu to be connected behind +# any server matching *.au: +L:*.edu::*.au +# +# H: [OPTIONAL]. These lines define who you permit to act as a "hub" to +# you (that is, who you permit to connect non-leafed servers to you). +# +# the first field may use wildcards, the third field *must* be an exact +# match for a server's name (NOT a server's hostname, if they differ, the +# server's name must be used). If the servername is a wildcard (e.g. *.au) +# that is an acceptable name for the third field. +# +# The fields are as follows: +# H:servers which are permitted entry::hub server +# +# Example, permit server.my.net to allow any servers behind it to +# connect: +H:*::server2.my.net +# +# Example, permit irc-2.mit.edu to allow any MIT servers behind it to +# connect: +H:*.mit.edu::irc-2.mit.edu +# +# P: [OPTIONAL]. This field allows the server to listen on various ports +# (other than 7000) for connections. +# +# You can now bind internet ports to specific IP interface devices. To do +# this put the IP address of the interface in the host field. To bind to +# all interfaces, leave empty or put * in. +# +# P:lines can be limited to specific connections. For example you can make +# a port listen for only server connections. The currently available flags +# are: +# +# S - Server Only +# C - Client(User) Only +# J - JavaChat (for CR Java Client) +# s - Secure SSL +# * - CS flags +# +# The fields are as follows:: +# P:IP# or UNIX socket file:*:*:port number +# for example, an internet domain socket on port 6665 for the local +# computer +P:127.0.0.1:*:*:6665 +# +# Examples using flags +P:127.0.0.1:S:*:6666 +P:127.0.0.1:C:*:7000 +# +# V: [OPTIONAL]. These lines are very complex and allow you to deny a +# server from linking based on what version of Unreal they are running, +# as well as what flags the IRCd was compiled with. +# +# The fields are as follows: +# V:protocol:flags:servermask +# +# The format for the protocol field is as follows: +# >protocol - denys any protocols higher than that specified +# + +This command will only work if you are not a member of the channel and the ++K (No knocks) mode is not on, and the channel is not +i (and you are not +banned). This will send a notice to ops in the channel, about that the user +"knocked". + +Feature "SAFELIST" +------------------ + + +This note means that the user will not get disconnected when doing a /list, +as some IRC networks do + +Feature "HCN" +------------- + +This is a special feature that you activate using /protoctl +HCN, +that will cause +c notices when being oper, being in the Hybrid IRCd style + +Feature "WATCH" +--------------- + +Parameters: How many watch entries are possible + +This will ensure the server is able to do the DALnet WATCH command + + +Feature "SILENCE" +----------------- + Parameters: How many silence entries you can have + Version: unknown, ircu2.9.32 at least. + + Silence is a server side ignore. You can /silence +hostmask or + /silence +nick, to add someone to your silence list, or use /silence + -hostmask to remove it. /silence will list your 'silence list'. + you can /silence nick, to see someone elses silence list (useful for + helping someone). Silence is preferably used as a last resort as it + tends to use server CPU time. + + Syntax: + SILENCE +hostmask + SILENCE +nick + SILENCE -hostmask + SILENCE -nick + SILENCE nick + + reply: + RPL_SILELIST 217 + RPL_ENDOFSILELIST 218 + + +Feature/Modifier "MODES" +------------------------ +Parameters: How many modes with parameters you can use in one /mode buffer + + +Feature/Modifier "MAXCHANNELS" +------------------------------ +Parameters: How many channels a normal user can join (opers may have + unlimited) + +Feature/Modifier "MAXBANS" diff --git a/doc/unrealircd.doc b/doc/unrealircd.doc index 5480e767f..953e85aaa 100644 --- a/doc/unrealircd.doc +++ b/doc/unrealircd.doc @@ -1,307 +1,436 @@ - ****** UnrealIRCd v2.1.7 Documentation ****** - [ $Id$ ] - -1) About UnrealIRCd - - I started making UnrealIRCd about 1-2 months ago. (July 1999 now) - First it was called mpx2.0b13.soundforge - as I was - inspired of the 'forge' word. I quickly changed name - after I realized the IRCd had more potential. - Unreal is based off Elite2.0b13 and some of - the minor bugfixes Potvin came up with. First lemme - introduce myself. My nick is Techie/Stskeeps. I hang - out at Global-IRC.net, DALnet, DragonWings.org and so on - - Unreal is a hybrid of Elite (as I said) mixed with some - Twilight IRCd, TerraIRCd, TS4 (channel mode +h & +e) features - (IMHO TwilightIRCd is one of the best dreamforge hybrids I've seen! - Unreal is not a rip-off of other IRCds - I added a lot of features myself! - I really cannot mention some major features as I think a IRCd is a - IRCd when it has got useful commands- and people actually say mine has! - - Anyways I dunt demand donations or anything. I just do coding for fun - I treat coding like playing with toys. It makes me happy(or is it just - caffeine?;). An addy to send donations is at the Donation file in the IRCd dir - And.. I don't sweat while making features unlike some Potvin coder so dunt - send me towels;) I would be more happy if someone e-mailed me with ideas - to the IRCd.. The whole IRCd is GNU so if you want to rip off any of my ideas - You are generally welcome:) Just remember to do what's said in the Changes file! - -- So.. Enjoy this IRCd:) It may become a dream to IRCd owners as its infact - a sortof hybrid of EliteIRCd (Cite .man-pages/page1 in Elite: - EliteIRCD has become a dream to many ircd owners - -- Carsten Munk / Techie .. =) - -2) Commands (User Commands) - - *** WATCH Command *** - Watch is a new notify-type system in UnrealIRCd which is both faster - and uses less network resources than any old-style notify - system. You may add entries to your Watch list with the command - /watch +nick1 [+nick2 +nick3 ..., and the server will send - you a message when any nickname in your watch list logs on or off. - Use /watch -nick to remove a nickname from the watch list, and - just /watch to view your watch list. - The watch list DOES NOT REMAIN BETWEEN SESSIONS - you (or your - script or client) must add the nicknames to your watch list every - time you connect to an IRC server. /Watch was made in DreamForge IRCd - which UnrealIRCd in ground is based off - - *** HELPOP Command *** - HelpOp is a new system of getting IRC Server help. You type either - /HelpOp ? or /HelpOp ! - The "?" in /HelpOp means query the help system and if you get no - response you can choose '!' to send it to the Help Operators online - ------------oOo-------------- - - *** LIST Command *** - New extended /list command options are supported. To use these - features, you will likely need to prefix the LIST command with - /quote to avoid your client interpreting the command. - - Usage: /quote LIST options - - If you don't include any options, the default is to send you the - entire unfiltered list of channels. Below are the options you can - use, and what channels LIST will return when you use them. - >number List channels with more than people. - people. - C>number List channels created between now and minutes ago. - C minutes ago. - T>number List channels whose topics are older than minutes - (Ie., they have not changed in the last minutes. - T minutes. - *mask* List channels that match *mask* - !*mask* List channels that do not match *mask* - LIST defaults to sending a list of channels with 2 or more members, - so use the >0 option to get the full channel listing. - - *** PRIVMSG Command *** - PRIVMSG and NOTICE, which are used internally by the client for - /msg and /notice, in UnrealIRCd support two additional formats: - /msg @#channel will send the text to channel-ops on the - given channel only. /msg @+#channel will send the text - to both ops and voiced users on the channel. While some clients - may support these as-is, on others (such as ircII), it's necessary - to use /quote privmsg @#channel instead. It's perhaps a - good idea to add the/alias omsg /quote privmsg @$0 $1 into - your script (.ircrc) file in that case. - - **** KNOCK Command **** - /Knock is a new UnrealIRCd command which enables you to - 'knock' on a channel if it is +i and these criteria is met - - Channel is not +K (No knocks) - - Channel is not +I (No invites!) - - You're not banned! - - And you are not already there:) - - Syntax: - /Knock #Channel :Reason - - **** LICENSE Command **** - This command shows the GNU License - Which is hard-coded into the IRCd:) - Syntax: /License [optional server] - - *** SetName Command *** - /SetName is a new feature in UnrealIRCd - Which allows users to change their 'Real name' - (GECOS) directly online at IRC without reconnecting - - Syntax: - /SetName :New Real Name + *************************************** + ********* UnrealIRCd Commands ********* + *************************************** + + v2.0 + + By: + + hAtbLaDe - *** MODE Command *** - This is basically the /mode command as it has always - been on IRC. Thou in Channel mode basis it has got an - Extra feature (/mode #Channel ^ ) which reports channel - modes represented in a bitstring (may be handy, maybe not) - UnrealIRCd has got some new channel / usermodes I think you - wish to take a look at - Channel Modes Help: /HelpOp CHMODES - User modes help: /HelpOp UMODES - - *** STATSERV Command *** - This is a alias for the /msg StatServ command, - But is more secure. If the IRC network doesn't have StatServ - It will report it is down. - - Syntax: - /StatServ - *** /Credits Help *** - This command will list the credits I've created - to thank the people who has helped me with making - UnrealIRCd. Anyone who I've forgotten all my kind - thoughts go to -- Techie'99 - - Syntax: - /Credits [optional server] - - *** /DALINFO Help *** - This command will list the credits that the - Dreamforge IRCd team/the IRCd developers - from the start when IRCd got developed - - Syntax: - /DALInfo [optional server] - -3) Operator Commands - - This section is the IRCOp's only commands - area:) - These topics are available: - Note: This doesnt include Dreamforge commands - - SETHOST SETIDENT SDESC - ADCHAT NACHAT TECHAT - GLINE REMGLINE STATS - MKPASSWD SNOTES SNOTE - ADDLINE LAG RPING - ADDMOTD ADDOMOTD OPERMOTD - CHGHOST TSCTL SAJOIN - - *** ADDMOTD Command Help ***"); - This will add the text you specify to the MOTD - (the general motd - T:lines doesnt count ..) - Server Admin & Co-Admin only - - Syntax: /ADDMOTD :text - - *** ADDOMOTD Command Help *** - This will add the text you specify to the Operator MOTD - Server Admin & Co-Admin only - - Syntax: /ADDOMOTD :text - - *** OPERMOTD Command Help *** - This is a IRCop only command - shows the IRCd Operator MOTD - Syntax: /OperMotd - - *** SETHOST Command Help *** - This command is so you can change your - Virtual host (hiddenhost) to everything you want to - Except special characters;). - - Syntax: - /SetHost ) - - Example: - /Sethost ircaddicts.org - - *** SETIDENT Command Help *** - With this command you can change your - ident (username). - - Syntax: - /SetIdent - - Example: - /SetIdent root - - *** SDesc Command help *** - NOTE: This is a Server Admin/Co Admin only command - With this command you can change your Server Info Line - Without having to squit and reconnect. - Syntax: /SDesc :New description - Example: /SDesc :If you belong to me.. - - *** AdChat Command Help *** - This command sends to all Admins online (IsAdmin) - Only for Admins. This is a ChatOps style command - Syntax: /AdChat : - Example: /AdChat :Hey guys! - - *** NAChat Command Help *** - This command sends to all NetAdmins & TechAdmins online - Only for Net/Techadmins. This is a ChatOps style command - Syntax: /NAChat : - Example: /NAChat :Hey guys! - - *** Stats Command Help *** - UnrealIRCd has got a extension called /Stats G - Which will list the current G:Lines - Syntax: /Stats G - - *** TEChat Command Help *** - This command sends to all TechAdmins online - Only for Net/Techadmins. This is a ChatOps style command - Syntax: /TEChat : - Example: /TEChat :Hey guys! - - *** CHGHOST Command help *** - This command makes you able to change other people's virtual hostname - - IRCop only. - Syntax: /CHGHOST - - *** TSCTL Command Help ***"); - This is a highly advanced command"); - Syntax:"); - /TSCTL OFFSET +|-