X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=doc%2Fhistory%2FChangeLog.10;fp=doc%2Fhistory%2FChangeLog.10;h=9869776563516404582e68c0c78b9fc95276cd8f;hp=0000000000000000000000000000000000000000;hb=0400a5a6479398d82526785c18c0df8bc8b92dce;hpb=d17e10da972ce5776c60b4c317267c6abe0e1ead diff --git a/doc/history/ChangeLog.10 b/doc/history/ChangeLog.10 new file mode 100644 index 0000000..9869776 --- /dev/null +++ b/doc/history/ChangeLog.10 @@ -0,0 +1,696 @@ +# +# ChangeLog for ircu2.10.10 +# +# $Id: ChangeLog.10,v 1.2 2003-01-08 03:17:18 klmitch Exp $ +# +# Insert new changes at beginning of the change list. +# +-------------------------- Released 2.10.10.pl15 +* Fiddle with /KILL and various exits to make the user experience uniform, + no matter who's doing the killing or where. Previously, differences in + QUITs and in the messages sent to the killed client could help make a + partial map of the network; now that these messages are all uniform, there + is no way to tell. -Kev +* Split ISUPPORT numeric into two numerics, so as not to exceed the 15 + parameter limit imposed by the RFC -Kev +* Turn on HEAD_IN_SAND_REMOTE...oops -Kev +* Send prefixed error messages to other servers, so ERROR doesn't get + interpreted as a prefix -Kev +* Reverse sense of HEAD_IN_SAND_WHO_HOPCOUNT to do what was intended; use a + hopcount of 0 if user is using /who on him/herself -Kev +* Allow a user to see his/her own idle time without having to do + /whois ; correct spelling of HEAD_IN_SAND_IDLETIME to + HEAD_IN_SAND_WHOIS_IDLETIME -Kev +* Fix a missing ')' in the idle time stuff -Kev +* Include ircd_policy.h in whocmds.c -Kev +* Fixed bug in idle time, thanks hektik -- Isomer +* Update 005 to be compliant with other networks -- Isomer +* Hide hop count -- Isomer +* Hide idletime unless you explicitly ask for it -- Isomer +* /wallops and /wallusers would dump core because of the previous change--my + bad. Now only include user@host when sptr is a client. -Kev +* /wallops and /wallusers would leave out the user@host--noticed because + pl14 broke my script. Fixed. -Kev +* Fix several compile warnings, including the one in table_gen.c -Kev +* Fix a bug in m_silence.c that rendered it uncompilable -Kev +* Hopefully make mode clears during bursts appear to originate from local + server -Kev +* Fix several things to send server<->server protocol messages with numeric + origins -Kev +* Rework directed notices and mass-messages to use numerics and tokens + as appropriate; the latter required the modifications to + sendto_match_butone() -Kev +* Redefined how sendto_match_butone() works, since it's only used with + PRIVMSG or NOTICE -Kev +* Bumped patchlevel to pl15(development) -Kev +* Corrected reverse-sense of HEAD_IN_SAND_REMOTE test in m_whois() -Kev +* Clean up logic in m_whowas(), corrected numeric reply -Kev +* Finally fixed /whois to tell you what your own server is -Kev +* Clean up logic in add_banid() with some well-placed DupString()'s -Kev +* Hide which server performed a nick collision kill -- Isomer +* To allow for remote whois not giving away the remote server, all remote + numerics to clients are remapped to come from the local server :/ -- Isomer +* All remote queries are disabled for users, except /whois -- Isomer + (/whois now uses the second parameter for which server to use, ie: + /whois will query 's server.) +* Fixed /who showing server name -- Isomer +* Fixed burst showing linking server -- Isomer +* Fixed burst bans showing linked server -- Isomer +* Fixed /whowas showing server name -- Isomer +-------------------------- Released 2.10.10.pl14 (You got any issues with that punk?) +* Changed (then fixed) /LINKS to output an empty links list -- Isomer +* Make netsplit server notice say the right thing +* Final fix for HEAD_IN_SAND_WHOIS_SERVERNAME +* Fix a bug with implementation of HEAD_IN_SAND_NETSPLIT +* Permit users to find out what server they're on, since they already + know -- Kev +* Added HEAD_IN_SAND_WHO_SERVERNAME to cover final source of server + names -- Kev +* Fixed wallops, wallusers now sends wallops to local clients, + wallusers to servers. +* Added host to /kill messages -- Isomer +* Fixed whois (opers can see server names) -- Isomer +* Implement walluser -- Bleep +* stats fixed -- Isomer +* trace disabled from non opers -- Isomer +* server name removed from whois (but not /who, shrug!) -- Isomer +* netsplits are now represented with "*.net *.split" -- Isomer +* Done /links -- Isomer +* Modifications to map as suggested by nighty -- Isomer +* Wallops is the only code that uses sendto_ops_butone now, this + isolates wallops entirely. No server notices sent by wallops. +* HEAD_IN_SAND_SNOTICES done -- Bleep +* HEAD_IN_SAND_WALLOPS done -- Bleep +* HEAD_IN_SAND_DESYNC done -- Bleep +* HEAD_IN_SAND_MAP done -- Isomer +* According to CFV-165, buring our head in the sand to try and +* hide from DoS - First pass -- Isomer +* As requested by hop: hidden keys are shown as "*" not "" -- Isomer +* As requested by Buff: allow admins to *disable* below behavour -- Isomer +* As requested by Adriel, compile time option to disable mo_wallops + -- Isomer +-------------------------- Released 2.10.10.pl13 +* Don't allow two copies of the server to start -- Isomer/Kev +-------------------------- Released 2.10.10.pl12 +* Release 2.10.10.pl12 before Mr_RIP threatens physical violence -- Isomer +* Don't 'hubhide' nick's in /trace (oops!) -- Isomer +* Allow K:line by realname, updated client connection logging -- Gte- +* ircd/m_join.c: use ERR_BANNEDFROMCHAN instead of ERR_BADCHANNAME -- Kev +--------------------------- Released 2.10.10.pl11.(release) +* Fixed G-lined (reason), thanks to dfx -- Isomer +* Added reason to the "G-lined (reason)" quit messages. -- Isomer +* Removed 'for nick[1.2.3.4]' from quit messages, they're redundant + and make hub hiding more reliable --Isomer +* ircd/s_user.c (hunt_server): add 'No such server' message back + --Isomer +* ircd/s_bsd.c: remove ALWAYSFLUSH - the problem wasn't ircu's fault + -- Isomer +* ircd/m_names.c (m_names): don't add a space if the user's a + zombie; fixes an overrun where we generate a huge number of spaces + in the names reply without length-checking them properly -- Kev +* added 'ALWAYSFLUSH', if you thought the furgeson flusher was bad... + --Isomer +* Fixed /USERHOST again. Horribly embarrased. Thanks again Liandrin + --Isomer +* Added extra field to /stats Y showing how many people are in that class. + Information was previously available via /trace, however tended to flood + you off if you weren't on a good connection. Requested by Mr_RIP + -- Isomer +* Fixed 'BADCHAN' resetting itself to 'Y', reported by Gator --Isomer +--------------------------- Released 2.10.10.pl10 +* Released 2.10.10.pl10 +* Backported /names optimisation from 2.10.11. + '/names 0' now returns verbose listing, '/names' simply returns + ENDOFNAMES. Disallow harmfull /names usage. --Gte +* Fixed ERR_NOSUCHNICK bug in userhost, thanks to Liandrin --Isomer +* Conceal more bugs in IPcheck --Isomer +* Add 'POST' as a unregistered command to disconnect people abusing web + proxies --Isomer. +* Conceal bugs in IPcheck --Isomer +* Fix for changing the wrong define --Isomer +* Fix for the easter buggy. --Isomer +* Fix for rpong --Run +* Fix for other IPcheck bug, thanks BLMet. --Bleep +* Fix for IPcheck bug, rewrite IPcheck from scratch (mostly), + add changes for new code to s_user.c, ircd.c --Bleep +* Shorten connection timeout for auth queries to 60 seconds + If connection is from localhost use the server alias for the + client host. --Bleep +* Fix for ident bug --Isomer +* Fix for rping/rpong --Gte +* Add m_pong to parser handler --Bleep +* Fix for EXTENDED_NUMERICS bug doh!!! --Bleep +* Fix for Max Undernet Server bug --Bleep +* Fix for PRIVMSG<->NOTICE translation from hubs --Bleep +* Fix for Bogus protocol strings for P9 servers --Bleep +* Hookup UPING code again, cleanups --Bleep +* Convert numerics back to mask and shift extended numerics + follow same mechanism --Bleep +* Fixed bogus errno return on Solaris --Bleep +* Fixed core on RPING bug, tokenized RPING --Bleep +* Remove add_local_domain entirely, unused --Bleep +* Merge u2_10_10_beta06 create branch u2_10_10_beta07 --Bleep +* Remove size_t from socket calls, audit usage of size_t + values. --Bleep +* Fix for OSF1, RES_NOALIASES not defined there. --Bleep +* Don't bother doing hostname lookup or setting me.sockhost + since we never want to display it there is really no reason + to have the info. --Bleep +* Bugfix broken N:line check in chkconf --Maniac +* Bugfix, fix clients occasionally getting stuck in IPcheck + code. Add note to members in client struct that aren't used + for any remote client code, didn't want to actually move them + this close to release (paranoia) --Bleep +* A few little cleanups in check_pings, removed yet another + address display. --Bleep +* Bugfix, autoconnects displaying server IP address to opers. + --Bleep +* Remove names from /stats p, since its always the server + name from the M:line anyhow, (redundant information) + --Bleep +* Unborked throttling. --Bleep +* Fix two stupid bugs, related to IP mismatch kills. --Bleep +* Clean up configuration, make it a bit easier for admins to + turn off asserts and heap checking code. Moved host name dns + query for listener virtual host ports to dead code and use + me.name for the listener name (no sense in looking up the name + if we don't want to display it). Change direct bump of unknowns + in s_bsd.c to Count_newunknowns(UserStats) for consistency. + --Bleep +* Added option to kill any connecting client with a forward and + reverse DNS mismatch. Fixed bug in s_auth that that caused + incorrect counts for unknown clients. Replaced missing server + notice for SNO_IPMISMATCH. --Bleep +* Added a few more little name tweaks, no sense in looking up + the hostname in the conf if no one knows it. --Bleep +* Moved to beta archive, bumped patchlevel, fixed message for + lost C:line in s_conf.c (I don't think I've ever seen this happen) + --Bleep +* Finished host hiding changes, it should not be possible for any + online user to discover the real hostname or IP address of any + connected or unconnected server listed in the configuration. This + applies to opers and regular users. The name in the M:line is the + name used for connecting and all informational messages. --Bleep +* Removed code in dbuf.c that flushes the dbufs if the server runs out + it looks like a fully loaded server may not be able to handle a net + break without shedding a few clients. --Bleep +* Finish IP address cleanup, alpha should be clean for not displaying + server hosts or IP addresses to users now. This needs to be verified. + Changed version to u2.10.10 per Isomers suggestion. --Bleep +* Remove server IP address from info line for connecting servers. + This almost completes the IP address hiding changes for alpha, there + are still a few stats commands available to users that will show the + server addresses, but they can be easily disabled or only show '*'s + to non-opers. --Bleep +* Fix possible (but not likely) memory leak in debug allocator, couldn't + find the "meg a minute" problem, using the debug allocator on the + production network with more than 1000 clients on a server may cause + problems if you don't have a lot of memory. (This does not seem to + be a problem with non-debug builds) --Bleep +* Captialisation fixes, just to keep certain ppl quiet. --Isomer +* Removed +s channels from /list. They were shown sometimes, but not + others, and the information that was shown about them was inconsistant. + list is not an effective way to gain information anyway. Reformatted + and touched up readme.who as well. --Isomer +* Added MAP to ISUPPORT, added doc/features.txt --Isomer +* Added suggestions made by scripters. more info for ISUPPORT, and + added stuff to 'TODO' --Isomer +* More TODO items 'done'. P:'s now ignore '*'s. ping shouldn't do funky + stuff with mirc anymore, needs discussion --Isomer +* Typo fixed. Now I'm annoyed. --Isomer +* Right, Makefile's gonna work now or I'm going to get REALLY annoyed at it. + --Isomer +* TODO, m_ping, ircd/Makefile.in: Added note to TODO, added info to + m_ping, and fixed Makefile bug using bsdmake. --Isomer +* s_bsd.c, listener.c, s_user.c, s_serv.c, s_bsd.h: + Set receive and send buffers in correct order to enable flow + control for clients and support fat pipes better for servers. + Finally got it right :) + See Stevens "Unix Network Programming" v1 p 191-193 + --Bleep +* ircd.c (main): added idiot checking to make sure MAXCONNECTIONS + is sane. --Bleep +* send.c: Don't let negative fd's break stuff, audit sentalong + usage for sillyness. --Bleep +* send.c (sendto_common_channels): bug fix, code assumed client + local, file descriptor is only in local client struct + --Bleep +* table_gen.c, channel.c: make FIXME changes, removed + FIXME code from table_gen, readd FIXME code to channel.c, + I hope I got this right. --Bleep +* Makefile.in: Add purify def, fix so CFLAGS don't error + off when using Solaris compiler --Bleep +* fda.c (fda_free): fix compile error on Solaris --Bleep +* configure.in: add SunOS case to detect Solaris --Bleep +* os_solaris.c (os_send_nonb): fix solaris compile error --Bleep +* exaconf.2: add file from conf design to docs directory to + have it available for new conf parser development --Bleep +* fda.c (fda_free): fix memory leak, doh!!! --Bleep +* hash.c (addNickJupes): fix buffer overrun --Bleep +* s_bsd.c (read_message(poll)): fix uninitialized memory read + bogosity in poll macros. --Bleep +* channel.c (send_user_modes): change to send XXX:ov instead + of XXX:o:v doesn't send XXX: if no modes set. --Bleep +* s_bsd.c (connect_server): bugfix for connect/rehash/connect + multiple outstanding dns query core. --Bleep +* channel.c (send_user_modes): bugfix for burst not sending modes + when burst line is created. --Gte +* m_gline.c: change NumServ(cptr) to NumServ(sptr) found by Gte + --Bleep +* config-sh.in: add WildThangs BADCHAN config fix --Bleep +* config-sh.in: add Runs restart bugfix --Bleep +* Makefile.in: make sure version.c gets regenerated when checksums + change --Bleep +* Makefile.in: remove hash.c/crypt/sums idiocy, all of the ridiculous + anti-hack stuff is already done in version.c anyhow. + "Shhh..., don't tell the admins ( .)( .) you're being watched" + --Bleep +* hash.c (m_hash): fix count bugs --Bleep +* m_squit.c (mo_squit): fix off by one, /quote SQUIT bug --Bleep +* ircd_relay.c: oops, changed the wrong one. Fixed previous fix. --Isomer +* Makefile.in, ircd_relay.c: Fixed 'make depend', added dependancies, fixed + bug where server would core on sending a server notice --Isomer +* m_kick.c (ms_kick): fix core on kick message coming from + server --Bleep +* config.in: remove CRYPT_LINK_PASSWORD option --Bleep +* doc/readme.www: Applied Runs' doc patch --Bleep +* client.h: Add member to client struct to try to aggravate the + bug found by Jesus --Bleep +* client.h: Remove IsListening macros and flags, add FLAGS_UPUNG + and IsUPing/GetUPing/SetUPing macros --Bleep +* m_silence.c, m_create.c: check for IsServer(sptr) don't + allow X SILENCE X +*@*.com or X C #blah 947477407 core the + server. --Bleep +* os_*.c, res.c: clean interface for os_recvfrom_nonb --Bleep +* uping.c, uping.h: new files for UDP pings, these aren't hooked up yet, or + finished or tested. + --Bleep +* channel.c: find_member_link(): Fail fast for Servers, prevents core when + servers set a channel mode. --Isomer +* channel.c, channel.h, various.c: Changed find_member_link() to take + a chptr instead of the first member, and special case'd +k users + (see comment in code for more details) --Isomer +* ircd/Makefile.in: Changed gnu specific $^ for $< in table_gen + rules --Bleep +* INSTALL: Explained about CVS --Isomer +* example.conf: Point to coder-com@ for help configuring the server. --Isomer +* INSTALL: Make things a bit more plain. --Isomer +* s_bsd.c (read_message (poll)): removed local_cptr array using + this temp made possible a bug where if a client lower in the list + managed to exit a client higher in the list, a dangling reference + to the already exited client would be left in the local_cptr array. + Found by Quantum by loading 100's of clones with the same nick. + --Bleep +* INSTALL: Added instructions for -lcrypt FAQ --Isomer +* INSTALL: Added instructions for -lresolv FAQ --Isomer +* INSTALL: Added instructions for making ./configure executable --Isomer +* numeric.h: Merged in some more numerics that other ircds user --Isomer +* IPcheck.c: Fix gramatical error to keep pedants happy. --Isomer +* IPcheck.c: Allow -DNOTHROTTLE for debugging purposes. --Isomer +* m_stats.c: make stats c available to opers only, TEMP_HACK --Bleep +* IPcheck.c: Fixed outdated comment. Thanks Quantum --Isomer +* ircd_reply.c: Fix the fix, silly typo. thanks Bleep --Isomer +* ircd_reply.c: added check for people without nicks. --Isomer +* doc/Authors, ircd/version.c.SH: updated /info and maintainer + lists. --Isomer +* channel.h, channel.c, m_join.c, m_mode.c: add David M's + lchanmode patch update --Bleep +* s_auth.c: fix ident bug, comment code for rule. --Bleep +* m_invite.c (m_invite): Fix syntax error, missing ')'. -- Isomer. +* m_invite.c (m_invite): tokenize invites, change from accidental + broadcast to directed message (bug fix). --Bleep +* m_time.c (m_time): send tokenized time messages --Bleep +* s_user.c (set_user_mode): Send wallops to everyone by default + allow compile option WALLOPS_OPER_ONLY for networks that want + to disable wallops for users. --Bleep +* s_misc.c (exit_one_client): tokenize client quit message to other servers. + --Gte +* m_kick.c: you would have thought I'd fix all of them the first time, but + no... -- Isomer +* m_kick.c: Fixed missing space after TOK_KICK -- Isomer +* m_burst.c: Fixed netrider kick bugs -- Isomer +* s_user.c: Bug fix --Bleep +* s_user.c: only send wallops to opers --Bleep +* s_user.c: enforced undernet policy. -- Isomer +* s_user.c: replace user_modes with struct UserMode array + change code to use new struct. --Bleep +* s_user.c (set_user_mode): clean up switch statement --Bleep +* channel.c (set_mode): fixed -k foo bug, extra == 0 typo in + conditional. --Bleep +* dbuf.c (dbuf_alloc): fixed count bug, we _have_ to count it in + the branches. --Bleep +* dbuf.c, send.c, s_bsd.c, send.h: bahh finally did it right, + if a dbuf allocation fails, attempt to flush all send buffers except + for the one we are trying to build (we're twiddling with the list etc..) + if the allocation fails a second time, _then_ bail. --Bleep +* s_bsd.c, send.c: if dbuf_put fails for send or receive buffers, + call flush connections to free up some buffers (safe here). --Bleep +* dbuf.c (dbuf_put): back out previous change, afaict it would fail + spectacularly --Bleep +* dbuf.c (dbuf_put): call flush_connections(0) if we can't allocate + a dbuf the first time, this may prevent the server from dropping + connections during netbursts. --Bleep +* m_privmsg.c: fix IDLE_ON_MSG fix -- Isomer +* m_privmsg.c, parse.c: fix IDLE_ON_MSG bug --Bleep +* m_ison.c (m_ison): Temp hack to fix missing null terminator. --Bleep +* m_nick.c (m_nick): fix null nick reply bug --Bleep +* ircd_string.c, match.c: fix a couple possible issues with + the character attribute changes --Bleep +* s_auth.c, ircd.c: turn off connection status messages for + connections to server ports. --Bleep +* ircd.c, s_conf.c, m_server.c, ircd.h, s_conf.h: + removed portnum and server_port global variables, server port + in M:lines is ignored, server ports now need to be defined in + the P:lines. Add SERVER_PORT config option to allow: + '/connect server.net.dom' without specifying the port. --Bleep +* config-sh.in: change PORTNUM to SERVER_PORT now used for + default server port for outgoing connections in m_connect. + --Bleep +* example.conf: document changes to M:line for server port --Bleep +* ircd_chattr.h, ircd_string.h, ircd_string.c, table_gen.c: + put Nemesi's table generation code and macros back in, the + tables are now automagically generated whenever the table_gen.c + file is modified, use a slightly different mechanism to get the + tables in the executable. Add reference data file to test dir + for character attributes. --Bleep +* s_auth.c (check_ident_reply): add function that implements + auth reply undernet rules checking. --Bleep +* s_misc.c (date): added Runs Y2K patch --Bleep +* m_privmsg.c: work on server handlers, hookup new code to parser, + test, fixed a couple bugs, fixed username bug in server NICK + processing --Bleep +* ircd_chattr.c, m_privmsg.c: Work on privmsg code a bit more, + commit for review, still a bit more to do --Bleep +* os_bsd.c, configure.in: add os dependency file for bsd + --Bleep +* m_privmsg.c, ircd_string.c: little cleanups for privmsg + work on prototype handler for new parser. --Bleep +* m_connect.c, s_conf.c: clean up /connect handling code + --Bleep +* m_away.c, m_admin.c, m_close.c, m_connect.c: + start cleaning up handlers --Bleep +* whocmds.c, whowas.c, *.c: split out handlers from whocmds.c + and whowas.c --Bleep +* s_serv.c, m_*.c: split out handlers from s_serv.c + --Bleep +* querycmds.c, m_*.c: split out handlers from querycmds.c + --Bleep +* opercmds.c, m_stats.c, m_connect.c, parse.c, handlers.h, *.c + add new command handlers --Bleep +* channel.c, m_names.c: new file for names handler --Bleep +* channel.c, m_list.c: new file for list handler --Bleep +* channel.c, m_topic.c: new file for topic handler --Bleep +* channel.c, m_burst.c: new file for burst handler --Bleep +* channel.c, m_create.c: new file for create handler --Bleep +* channel.c, m_destroy.c: new file for destroy handler --Bleep +* channel.c, send.c, m_join.c: new file for join handler, + const fixups for send.c --Bleep +* channel.c, m_mode.c: new file for mode command handler, + clean up file scope buffer mess. --Bleep +* m_silence.c: split out SILENCE handler to a new file, + cleanup --Bleep +* m_ison.c: split out ISON handler to a new file, cleanup --Bleep +* m_userip.c: split out to new file, change userhost and userip + to use same algorithm with different formatting functions --Bleep +* m_userhost.c: split out to new file --Bleep +* send.c: add new function send_buffer, cleanup godemode ick a bit + --Bleep +* m_wallchops.c: split out wallchops handler --Bleep +* m_cprivmsg.c: split out m_cprivmsg and m_cnotice. +* m_pass.c, s_user.c: split out m_pass, pass message handler + --Bleep +* m_oper.c: split out m_oper.c from s_user.c, setup to use + new parser. --Bleep +* m_pong.c, m_ping.c, parse.c, s_user.c, channel.c: + Add new file for pong messages, convert ping and pong to use + numerics. Test pings and pongs on testnet. Fix numeric + nick bug in channel.c. --Bleep +* m_ping.c, s_serv.c, parse.c: new file for pings, fixed a + minor bug in ping handling. --Bleep +* m_nick.c, m_kill.c: clean up nick code for servers, still needs work + fix string formatting bug in m_kill --Bleep +* m_nick.c, s_user.c, ircd_chattr.c: add new file for NICK command, + clean up local client registration for nicks. --Bleep +* m_away.c, s_user.c, parse.c: split out m_away handlers for client, + add user_set_away function. --Bleep +* m_kill.c, ircd_reply: Rework handling of kill from server, add new error + message formatter. --Bleep +* m_kill.c (mo_kill): Rework handling for kill from operator on server + kill originated from --Bleep +* m_kill.c: new message handler file for kill --Bleep +* configure.in, ircd/Makefile.in: added automatic os checking to autoconf + checked --Gte +* m_quit.c: new message handler file for quit --Bleep +* m_privmsg.c: new message handler file for privmsg --Bleep +* ircd_string.c, support.c, support.h, *.c: moved strtoken to ircd_string + and renamed ircd_strtok --Bleep +* channel.c, s_user.c, s_debug.c, send.c, channel.h: finish membership code + --Bleep +* channel.c, more cleanups of membership code and macros --Bleep +* channel.c, s_misc.c: more cleanup in channel link code, most likely + still a bit broken yet, more to come. --Bleep +* querycmds.h (Count_remoteclientquits): fix minor bug --Bleep +* ircd.h, querycmds.h, struct.h, channel.c, list.c, map.c, opercmds.c, + s_err.c, s_serv.c, s_user.c, s_misc.c: Add Isomers passivelag0-1.patch + fixed minor bug in macros --Bleep +* channel.h, channel.c, s_user.c, s_debug.c, s_user.c: + added Membership struct for channel associations, change user/channel + lookups to use new struct. --Bleep +* channel.c, channel.h, s_user.c: cleanup channel and user code + a bit, new function find_no_nickchange_channel --Bleep +* parse.c, m_defaults.c: added default handlers and hooked up new + message handlers --Bleep +* *.c, struct.h: added Isomer's passivelag patch and, the second + p10 patch --Bleep +* ircd_reply.[ch]: new files for commonly used replies --Bleep +* m_proto.[ch]: new file for protocol command support, needed for zip + links --Bleep +* client.h, parse.c, msg.h: add code to support multiple message handlers + depending on client status. --Bleep +* s_bsd.c, packet.c: code cleanup prep for zip links --Bleep +* channel.c, opercmds.c, ircd.c, s_serv.c, s_user.c, querycmds.c, + whocmds.c, whowas.c: Add Isomers p10ify patch, tokenize server to + server commands --Bleep +* s_user.c (m_nick): killed goto --Bleep +* client.h, *.c: moved client stuff to client.h --Bleep +* version.c.SH, patchlevel.h, .patches: change version string + generation, patch level is now set in patchlevel.h by simply + bumping the number in the PATCHLEVEL string. --Bleep +* ircd_alloc.c, channel.c: fixup warnings in release build (NDEBUG) + --Bleep +* fda.h, ircd_alloc.h, fda.c, ircd_alloc.c, fda_t.c: new files, + runmalloc was core dumping on squits and unable to handle or + detect double frees, the memory debug code can be disabled by + compiling with NDEBUG defined --Bleep +* channel.c (remove_user_from_channel): refactor function --Bleep +* channel.c (m_kick): refactor function a bit, put all checks at top + move code out to new function (make_zombie) --Bleep +* s_bsd.c (completed_connection): fixed stupid + "Write error to blah: Socket not connected" bug --Bleep +* struct.h, send.h, send.c, s_bsd.c, IPcheck.c, s_user.c, *: + More socket code cleanup, move file descriptor to local part of + client struct, use cptr->error to handle the errno of any socket + error, fix bug in IPcheck that ends up only disallowing every + 256th clone, Add more ipcheck forgiveness to s_user.c (needs work). + Changed IPcheck_local_connect and IPcheck_connect_fail interfaces to + use struct in_addrs instead of client structs to allow delaying the + allocation of the client struct till after the check was done. + Added can_send function to send.c (should be called before work is done + but right now it's called just before trying to send (needs work)) +* channel.c: Added Isomers netride2.patch, still needs a config option + to turn it on (NO_INVITE_NETRIDE) --Bleep +* parse.c, msg.h: Added silent ignores for notices so connect progress + messages do not cause connecting server to spew ERR_REGISTER_FIRST + messages at the server it's connecting to. --Bleep +* s_serv.c, s_user.c, channel.c, send.c: Tokenised BURST, NICK, + END_OF_BURST, EOB_ACK, PRIVMSG and NOTICE Server to Server. + About 8-10% Bandwidth saving on BURSTS. --Gte +* channel.c (m_join): servjoin patch --Isomer +* ircd_osdep.h, os_*.c, s_bsd.c, send.c: more cleanups in socket code, + use enumeration for IO results. --Bleep +* s_bsd.c: clean up select and poll code a bit more, fixed message pacing bug + in poll. --Bleep +* supported.h, numeric.h, s_user.c, s_err.c: Added Isomers features + patch. Use numeric 005 RPL_ISSUPPORT to convey server features to + clients. --Bleep +* s_user.c (m_nick): IP differ patch, use IP address instead of host + name to determine different user@host for nick collides. --Isomer +* hash.c (hChangeClient): Bug fix. Fixed bug that caused stale entries + to be left in client hash table after a name change. Discovered by + Quant and Isomer. --Bleep +* hash.c (hSeekClient): fixed bug I introduced when reversing my hash + table code changes, thanks Quant and Isomer --Bleep +* opercmds.c (m_lusers): send limited luser info to remote + clients --Isomer +* numeric.h, channel.c, s_err.c: Changed invite list numerics + from 283/284 to 346/347 to match IRCnet numerics --Bleep +* config-sh.in, gline.h, numeric.h, gline.c, opercmds.c, s_debug.c, s_err.c: + Add badchan patch by WildThang --Bleep +* config-sh.in, channel.h, numeric.h, channel.c, s_debug.c, s_err.c: + Add lchanmode patch by David M --Bleep +* channel.c (cancel_mode): removed incorrect assert --Bleep +* *.c: removed P9 support, not everything is completely gone but most + of it is, the server builds and connects to other servers, but thats + as far as it's been tested so far. --Bleep +* ircd.h, ircd.c, s_bsd.c: + removed BOOT_INETD/BOOT_CONSOLE code, unused non-functional --Bleep +* struct.h, ircd.h, ircd.c, s_user.c, s_bsd.c: + removed BOOT_OPER/STAT_MASTER code, original patch by Isomer --Bleep +* s_user.c (m_nick): removed redundant check for acptr +* hash.c (hSeekClient, hSeekChannel): roll back some of hash.c changes +* hash.c (hSeekClient, hSeekChannel): removed unused variable from previous + changes. +* hash.c (hSeekClient, hSeekChannel): fix compile error from status changes, + fix logic bug that caused the first client that matched the mask to be + returned regardless of whether or not it's name matched, this can result + in wierd problems where the wrong server/client could be returned from the + hash table lookup. Removed code that moved client to head of hash table + chain for it's bucket when it's looked up, if the hash table is working + reasonably well this just wastes cpu. +* hash.c, list.c: added code to zero out cptr->hnext when client removed + from hash table, added assert for hnext == 0 in list.c to make sure that + client was actually removed from the hash table before freeing it's memory. +* various: misc cleanups +* support.c: removed dead code +* configure.in: remove unneeded checks for minix, aix, ansi/posix headers + these things are handled by porting layer code. +* res.c: remove calls to add_local_domain, these were causing incorrect + behavior +* opercmds.c: cleanups in gline code +* s_bsd.c: increase socket buffers to 65535 for server connections +* crypt/mkpasswd.c: mutter correct runes to get file to compile without warnings +* gline.c, gline.h: add new files to attempt to encapsulate glines a bit, + some code from opercmds.c needs to be moved here still +* opercmds.c (m_gline): fix local gline bug +* s_conf.c (initconf): add password change on rehash fix +* s_conf.c (rehash): fix rehash freeing and reloading the motd/rmotd files for + every client connected. +* ircd_log.c: use 2K fixed buffer instead of vsnprintf, nothing we write to + the log should ever exceed 512 bytes, but it doesn't hurt to be paranoid. +* res.c: change resolver timeouts to 5 seconds, per RFC1123 +* channel.c: more little cleanups, no code changes +* channel.c: a) stops iterating over /invite list + b) adds /invite to list the channels you're currently invited to. + c) adds lotsa new numerics --Isomer +* ircd_signal.c, ircd.c: fix bug in signals +* channel.c (can_send) add Isomer's changes +* channel.c: add send_ban_list, cleanup a few names, reformat some parts to make + more readable, fix bug introduced by name changes +* ircd_chattr.[ch]: add new macro for checking K:line time chars vs comments +* listener.c (show_ports): add code to show client/server and hidden status +* s_conf.c: bug fixes, cleanups, add code to set server port and hidden + status for listeners (P:lines) +* s_conf.c (initconf): add interface selection code to P:lines so ports can + be set on a single interface or multiple interfaces (multi-homed hosts) +* s_conf.c: rewrote C/N line code, removed N:lines entirely, clean up server + conf line code. +* s_conf.c (check_server): move ip checks out of resolved or not so they can + be checked for worse case situations on server connects +* res.c (resolver_read): add Isomer's debug info for failed resolver queries +* opercmds.c (m_stats): remove call to time(0) for each local client in + stats l command, use CurrentTime instead +* s_conf.c (initconf): only do lookups on C:lines instead of both C/N lines +* res.c: fix resolver hang bugs +* s_conf.c (rehash): remove extra semicolin that was causing c/n lines to + accumulate +* s_conf.c (rehash): add portnum back to the listener list so we don't loose + the server port on a rehash +* s_auth.c, listener.c: remove warnings for normal errors +* s_auth.c, listener.c: use osdep non-blocking calls instead of locals +* s_auth.c, listener.c: add code for non-blocking recovery for listeners and + auth queries +* s_auth.c (auth_error): call IPcheck_connect_fail if the client socket dies + during the auth check so the reference count doesn't get borked in the + IPcheck code. +* numnicks.c: yet another extended numerics bug fix... sheesh +* s_bsd.c, s_conf.c: move conf line code from s_bsd.c to s_conf.c, cleanup + cleanup check_server, check_client (still not completely tested, may be + a bit buggy yet). +* parse.h, parse.c, s_debug.c: remove privmsg logging code +* numnicks.c (FindXNServer): fix off by one bug +* common.h, common.c: removed unused files +* s_bsd.c (net_connect_completed): new function, called after connection + establishment for servers and clients, release reference count for + the dns reply and set the socket buffer size to IRCD_READBUF_SIZE + for servers and 2K for clients. +* channel.c, crule.c: cleanup bogus casts +* listener.h (add_listener): fix bug that caused server a server port listener + to think it was a client port listener. +* s_user.c, s_serv.c: release reference to dns_reply when connection is + established. +* s_bsd.c (completed_connection): removed call to start_auth for connects + the auth module expects connections not to be linked anywhere and owns + the client struct until it's done. +* listener.c (release_listener): fix inverted assert client exit bug +* ircd_chattr.c: fix signed/unsigned warnings with Sun Workshop (+w) +* ircd_chattr.c, ircd_chattr.h: new files for character attributes and case + translation, hopefully they will be a bit easier to maintain. +* s_conf.c (rehash): fixed logic bug that caused and infinite loop, + fix port update bug (needed to call mark_listeners_closing before initconf) +* *.c, runmalloc.[ch]: change the way the server deals with out of memory + conditions. On server startup a no-memory handler is installed which + calls server_restart if an allocation fails. Allocations are now checked + in the memory allocation functions. Added asserts after every allocation + to verify for debug. +* *.c *.h: move authentication and dns to authentication module rename a few + globals, const correctness fixes, add ircd_string code, rework network + code, use dns callbacks, removed a lot of redundant code +* s_bsd.c: finish this stage of net code work +* *.c, *.h: rewrite select and poll code, add listener.[ch] net.code overhaul + in progress, prepare for adding auth module +* s_bsd.h, struct.h: moved client struct macros back into struct.h for now, + the last place they belonged was in the network code... feh +* ircd.c (open_debugfile): removed client for debug file +* ircd_string.h, ircd_string.c: new files for string processing, add + ircd_strncpy function +* *.c, *.h: rename ircstp to ServerStats +* *.c, *.h: rename now to CurrentTime +* listener.h, listener.c: new files for listener ports +* include/ircd_defs.h: new file for global definitions (HOSTLEN, USERLEN) +* struct.h: add local_flag to client struct, to make local/remote detection simpler +* s_bsd.c (read_message): split out separate versions for select and poll +* s_bsd.h, various source files: remove the rest of the unix domain socket + support this removes a number of comparisons that were unneeded in + code that should run reasonably fast. +* os_*.c, res.c, ircd_osdep.h: add os_recvfrom_nonb for resolver +* os_*.c, s_bsd.c, s_auth.c, ircd_osdep.h: add os_get_sockname, os_get_peername +* bsd.h, bsd.c: merge into s_bsd +* ircd_osdep.h, os_generic.c, os_linux.c, ircd_osdep.h: move os variable stuff + to separate compilation units, os generic contains the original code + (start here). +* s_bsd.c, send.c, struct.h: remove pyr (pyramid) finally +* res.h, res.c, s_misc.c: cleanup headers/dependencies in res.h +* match.h: include sys/types.h before netinet/in.h, broken BSD system headers +* ircd/Makefile.in: remove CFLAGS from link line, use LDFLAGS instead +* ircd.c: add missing include for sys/socket.h +* common.h (strChattr, strCasediff): remove pointless non-portable inline + decls. The functions are complex enough that inlining just bloats the code +* ircd_xopen.h, ircd_xopen.c, s_user.c, s_serv.c: porting layer for crypt and + other xopen library calls, moved crypt to ircd_xopen. +* s_uping.c, s_uping.h, s_bsd.c, s_misc.c, s_bsd.h, ircd.c, s_debug.c: + Removed s_ping. There are much better tools available that actually work + correctly. The s_ping code was a waste of resources, and has historically + given incorrect results (it never worked correctly). +* ircd/s_bsd.c, res.c, s_user.c, s_serv.c: little fixups to allow code to + build on Solaris, still have some warnings there. + TODO: wrap crypt and things that depend on _XOPEN_SOURCE in their own + file so it doesn't bother the network code. +* ircd/s_bsd.c: cast option arg to const char* for setsockopt (solaris) +* ircd/Makefile.in: removed hard coded dependencies for hash.o chkconfig.o, + let the automatic stuff take care of it, it does it better than humans. +* *.c *.h: remove register keywords, attribute macro junk, cleanup + dependencies, rename MIN and MAX to IRCD_MIN IRCD_MAX all headers in + C files are sorted, removed as many duplicate includes as I could find + (dozens) general cleanups. Mutter the correct runes to get the protoype + for crypt included where it was needed. +* *.c *.h: dependency cleanups up to querycmds.c +* ircd.c, bsd.c, s_bsd.c: move signal handling code to ircd_signal.c +* ircd_signal.c, ircd_signal.h: new files, use only POSIX signals remove + support for unreliable signals. +* *.h *.c: include guards, dependency cleanups +* Configure.in, setup-sh.in: include guards, config.h includes setup.h + add config dir to include path +* sys.h: include guards, remove hard coded path to config.h +* s_user.c (hunt_server): fix logic bug +* numnicks.c (SetServerYXX): fix off by one error +* multiple files (n2k patch): add code to handle extended numerics