aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules.c
Commit message (Expand)AuthorAgeFilesLines
* - Remove temporary message (Unreal3.2.1) regarding cloaking modules.Gravatar Bram Matthys2011-07-061-3/+0
* typoGravatar Bram Matthys2010-11-171-1/+1
* - Windows: When trying to load a module (DLL) windows can give us the••• mysterious error 'The specified module could not be found' even though the file exists. This usually means that it depends on another DLL, but apparently Microsoft decided not to mention that in the error message. We now append some small text when such an error happens, saying that it could be because of a missing dependency. Reported by Phil. Gravatar Bram Matthys2010-11-171-0/+4
* - Throw out old USE_POLL code which 1. has no buildsystem support and 2. has ...•••- Removed extraneous apostrophe from a module loader error message. Gravatar binki2010-06-151-1/+1
* linking bug & ipv6 thing (the latter is completely untested):•••- IPv6: it seems some recent Linux dists decided to make IPv6 sockets IPv6-only, instead of accepting both IPv4&IPv6 on them like until now. FreeBSD (and other *BSD's) already did that move a few years back, requiring server admins to sysctl. We now make use of a new option to explicitly disable "IPv6-only". This should work fine on Linux. Whether it provides a complete solution for FreeBSD, I don't know, testing is welcome! In theory setting net.inet6.ip6.v6only to 0 should no longer be needed, but you might still need to enable ipv6_ipv4mapping. - Fix stupid issue where current CVS would no longer link TO an earlier Unreal server (eg: outgoing connect to a 3.2.8 hub). Reported by ohnobinki (#0003901). Gravatar Bram Matthys2010-04-251-1/+3
* PROTOCTL EAUTH/SERVERS/new linking protocol:•••- Server protocol: added PROTOCTL EATH=servername, which allows us to authenticate the server very early in the handshake process. That way, certain commands and PROTOCTL tokens can 'trust' the server. See doc/technical/protoctl.txt for details. - Server protocol: between new Unreal servers we now do the handshake a little bit different, so it waits with sending the SERVER command until the first PROTOCTL is received. Needed for next. - Server protocol: added PROTOCTL SERVERS=1,2,3,4,etc by which a server can inform the other server which servers (server numeric, actually) it has linked. See doc/technical/protoctl.txt and next for details. - When our server was trying to link to some server, and at the same time another server was also trying to link with us, this would lead to a server collision: the server would link (twice) ok at first, but then a second later or so both would quit with 'Server Exists' with quite some mess as a result. This isn't unique to Unreal, btw. This happened more often when you had a low connfreq in your link blocks (aka: quick reconnects), or had multiple hubs on autoconnect (with same connfreq), or when you (re)started all servers at the same time. This should now be solved by a new server handshake design, which detects this race condition and solves it by closing one of the two (or more) connections to avoid the issue. This also means that it should now be safe to have multiple hubs with low connfreq's (eg: 10s) without risking that your network falls apart. This new server handshake (protocol updates, etc) was actually quite some work, especially for something that only happened sporadically. I felt it was needed though, because (re)linking stability is extremely important. This new feature/design/fix requires extensive testing. This feature can be disabled by: set { new-linking-protocol 0; }; Gravatar Bram Matthys2010-01-011-1/+5
* - Fixed crash on Linux when a module has been updated and then reloaded.••• From now on we just copy to a tempfile, and never hardlink. (bug #???????). Gravatar Bram Matthys2009-04-221-4/+1
* - Win32 compile fixes.Gravatar Bram Matthys2008-12-171-1/+1
* - #0002475 reported by aquanight on detecting \'s in module filenames on••• win32 and not do ./module for it [Backport] Gravatar Bram Matthys2008-08-191-0/+4
* - Channelmode modules without parameters (like: +X, but not: +X 1) no longer••• have to be permanent. Channelmodes with parameters still have to be PERM however, and there are currently no plans to change it. Gravatar Bram Matthys2007-11-011-0/+9
* #0003368 patched by Stealth giving users access to do /module on remote••• servers Gravatar stskeeps2007-06-141-4/+3
* - Post-3.2.5 CVS-only bug: Fixed spamfilter on user target not working proper...••• changing nicks (was still trying to match on the old nick), reported by vonitsanet (#0003143). Gravatar Bram Matthys2006-12-121-1/+1
* - /INVITE's from people on the silence list are now (silently) ignored, sugge...••• White_Magic (#0002478). Gravatar Bram Matthys2006-11-121-1/+2
* - loadmodule now reports proper errors when the actual file can't be found, i...••• it on the temp file, reported in #3015. (aquanight backport) Gravatar Bram Matthys2006-11-111-2/+13
* - [internal] Made a spamfilter_build_user_string function that will build the...••• user target string (nick!user@host:info), insteaf of doing it at like 5 places. - Spamfilter target 'u' (user): the host field (nick!user@HOST:realname) is now escaped with brackets if it's an IPv6 address, eg: blah!blah@[1:2:3:4:5:6:7:8]:hello, reported by aquanight and others (#0003010). Gravatar Bram Matthys2006-11-041-1/+2
* - Added 'real' aliases, this are aliases that map to real commands, so you ca...••• map the command '/BLAH 5' to 'NICK idiot5'. More info in docs on alias block. - Modulized: badwords system (src/badwords.c is now gone) and StripColors/StripControlCodes to m_message, multiple netsynch routines to m_server, send_list to m_list, a certain mode routine to m_svsmode, all /MSG IRC.. webtv stuff to src/modules/webtv.c which is compiled with m_message. This means another ~1500 lines of code are now in modules (and thus can be upgraded on the fly), which brings the total of modulized lines at 32K. Gravatar Bram Matthys2006-05-211-3/+15
* - Module coders: For cloaking, added a new callback type CALLBACKTYPE_CLOAK_E...••• CALLBACKTYPE_CLOAK). This passes 'aClient *sptr, char *host' instead of only 'char *host' to the cloaking module, which can be useful if you need to cloak on something other than IP/host. Suggested by fez (#0002275). Module may still provide only CALLBACKTYPE_CLOAK though, in fact this is what the official cloaking module does. So no updating of cloaking modules needed. A side-effect of this "extra cloaking" callback is that we needed to change make_virthost() which now has an extra parameter in front, and another side-effect is that calling the CALLBACKTYPE_CLOAK may not work since only *_EX might be available. To my knowledge there are very few modules (only 1 I know) that will have a problem due to this, so sounds like an affordable tradeoff. Gravatar Bram Matthys2006-04-291-1/+1
* - Added compiler version checking to "module binary incompatability"-check. T...••• some more odd problems from people (eg: people switching from GCC 3.x to 4.x and wondering why they are crashing or getting other errors). Gravatar Bram Matthys2006-04-281-1/+39
* - CGI:IRC: gzlines, zlines, throttling, and unknown connect floods are now al...••• clients connecting trough a CGI:IRC gateway that is in cgiirc { }. This might also fix a bug where (g)zlines were not applied to CGI:IRC clients, reported by devil (#0002850). Gravatar Bram Matthys2006-03-141-1/+2
* - Fixes for an amd64 crash problem, reported by Peter Laur (OpenBSD.se).•••- Redid some net synching code to make it more efficient (#2716). - Fixed spamfilter crash problem: the action 'viruschan' is now no longer incompatible with target 'user'. Reported by Monk (#0002570). Gravatar Bram Matthys2006-01-061-2/+3
* - Fixed OpenBSD crash on /REHASH. Thanks to Peter Laur (OpenBSD.se) for provi...••• a shell account to trace this issue down. Gravatar Bram Matthys2005-11-041-0/+7
* - Removed all old resolver code and switched over to c-ares (+our caching rou...••• This should get rid of some annoying untracable (and usually rare) crashbugs in the old resolver. Besides that, it makes things look more clean and understandable. This should be the fix for the following bugids (all the same issue): #2499, #2551, #2558, #2559, #2603, #2642, #2502, #2501, #2618, #2616. Feedback and testing is very much welcomed (syzop@unrealircd.com). Gravatar Bram Matthys2005-10-101-0/+2
* - Added 'warn' target which is basically the same as 'block' except it does n...••• It also sends a numeric to the user saying the command has been processed, but a copy has been sent to ircops. I feel this is a good idea for privacy reasons (anti-spy), though I don't know how users will react to this. If you are using this on your network and get users bothering you about it (or before that ;p), it's probably a good idea to explain it somewhere on your site or FAQ :). Example usage: /spamfilter add p warn - Testing_mirc_decode_filter \$decode\(.*\) [WARNING] The numeric text is likely to change in the next few weeks (early-cvs-commit). - If a class block was removed and any other blocks would be referencing the class block (such as: allow::class, oper::class, link::class), then this would cause a crash. Reported by Mike_ (#0002646). Gravatar Bram Matthys2005-09-251-2/+2
* - Moved all TKL code and register_user to modules (using efuncs), that means ...••• and 2000 lines total that can be hotfixed if needed ;). The effort involved in moving all this sucks a lot though :/. This might need some more testing to make sure it doesn't break anything. - Updated support OS list in documentation. Gravatar Bram Matthys2005-06-051-20/+39
* - Fixed a TKL crash on incorrect *line, reported by nanookles1234 (#0002524).•••- Redid include dependencies in Makefile, this makes things safer because on any .h change it would force a recompile of all files, but it could mean things will be a bit slower for us coders unless we tweak it later on. - Changed whois a bit to print less useless results. - Added several indicators to the "detect binary incompatible modules"-system such as detecting of a ziplinks module on non-ziplinks (on windows this is ok however), nospoof module on a a server without nospoof server, etc. Hopefully this will help some people preventing odd crashes because they did not recompile or (re)install modules properly. - Added './unreal backtrace', so far this has only been tested on Linux and FreeBSD. - Fixed a bug making ./Config not load the previously stored settings on Solaris 10 and probably other Unixes, reported by lion-o (#0002474). Gravatar Bram Matthys2005-05-261-11/+3
* - Win32 crash fixes due to modulizingGravatar Bram Matthys2005-02-041-1/+1
* dumdeedum.. modulized fixes (timespan <2d)Gravatar Bram Matthys2005-02-031-1/+2
* - Made m_template.c use CommandAdd() and CMD_FUNC()•••- Modulized a lot of commands and related subfunctions: NICK (750 lines), USER (200), MODE (2300), WATCH (250), JOIN (600), PART (250), MOTD (100), OPERMOTD (100), BOTMOTD (100), LUSERS (100). More will follow soon (probably including more subfunctions related to existing commands). Gravatar Bram Matthys2005-02-031-6/+210
* - Fixed dcc spamfilter problem reported by TimeFX and Deadalus (#2177, #2204).Gravatar Bram Matthys2004-12-021-2/+2
* Fixed a bug with /rehash and classes due to the config parser rewrite and Mod...Gravatar codemastr2004-11-051-21/+57
* Corrected numerous -Wall warningsGravatar codemastr2004-11-041-2/+1
* Fixed a few compile warnings, made +b apply to IPs correctlyGravatar codemastr2004-09-031-2/+1
* Rewrote the 005 system to be dynamic and added an API to manipulate itGravatar codemastr2004-09-031-0/+11
* - Fixed possible crash id /rehash'ing and a servername was just resolving (du...••• /connect or autoconnect) and was not present in the cache. Reported and traced by sh0 (#0001976). - Fixed compile bug at *NIX caused by ModuleGetErrorStr fix. Gravatar Bram Matthys2004-07-221-13/+1
* Added a missing message to ModuleGetErrorStrGravatar codemastr2004-07-221-2/+19
* - Made Mod_Version required (this should be no problem since it's done automa...•••- Added HOOKTYPE_LOG [int type, char *timebuf, char *logbuf] - Updated the release notes. Gravatar Bram Matthys2004-06-221-4/+8
* CmdoverrideAdd, DCCALLOW, allow dcc { }, umode +v change, register_user fix.•••- Module coders: if CmdoverrideAdd() is called for an override that is already in place, it now sets MODERR_EXISTS as errorcode and returns NULL (previously it added duplicates). In the past module coders had many issues with PERM mods... you had to use weird tricks, but now you can (and should!) just override on INIT and on HOOKTYPE_REHASH_COMPLETE. - Moved register_user declaration to h.h, updated call in m_pingpong.c (due new 'ip' field). - Usermode +v ('receive dcc send rejection notices') is oper-only now for privacy reasons. - Added dcc allow { }, which allows one to make exceptions over deny dcc { }. - Added deny dcc::soft and allow dcc::soft item, if set to 'yes' it allows someone to explicitly override it per-person via /DCCALLOW (see next). - Added DCCALLOW system, taken directly from bahamut. With this system you can block certain (or all) DCC SENDs and then allow the user to 'override' this limit for every user he/she trusts via '/DCCALLOW +User'. This is an attempt to stop (or at least limit) the spreading of viruses/etc. See '/DCCALLOW HELP' for more info. - Added example dccallow.conf which filters everything except some known 'safe types' (jpg, jpeg, png, gif, etc). Note that the purpose of this file is NOT to get a complete list, rather to limit it to a few 'known safe' entries. - Added set::maxdccallow: max number of entries of the DCCALLOW list (default: 10). Gravatar Bram Matthys2004-06-101-0/+9
* - And one more.Gravatar Bram Matthys2004-05-311-1/+1
* Added some $Id$'zGravatar Bram Matthys2004-05-301-0/+2
* - Fixed SSL problem caused by a fix of 2 days ago. Reported by Fury (#0001842).Gravatar Bram Matthys2004-05-301-2/+13
* Made the win32 version use a dynamically linked libcGravatar codemastr2004-05-301-1/+1
* Various stuff:•••- Added release notes (no, we won't release 3.2.1 anytime soon.. just updating ;p). - Added various extra messages to make it a bit more easier for people who are upgrading (win32 commands.dll, cloaking mod). - Made win32 ssl<->non-ssl modules binary compatible. - Added ssl/non-ssl check in Mod_Version on *NIX. - Added set::options::flat-map: This makes all servers look like they are linked directly to the server you are on (/map, /links), thus you cannot see which server is linked to which ("hopcount"). This can make it a bit harder for kiddies to find any 'weak spots' (which server to attack/[D]DoS). Obviously opers will always see the real map. Gravatar Bram Matthys2004-05-281-0/+3
* - Modulized cloakingGravatar Bram Matthys2004-05-121-0/+127
* ...Gravatar codemastr2004-05-121-1/+2
* Added module support for WindowsGravatar codemastr2004-05-121-11/+12
* Remote include fixes for WindowsGravatar codemastr2004-02-211-2/+23
* Made PATH_MAX get found under SolarisGravatar codemastr2004-02-191-0/+1
* - Added [OLD?] flag in /module so you can easily spot old beta* modules.•••- Modulized: samode, sajoin, sapart, kick, topic, invite, list Gravatar Bram Matthys2004-02-161-0/+4
* Fixed a tmp/ bug on Linux 2.2 and updated /CreditsGravatar codemastr2004-02-151-0/+2
* this should be the last "big commit" before release :p.•••- Added snomasks 'S' (Spamfilter) which notifies you of any spamfilter matches. - [internal] always return after spamfilter match, don't continue looping trough targets list (eg in case of: /msg #a,#b,#c spamspam), otherwise you would get duplicate notification msgs. - Added SENDSNO server command, similar to SENDUMODE but for snomasks, this is used by the spamfilter snomask (+S) so you get network-wide notifications. - Added "compiled for.." versioning system, this way a beta17 module can't be loaded on beta18, etc... People often forgot to recompile their modules or had old ones somewhere by mistake, therefore crashing after upgrades... this should fix this (in the future). Module coders don't have to do anything for making this work, it's done automatically (via modules.h). Gravatar Bram Matthys2004-02-071-0/+11