aboutsummaryrefslogtreecommitdiffstats
path: root/src/send.c
Commit message (Expand)AuthorAgeFilesLines
* - Added 'away-notify' client capability, which informs the client of any AWAY...Gravatar Bram Matthys2012-04-091-0/+45
* - Fix for speed optimization a few lines up, was accidentally using ident••• username (which might have been 'unknown') instead of effective username. Gravatar Bram Matthys2012-03-231-1/+1
* - Speed optimization: First, moved a large part of vsendto_prefix_one into••• vmakebuf_local_withprefix. Then use this new function - which creates the buffer-to-be-sent - at the top of functions like sendto_channel_butserv and sendto_common_channels and send the prepared buffer in the loop that comes after it. This means we only prepare the buffer once and then send it many times, rather than both building and sending it XYZ times. Benchmarking connect-join-quit of 10k clients: 100 users per channel: no noticeable speed improvement 1000 users per channel: 18% faster 10000 users in one channel: 50% faster As you can see, unfortunately, for a typical irc network there isn't much speed improvement. However, if you have a couple of 500+ user channels or get attacked by clones then you may see some improvement in speed and/or lower CPU usage. Gravatar Bram Matthys2012-02-271-47/+65
* - Services coders: Added support for ESVID. Instead of a number you can••• now store a string (of max NICKLEN size) as service stamp. See protoctl.txt and serverprotocol.html in doc/technical for more information. Patch from nenotopia (#3966). Gravatar Bram Matthys2011-12-251-14/+14
* - Another fix-for-fix of zip links buffering from a few weeks ago.••• Reported by fbi (#0004030). Gravatar Bram Matthys2011-07-181-2/+2
* - Fix compile failure introduced by fdb2fd1f8963 when zip links are disabled.Gravatar Nathan Phillip Brink2011-06-051-2/+10
* - Zip links: once a link was zipped, the error message when closing the••• connection was never actually sent (due to buffering). Hence, things like the /SQUIT reason was never seen on the other side (just 'server closed the connection'). This has now been fixed. Gravatar Bram Matthys2011-06-051-2/+2
* - Applied patch from k4be (#0003866) which introduces a new packet hook••• (HOOKTYPE_PACKET). Replacing the 'text to be sent' to a client is supported, which allows character(set) conversion in a module. Note that modifying an incoming message by the hook is not supported. Gravatar Bram Matthys2009-11-221-0/+5
* - Updated sendnotice() so it sends a proper notice if the user is in pre-conn...Gravatar Bram Matthys2006-04-291-2/+3
* - Made the IRCd calculate the cloaked host only once upon connect, and store ...•••- When checking if a user is banned, we always check the cloakhost too. Previously we could not do this if the user had a /VHOST (=a minority of the cases, but still...). In short, this is some extra protection to combat ban evasion. - Performance of is_banned() *slightly* improved (just 1-2 usec, but 7 usec if no bans). - [Module coders] For extban routines, we now offer a routine extban_is_banned_helper(buf) which can be used instead of the ban_realhost/etc static chars stuff, see extban_modeq_is_banned for a (real-life) example of how this is used. - [Services coders!] Added PROTOCTL CLK (requires NICKv2) which adds an extra field in the NICK command (when a user connects) right before the infofield (gecos). The added field contains the cloaked host, that is: the masked host if +x would have been set. This field is ALWAYS sent, regardless of whether the user is actually +x or not. Services can then store this field in memory, to know the host of the user if the user is set +x (+x-t). This is a (better) alternative to PROTOCTL VHP, with no race conditions, and avoids some other VHP problems. VHP will stay supported though... so it's not mandatory to switch over. Gravatar Bram Matthys2006-04-161-5/+11
* - 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-4/+4
* - 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/+20
* - Module coders: sendto_snomask* now only sends to opers, sendto_snomask_norm...••• to send to normal users w/the snomask set. - Fixed dcc filtering a bit more. - Made usermode 'g' operonly since it didn't do much, reported by DukePyrolator (#0002024). Gravatar Bram Matthys2004-12-031-3/+58
* - OperOverride INVITE notices are now also global (if you have the eyes snoma...•••- Module coders: New function: sendto_snomask_global(). - Speedup sendto_snomask/sendto_connectnotice/sendto_fconnectnotice code. Gravatar Bram Matthys2004-12-031-26/+47
* - Fixed crashbug on /rehash due to config rewrite, also made DEBUGMODE workin...••• Probably more fixes to come (small or not)... Gravatar Bram Matthys2004-11-091-1/+1
* Corrected numerous -Wall warningsGravatar codemastr2004-11-041-1/+0
* - Fixed OOB read/write on user quit (did no harm on Linux&FreeBSD).•••- Fixed some tiny memory leaks (~100 bytes) on rehash. - Updated chinese&japanese GBK nick code, fix supplied by Xuefer (#0002051). - Added release notes (unfinished). Gravatar Bram Matthys2004-10-101-1/+1
* Fixed a +u problem and updated to TRE 0.7.0Gravatar codemastr2004-09-251-1/+1
* - Fixed a bug regarding chanmode +mu where the <IRC> messages were not proper...••• to all servers. Reported by Aenox (#0002079). Gravatar Bram Matthys2004-09-181-0/+3
* Made the win32 version use a dynamically linked libcGravatar codemastr2004-05-301-1/+1
* Added NICKIPGravatar codemastr2004-05-271-9/+146
* Added module support for WindowsGravatar codemastr2004-05-121-2/+2
* - Fixed something if sptr->user->virthost was NULL (which is/should never be ...••• just to be sure... (#0001724). Gravatar Bram Matthys2004-04-111-2/+2
* - More Opteron fixes... sizeof() fun, %B fun (always use a 'long'!), etc..•••- Added __attribute__ stuff for ircsprintf() to catch more warnings. Gravatar Bram Matthys2004-03-111-1/+1
* - Hide server IP in /stats z•••- First Opteron crash bugfix. Thanks to Liverbugg for helping us trace this issue. Gravatar Bram Matthys2004-03-111-1/+1
* spamfilter improvements•••- Fixed a few wrong macro's (ircstrdup/ircfree) in s_conf.c causing very weird behavior... This also fixes a bug where set::spamfilter::ban-reason would have the value of ban-time. - Improved spamfilter again. - The new syntax is: /spamfilter [what] [type] [action] [tkltime] [reason] [regex] [tkltime] specifies the duration of any *lines placed by this rule. [reason] specifies the *line, kill and/or block reason.. no spaces allowed, but '_' will be escaped to a space. In both cases you can simply use '-' to skip and use the default. Ex: /spamfilter add p block - - Come watch me on my webcam /spamfilter add p gline 3h Please_go_to_www.viruscan.xx/ nicepage/virus=blah Come watch me on my webcam - A message is now shown if the msg/notice/dcc is blocked. - There are 2 new spamfilter action types: 'dccblock' will mark the user so (s)he's unable to send any files by DCC. 'viruschan' will part the user from all channels and join set::spamfilter::virus-help-channel (default: #help). this action might be improved to do more later. - Internal: added EXTTKL PROTOCTL, this determinates if 10 parameters instead of 8 are supported for m_tkl (used by spamfilter add). This new system needs some testing... :) Gravatar Bram Matthys2004-02-201-0/+4
* Fixed a VHP problem causing SETHOST to be sent before NICK or not at allGravatar codemastr2004-02-181-1/+9
* - Modified 404 numeric a bit (#0001515).•••- Fixed 'no server notice on /restart or /die', reported by Lx (#0001062). This was caused by a bug in flush_connections(&me), hopefully there won't be any side effects. - Fixed file owner problems when IRC_UID/IRC_GID is used (eg: when running chrooted). - Fixed crashbug if we were unable to write a remote include file to disk. Gravatar Bram Matthys2004-02-041-2/+2
* spamfilter etc... *pray*Gravatar Bram Matthys2004-01-281-0/+14
* - Changed NOSPOOF msg in ./Config a bit since this can also be effective against••• "blind proxies" (like HTTP POST proxies). - WebTV updates: made it so (user generated) channel notices are now displayed as privmsgs in the channel. Also made the /knock channelnotice a privmsg for webtv. Gravatar Bram Matthys2004-01-221-2/+23
* - A last-minute fix, lalala...Gravatar Bram Matthys2003-11-241-10/+0
* - A last-minute fix, omg...Gravatar Bram Matthys2003-11-241-0/+10
* - (Internal) Added __attribute__ format checking for most format string funct...••• this will currently produce a lot of warnings with -Wall. - Fixed 159 of 184 warnings detected by the above, the other warnings are false. Most warnings had to do with long vs int, and thus the format strings (%d->%ld) or the vars (int->long) have been changed (many of these were time_t/TS vs int). Only a few rare crashbugs were discovered. - Module coders: for HOOKTYPE_LOCAL_CHANMODE the 'sendts' parameter was changed from type 'int' to 'time_t', while in most circumstances (like on ia32) you won't notice, I suggest you to update your callback functions anyway. - Possibly fixed an issue with set::modes-on-join and mode +f, it could have set random remove-chanmode times in the default chanmode line. Gravatar Bram Matthys2003-11-021-2/+1
* fooGravatar stskeeps2003-10-311-1/+23
* - Optimized send code re-enabled, I disabled it 6h ago due a bug-triggering-a...•••- Fixed a PING bug resulting in 'trying to send .. to myself' msg. - Some spelling corrections in unreal32docs.html. Gravatar Bram Matthys2003-10-141-33/+69
* temporarely rollback... have some crashbug somewhere.Gravatar Bram Matthys2003-10-141-62/+33
* - Yet another code audit:••• - (Just for the record, this audit has nothing to do with the ircnet buffer overflow, unrealircd is not vulnerable) - Various fixes - Visual bug regarding +f & server synching, it was sometimes setting mode +f multiple times depending on the ban-/userlist. - Fixed a possible desynch regarding chmode +L. - Fixed possible client confusion regarding bans. Gravatar Bram Matthys2003-10-131-33/+62
* Added umode +T (no ctcp)Gravatar codemastr2003-10-041-1/+9
* Linux PPC fixGravatar codemastr2003-09-141-116/+0
* - Probably fixed a bug regarding 'setting mode' notice with +f (was sometimes...•••- Fixed multiple chmode +u bugs: remote join, netjoin, +mu relay between servers, kick and a part bug. Most of them reported by Lx (#0001097). Gravatar Bram Matthys2003-09-041-0/+48
* Made unreal work under Linux PPCGravatar codemastr2003-07-151-0/+191
* Added an experimental (disabled by default) prefix system for +a and +qGravatar codemastr2003-06-141-1/+13
* Fixed some set::allow-userhost-change problemsGravatar codemastr2003-03-291-0/+17
* - Fixed "proxyscan on quit" bug (#0000788)Gravatar Bram Matthys2003-03-101-1/+1
* - Fixed chmode +u again.Gravatar Bram Matthys2003-02-191-1/+2
* - Fixed bug with channel mode +u: Quits/nick changes of other users were shown.Gravatar Bram Matthys2003-02-181-0/+2
* Removed some more +I code, and fixed a /who bugGravatar codemastr2003-02-161-72/+0
* Code cleanup (in many files heh)... I replaced all:•••IsHidden(sptr) ? sptr->user->virthost : sptr->user->realhost stuff to a simple GetHost(sptr) macro (defined in struct.h). Smaller and less error phrone :). Also fixed the if IsHidden -> if (IsHidden found by codemastr . Gravatar Bram Matthys2003-02-041-7/+2
* Two tiny text fixes: missing space and an CRLF in 'sending to me' thing,•••and some probably impossible oob read but just in case added a length check, blahhh (sending empty line). Gravatar Bram Matthys2003-02-021-1/+3
* Redesigned "Dead socket" error msg thing. Added a error_str to client struct,•••which is set if dead_link is called. You will now see "Write error", "Max SendQ exceeded" etc error messages in the quit reason instead of just the "Dead socket" message. Changed "notice" parameter of dead_link, now just the reason and not a format string, maybe rename that var. Gravatar Bram Matthys2003-02-021-17/+12