]> jfr.im git - irc/quakenet/snircd.git/blob - doc/history/ChangeLog.10
Initial import of 2.10.12.01
[irc/quakenet/snircd.git] / doc / history / ChangeLog.10
1 #
2 # ChangeLog for ircu2.10.10
3 #
4 # $Id: ChangeLog.10,v 1.2 2003/01/08 03:17:18 klmitch Exp $
5 #
6 # Insert new changes at beginning of the change list.
7 #
8 -------------------------- Released 2.10.10.pl15
9 * Fiddle with /KILL and various exits to make the user experience uniform,
10 no matter who's doing the killing or where. Previously, differences in
11 QUITs and in the messages sent to the killed client could help make a
12 partial map of the network; now that these messages are all uniform, there
13 is no way to tell. -Kev
14 * Split ISUPPORT numeric into two numerics, so as not to exceed the 15
15 parameter limit imposed by the RFC -Kev
16 * Turn on HEAD_IN_SAND_REMOTE...oops -Kev
17 * Send prefixed error messages to other servers, so ERROR doesn't get
18 interpreted as a prefix -Kev
19 * Reverse sense of HEAD_IN_SAND_WHO_HOPCOUNT to do what was intended; use a
20 hopcount of 0 if user is using /who on him/herself -Kev
21 * Allow a user to see his/her own idle time without having to do
22 /whois <nick> <nick>; correct spelling of HEAD_IN_SAND_IDLETIME to
23 HEAD_IN_SAND_WHOIS_IDLETIME -Kev
24 * Fix a missing ')' in the idle time stuff -Kev
25 * Include ircd_policy.h in whocmds.c -Kev
26 * Fixed bug in idle time, thanks hektik -- Isomer
27 * Update 005 to be compliant with other networks -- Isomer
28 * Hide hop count -- Isomer
29 * Hide idletime unless you explicitly ask for it -- Isomer
30 * /wallops and /wallusers would dump core because of the previous change--my
31 bad. Now only include user@host when sptr is a client. -Kev
32 * /wallops and /wallusers would leave out the user@host--noticed because
33 pl14 broke my script. Fixed. -Kev
34 * Fix several compile warnings, including the one in table_gen.c -Kev
35 * Fix a bug in m_silence.c that rendered it uncompilable -Kev
36 * Hopefully make mode clears during bursts appear to originate from local
37 server -Kev
38 * Fix several things to send server<->server protocol messages with numeric
39 origins -Kev
40 * Rework directed notices and mass-messages to use numerics and tokens
41 as appropriate; the latter required the modifications to
42 sendto_match_butone() -Kev
43 * Redefined how sendto_match_butone() works, since it's only used with
44 PRIVMSG or NOTICE -Kev
45 * Bumped patchlevel to pl15(development) -Kev
46 * Corrected reverse-sense of HEAD_IN_SAND_REMOTE test in m_whois() -Kev
47 * Clean up logic in m_whowas(), corrected numeric reply -Kev
48 * Finally fixed /whois to tell you what your own server is -Kev
49 * Clean up logic in add_banid() with some well-placed DupString()'s -Kev
50 * Hide which server performed a nick collision kill -- Isomer
51 * To allow for remote whois not giving away the remote server, all remote
52 numerics to clients are remapped to come from the local server :/ -- Isomer
53 * All remote queries are disabled for users, except /whois -- Isomer
54 (/whois now uses the second parameter for which server to use, ie:
55 /whois <ignored> <nick> will query <nick>'s server.)
56 * Fixed /who showing server name -- Isomer
57 * Fixed burst showing linking server -- Isomer
58 * Fixed burst bans showing linked server -- Isomer
59 * Fixed /whowas showing server name -- Isomer
60 -------------------------- Released 2.10.10.pl14 (You got any issues with that punk?)
61 * Changed (then fixed) /LINKS to output an empty links list -- Isomer
62 * Make netsplit server notice say the right thing
63 * Final fix for HEAD_IN_SAND_WHOIS_SERVERNAME
64 * Fix a bug with implementation of HEAD_IN_SAND_NETSPLIT
65 * Permit users to find out what server they're on, since they already
66 know -- Kev
67 * Added HEAD_IN_SAND_WHO_SERVERNAME to cover final source of server
68 names -- Kev
69 * Fixed wallops, wallusers now sends wallops to local clients,
70 wallusers to servers.
71 * Added host to /kill messages -- Isomer
72 * Fixed whois (opers can see server names) -- Isomer
73 * Implement walluser -- Bleep
74 * stats fixed -- Isomer
75 * trace disabled from non opers -- Isomer
76 * server name removed from whois (but not /who, shrug!) -- Isomer
77 * netsplits are now represented with "*.net *.split" -- Isomer
78 * Done /links -- Isomer
79 * Modifications to map as suggested by nighty -- Isomer
80 * Wallops is the only code that uses sendto_ops_butone now, this
81 isolates wallops entirely. No server notices sent by wallops.
82 * HEAD_IN_SAND_SNOTICES done -- Bleep
83 * HEAD_IN_SAND_WALLOPS done -- Bleep
84 * HEAD_IN_SAND_DESYNC done -- Bleep
85 * HEAD_IN_SAND_MAP done -- Isomer
86 * According to CFV-165, buring our head in the sand to try and
87 * hide from DoS - First pass -- Isomer
88 * As requested by hop: hidden keys are shown as "*" not "" -- Isomer
89 * As requested by Buff: allow admins to *disable* below behavour -- Isomer
90 * As requested by Adriel, compile time option to disable mo_wallops
91 -- Isomer
92 -------------------------- Released 2.10.10.pl13
93 * Don't allow two copies of the server to start -- Isomer/Kev
94 -------------------------- Released 2.10.10.pl12
95 * Release 2.10.10.pl12 before Mr_RIP threatens physical violence -- Isomer
96 * Don't 'hubhide' nick's in /trace (oops!) -- Isomer
97 * Allow K:line by realname, updated client connection logging -- Gte-
98 * ircd/m_join.c: use ERR_BANNEDFROMCHAN instead of ERR_BADCHANNAME -- Kev
99 --------------------------- Released 2.10.10.pl11.(release)
100 * Fixed G-lined (reason), thanks to dfx -- Isomer
101 * Added reason to the "G-lined (reason)" quit messages. -- Isomer
102 * Removed 'for nick[1.2.3.4]' from quit messages, they're redundant
103 and make hub hiding more reliable --Isomer
104 * ircd/s_user.c (hunt_server): add 'No such server' message back
105 --Isomer
106 * ircd/s_bsd.c: remove ALWAYSFLUSH - the problem wasn't ircu's fault
107 -- Isomer
108 * ircd/m_names.c (m_names): don't add a space if the user's a
109 zombie; fixes an overrun where we generate a huge number of spaces
110 in the names reply without length-checking them properly -- Kev
111 * added 'ALWAYSFLUSH', if you thought the furgeson flusher was bad...
112 --Isomer
113 * Fixed /USERHOST again. Horribly embarrased. Thanks again Liandrin
114 --Isomer
115 * Added extra field to /stats Y showing how many people are in that class.
116 Information was previously available via /trace, however tended to flood
117 you off if you weren't on a good connection. Requested by Mr_RIP
118 -- Isomer
119 * Fixed 'BADCHAN' resetting itself to 'Y', reported by Gator --Isomer
120 --------------------------- Released 2.10.10.pl10
121 * Released 2.10.10.pl10
122 * Backported /names optimisation from 2.10.11.
123 '/names 0' now returns verbose listing, '/names' simply returns
124 ENDOFNAMES. Disallow harmfull /names usage. --Gte
125 * Fixed ERR_NOSUCHNICK bug in userhost, thanks to Liandrin --Isomer
126 * Conceal more bugs in IPcheck --Isomer
127 * Add 'POST' as a unregistered command to disconnect people abusing web
128 proxies --Isomer.
129 * Conceal bugs in IPcheck --Isomer
130 * Fix for changing the wrong define --Isomer
131 * Fix for the easter buggy. --Isomer
132 * Fix for rpong --Run
133 * Fix for other IPcheck bug, thanks BLMet. --Bleep
134 * Fix for IPcheck bug, rewrite IPcheck from scratch (mostly),
135 add changes for new code to s_user.c, ircd.c --Bleep
136 * Shorten connection timeout for auth queries to 60 seconds
137 If connection is from localhost use the server alias for the
138 client host. --Bleep
139 * Fix for ident bug --Isomer
140 * Fix for rping/rpong --Gte
141 * Add m_pong to parser handler --Bleep
142 * Fix for EXTENDED_NUMERICS bug doh!!! --Bleep
143 * Fix for Max Undernet Server bug --Bleep
144 * Fix for PRIVMSG<->NOTICE translation from hubs --Bleep
145 * Fix for Bogus protocol strings for P9 servers --Bleep
146 * Hookup UPING code again, cleanups --Bleep
147 * Convert numerics back to mask and shift extended numerics
148 follow same mechanism --Bleep
149 * Fixed bogus errno return on Solaris --Bleep
150 * Fixed core on RPING bug, tokenized RPING --Bleep
151 * Remove add_local_domain entirely, unused --Bleep
152 * Merge u2_10_10_beta06 create branch u2_10_10_beta07 --Bleep
153 * Remove size_t from socket calls, audit usage of size_t
154 values. --Bleep
155 * Fix for OSF1, RES_NOALIASES not defined there. --Bleep
156 * Don't bother doing hostname lookup or setting me.sockhost
157 since we never want to display it there is really no reason
158 to have the info. --Bleep
159 * Bugfix broken N:line check in chkconf --Maniac
160 * Bugfix, fix clients occasionally getting stuck in IPcheck
161 code. Add note to members in client struct that aren't used
162 for any remote client code, didn't want to actually move them
163 this close to release (paranoia) --Bleep
164 * A few little cleanups in check_pings, removed yet another
165 address display. --Bleep
166 * Bugfix, autoconnects displaying server IP address to opers.
167 --Bleep
168 * Remove names from /stats p, since its always the server
169 name from the M:line anyhow, (redundant information)
170 --Bleep
171 * Unborked throttling. --Bleep
172 * Fix two stupid bugs, related to IP mismatch kills. --Bleep
173 * Clean up configuration, make it a bit easier for admins to
174 turn off asserts and heap checking code. Moved host name dns
175 query for listener virtual host ports to dead code and use
176 me.name for the listener name (no sense in looking up the name
177 if we don't want to display it). Change direct bump of unknowns
178 in s_bsd.c to Count_newunknowns(UserStats) for consistency.
179 --Bleep
180 * Added option to kill any connecting client with a forward and
181 reverse DNS mismatch. Fixed bug in s_auth that that caused
182 incorrect counts for unknown clients. Replaced missing server
183 notice for SNO_IPMISMATCH. --Bleep
184 * Added a few more little name tweaks, no sense in looking up
185 the hostname in the conf if no one knows it. --Bleep
186 * Moved to beta archive, bumped patchlevel, fixed message for
187 lost C:line in s_conf.c (I don't think I've ever seen this happen)
188 --Bleep
189 * Finished host hiding changes, it should not be possible for any
190 online user to discover the real hostname or IP address of any
191 connected or unconnected server listed in the configuration. This
192 applies to opers and regular users. The name in the M:line is the
193 name used for connecting and all informational messages. --Bleep
194 * Removed code in dbuf.c that flushes the dbufs if the server runs out
195 it looks like a fully loaded server may not be able to handle a net
196 break without shedding a few clients. --Bleep
197 * Finish IP address cleanup, alpha should be clean for not displaying
198 server hosts or IP addresses to users now. This needs to be verified.
199 Changed version to u2.10.10 per Isomers suggestion. --Bleep
200 * Remove server IP address from info line for connecting servers.
201 This almost completes the IP address hiding changes for alpha, there
202 are still a few stats commands available to users that will show the
203 server addresses, but they can be easily disabled or only show '*'s
204 to non-opers. --Bleep
205 * Fix possible (but not likely) memory leak in debug allocator, couldn't
206 find the "meg a minute" problem, using the debug allocator on the
207 production network with more than 1000 clients on a server may cause
208 problems if you don't have a lot of memory. (This does not seem to
209 be a problem with non-debug builds) --Bleep
210 * Captialisation fixes, just to keep certain ppl quiet. --Isomer
211 * Removed +s channels from /list. They were shown sometimes, but not
212 others, and the information that was shown about them was inconsistant.
213 list is not an effective way to gain information anyway. Reformatted
214 and touched up readme.who as well. --Isomer
215 * Added MAP to ISUPPORT, added doc/features.txt --Isomer
216 * Added suggestions made by scripters. more info for ISUPPORT, and
217 added stuff to 'TODO' --Isomer
218 * More TODO items 'done'. P:'s now ignore '*'s. ping shouldn't do funky
219 stuff with mirc anymore, needs discussion --Isomer
220 * Typo fixed. Now I'm annoyed. --Isomer
221 * Right, Makefile's gonna work now or I'm going to get REALLY annoyed at it.
222 --Isomer
223 * TODO, m_ping, ircd/Makefile.in: Added note to TODO, added info to
224 m_ping, and fixed Makefile bug using bsdmake. --Isomer
225 * s_bsd.c, listener.c, s_user.c, s_serv.c, s_bsd.h:
226 Set receive and send buffers in correct order to enable flow
227 control for clients and support fat pipes better for servers.
228 Finally got it right :)
229 See Stevens "Unix Network Programming" v1 p 191-193
230 --Bleep
231 * ircd.c (main): added idiot checking to make sure MAXCONNECTIONS
232 is sane. --Bleep
233 * send.c: Don't let negative fd's break stuff, audit sentalong
234 usage for sillyness. --Bleep
235 * send.c (sendto_common_channels): bug fix, code assumed client
236 local, file descriptor is only in local client struct
237 --Bleep
238 * table_gen.c, channel.c: make FIXME changes, removed
239 FIXME code from table_gen, readd FIXME code to channel.c,
240 I hope I got this right. --Bleep
241 * Makefile.in: Add purify def, fix so CFLAGS don't error
242 off when using Solaris compiler --Bleep
243 * fda.c (fda_free): fix compile error on Solaris --Bleep
244 * configure.in: add SunOS case to detect Solaris --Bleep
245 * os_solaris.c (os_send_nonb): fix solaris compile error --Bleep
246 * exaconf.2: add file from conf design to docs directory to
247 have it available for new conf parser development --Bleep
248 * fda.c (fda_free): fix memory leak, doh!!! --Bleep
249 * hash.c (addNickJupes): fix buffer overrun --Bleep
250 * s_bsd.c (read_message(poll)): fix uninitialized memory read
251 bogosity in poll macros. --Bleep
252 * channel.c (send_user_modes): change to send XXX:ov instead
253 of XXX:o:v doesn't send XXX: if no modes set. --Bleep
254 * s_bsd.c (connect_server): bugfix for connect/rehash/connect
255 multiple outstanding dns query core. --Bleep
256 * channel.c (send_user_modes): bugfix for burst not sending modes
257 when burst line is created. --Gte
258 * m_gline.c: change NumServ(cptr) to NumServ(sptr) found by Gte
259 --Bleep
260 * config-sh.in: add WildThangs BADCHAN config fix --Bleep
261 * config-sh.in: add Runs restart bugfix --Bleep
262 * Makefile.in: make sure version.c gets regenerated when checksums
263 change --Bleep
264 * Makefile.in: remove hash.c/crypt/sums idiocy, all of the ridiculous
265 anti-hack stuff is already done in version.c anyhow.
266 "Shhh..., don't tell the admins ( .)( .) you're being watched"
267 --Bleep
268 * hash.c (m_hash): fix count bugs --Bleep
269 * m_squit.c (mo_squit): fix off by one, /quote SQUIT bug --Bleep
270 * ircd_relay.c: oops, changed the wrong one. Fixed previous fix. --Isomer
271 * Makefile.in, ircd_relay.c: Fixed 'make depend', added dependancies, fixed
272 bug where server would core on sending a server notice --Isomer
273 * m_kick.c (ms_kick): fix core on kick message coming from
274 server --Bleep
275 * config.in: remove CRYPT_LINK_PASSWORD option --Bleep
276 * doc/readme.www: Applied Runs' doc patch --Bleep
277 * client.h: Add member to client struct to try to aggravate the
278 bug found by Jesus --Bleep
279 * client.h: Remove IsListening macros and flags, add FLAGS_UPUNG
280 and IsUPing/GetUPing/SetUPing macros --Bleep
281 * m_silence.c, m_create.c: check for IsServer(sptr) don't
282 allow X SILENCE X +*@*.com or X C #blah 947477407 core the
283 server. --Bleep
284 * os_*.c, res.c: clean interface for os_recvfrom_nonb --Bleep
285 * uping.c, uping.h: new files for UDP pings, these aren't hooked up yet, or
286 finished or tested.
287 --Bleep
288 * channel.c: find_member_link(): Fail fast for Servers, prevents core when
289 servers set a channel mode. --Isomer
290 * channel.c, channel.h, various.c: Changed find_member_link() to take
291 a chptr instead of the first member, and special case'd +k users
292 (see comment in code for more details) --Isomer
293 * ircd/Makefile.in: Changed gnu specific $^ for $< in table_gen
294 rules --Bleep
295 * INSTALL: Explained about CVS --Isomer
296 * example.conf: Point to coder-com@ for help configuring the server. --Isomer
297 * INSTALL: Make things a bit more plain. --Isomer
298 * s_bsd.c (read_message (poll)): removed local_cptr array using
299 this temp made possible a bug where if a client lower in the list
300 managed to exit a client higher in the list, a dangling reference
301 to the already exited client would be left in the local_cptr array.
302 Found by Quantum by loading 100's of clones with the same nick.
303 --Bleep
304 * INSTALL: Added instructions for -lcrypt FAQ --Isomer
305 * INSTALL: Added instructions for -lresolv FAQ --Isomer
306 * INSTALL: Added instructions for making ./configure executable --Isomer
307 * numeric.h: Merged in some more numerics that other ircds user --Isomer
308 * IPcheck.c: Fix gramatical error to keep pedants happy. --Isomer
309 * IPcheck.c: Allow -DNOTHROTTLE for debugging purposes. --Isomer
310 * m_stats.c: make stats c available to opers only, TEMP_HACK --Bleep
311 * IPcheck.c: Fixed outdated comment. Thanks Quantum --Isomer
312 * ircd_reply.c: Fix the fix, silly typo. thanks Bleep --Isomer
313 * ircd_reply.c: added check for people without nicks. --Isomer
314 * doc/Authors, ircd/version.c.SH: updated /info and maintainer
315 lists. --Isomer
316 * channel.h, channel.c, m_join.c, m_mode.c: add David M's
317 lchanmode patch update --Bleep
318 * s_auth.c: fix ident bug, comment code for rule. --Bleep
319 * m_invite.c (m_invite): Fix syntax error, missing ')'. -- Isomer.
320 * m_invite.c (m_invite): tokenize invites, change from accidental
321 broadcast to directed message (bug fix). --Bleep
322 * m_time.c (m_time): send tokenized time messages --Bleep
323 * s_user.c (set_user_mode): Send wallops to everyone by default
324 allow compile option WALLOPS_OPER_ONLY for networks that want
325 to disable wallops for users. --Bleep
326 * s_misc.c (exit_one_client): tokenize client quit message to other servers.
327 --Gte
328 * m_kick.c: you would have thought I'd fix all of them the first time, but
329 no... -- Isomer
330 * m_kick.c: Fixed missing space after TOK_KICK -- Isomer
331 * m_burst.c: Fixed netrider kick bugs -- Isomer
332 * s_user.c: Bug fix --Bleep
333 * s_user.c: only send wallops to opers --Bleep
334 * s_user.c: enforced undernet policy. -- Isomer
335 * s_user.c: replace user_modes with struct UserMode array
336 change code to use new struct. --Bleep
337 * s_user.c (set_user_mode): clean up switch statement --Bleep
338 * channel.c (set_mode): fixed -k foo bug, extra == 0 typo in
339 conditional. --Bleep
340 * dbuf.c (dbuf_alloc): fixed count bug, we _have_ to count it in
341 the branches. --Bleep
342 * dbuf.c, send.c, s_bsd.c, send.h: bahh finally did it right,
343 if a dbuf allocation fails, attempt to flush all send buffers except
344 for the one we are trying to build (we're twiddling with the list etc..)
345 if the allocation fails a second time, _then_ bail. --Bleep
346 * s_bsd.c, send.c: if dbuf_put fails for send or receive buffers,
347 call flush connections to free up some buffers (safe here). --Bleep
348 * dbuf.c (dbuf_put): back out previous change, afaict it would fail
349 spectacularly --Bleep
350 * dbuf.c (dbuf_put): call flush_connections(0) if we can't allocate
351 a dbuf the first time, this may prevent the server from dropping
352 connections during netbursts. --Bleep
353 * m_privmsg.c: fix IDLE_ON_MSG fix -- Isomer
354 * m_privmsg.c, parse.c: fix IDLE_ON_MSG bug --Bleep
355 * m_ison.c (m_ison): Temp hack to fix missing null terminator. --Bleep
356 * m_nick.c (m_nick): fix null nick reply bug --Bleep
357 * ircd_string.c, match.c: fix a couple possible issues with
358 the character attribute changes --Bleep
359 * s_auth.c, ircd.c: turn off connection status messages for
360 connections to server ports. --Bleep
361 * ircd.c, s_conf.c, m_server.c, ircd.h, s_conf.h:
362 removed portnum and server_port global variables, server port
363 in M:lines is ignored, server ports now need to be defined in
364 the P:lines. Add SERVER_PORT config option to allow:
365 '/connect server.net.dom' without specifying the port. --Bleep
366 * config-sh.in: change PORTNUM to SERVER_PORT now used for
367 default server port for outgoing connections in m_connect.
368 --Bleep
369 * example.conf: document changes to M:line for server port --Bleep
370 * ircd_chattr.h, ircd_string.h, ircd_string.c, table_gen.c:
371 put Nemesi's table generation code and macros back in, the
372 tables are now automagically generated whenever the table_gen.c
373 file is modified, use a slightly different mechanism to get the
374 tables in the executable. Add reference data file to test dir
375 for character attributes. --Bleep
376 * s_auth.c (check_ident_reply): add function that implements
377 auth reply undernet rules checking. --Bleep
378 * s_misc.c (date): added Runs Y2K patch --Bleep
379 * m_privmsg.c: work on server handlers, hookup new code to parser,
380 test, fixed a couple bugs, fixed username bug in server NICK
381 processing --Bleep
382 * ircd_chattr.c, m_privmsg.c: Work on privmsg code a bit more,
383 commit for review, still a bit more to do --Bleep
384 * os_bsd.c, configure.in: add os dependency file for bsd
385 --Bleep
386 * m_privmsg.c, ircd_string.c: little cleanups for privmsg
387 work on prototype handler for new parser. --Bleep
388 * m_connect.c, s_conf.c: clean up /connect handling code
389 --Bleep
390 * m_away.c, m_admin.c, m_close.c, m_connect.c:
391 start cleaning up handlers --Bleep
392 * whocmds.c, whowas.c, *.c: split out handlers from whocmds.c
393 and whowas.c --Bleep
394 * s_serv.c, m_*.c: split out handlers from s_serv.c
395 --Bleep
396 * querycmds.c, m_*.c: split out handlers from querycmds.c
397 --Bleep
398 * opercmds.c, m_stats.c, m_connect.c, parse.c, handlers.h, *.c
399 add new command handlers --Bleep
400 * channel.c, m_names.c: new file for names handler --Bleep
401 * channel.c, m_list.c: new file for list handler --Bleep
402 * channel.c, m_topic.c: new file for topic handler --Bleep
403 * channel.c, m_burst.c: new file for burst handler --Bleep
404 * channel.c, m_create.c: new file for create handler --Bleep
405 * channel.c, m_destroy.c: new file for destroy handler --Bleep
406 * channel.c, send.c, m_join.c: new file for join handler,
407 const fixups for send.c --Bleep
408 * channel.c, m_mode.c: new file for mode command handler,
409 clean up file scope buffer mess. --Bleep
410 * m_silence.c: split out SILENCE handler to a new file,
411 cleanup --Bleep
412 * m_ison.c: split out ISON handler to a new file, cleanup --Bleep
413 * m_userip.c: split out to new file, change userhost and userip
414 to use same algorithm with different formatting functions --Bleep
415 * m_userhost.c: split out to new file --Bleep
416 * send.c: add new function send_buffer, cleanup godemode ick a bit
417 --Bleep
418 * m_wallchops.c: split out wallchops handler --Bleep
419 * m_cprivmsg.c: split out m_cprivmsg and m_cnotice.
420 * m_pass.c, s_user.c: split out m_pass, pass message handler
421 --Bleep
422 * m_oper.c: split out m_oper.c from s_user.c, setup to use
423 new parser. --Bleep
424 * m_pong.c, m_ping.c, parse.c, s_user.c, channel.c:
425 Add new file for pong messages, convert ping and pong to use
426 numerics. Test pings and pongs on testnet. Fix numeric
427 nick bug in channel.c. --Bleep
428 * m_ping.c, s_serv.c, parse.c: new file for pings, fixed a
429 minor bug in ping handling. --Bleep
430 * m_nick.c, m_kill.c: clean up nick code for servers, still needs work
431 fix string formatting bug in m_kill --Bleep
432 * m_nick.c, s_user.c, ircd_chattr.c: add new file for NICK command,
433 clean up local client registration for nicks. --Bleep
434 * m_away.c, s_user.c, parse.c: split out m_away handlers for client,
435 add user_set_away function. --Bleep
436 * m_kill.c, ircd_reply: Rework handling of kill from server, add new error
437 message formatter. --Bleep
438 * m_kill.c (mo_kill): Rework handling for kill from operator on server
439 kill originated from --Bleep
440 * m_kill.c: new message handler file for kill --Bleep
441 * configure.in, ircd/Makefile.in: added automatic os checking to autoconf
442 checked --Gte
443 * m_quit.c: new message handler file for quit --Bleep
444 * m_privmsg.c: new message handler file for privmsg --Bleep
445 * ircd_string.c, support.c, support.h, *.c: moved strtoken to ircd_string
446 and renamed ircd_strtok --Bleep
447 * channel.c, s_user.c, s_debug.c, send.c, channel.h: finish membership code
448 --Bleep
449 * channel.c, more cleanups of membership code and macros --Bleep
450 * channel.c, s_misc.c: more cleanup in channel link code, most likely
451 still a bit broken yet, more to come. --Bleep
452 * querycmds.h (Count_remoteclientquits): fix minor bug --Bleep
453 * ircd.h, querycmds.h, struct.h, channel.c, list.c, map.c, opercmds.c,
454 s_err.c, s_serv.c, s_user.c, s_misc.c: Add Isomers passivelag0-1.patch
455 fixed minor bug in macros --Bleep
456 * channel.h, channel.c, s_user.c, s_debug.c, s_user.c:
457 added Membership struct for channel associations, change user/channel
458 lookups to use new struct. --Bleep
459 * channel.c, channel.h, s_user.c: cleanup channel and user code
460 a bit, new function find_no_nickchange_channel --Bleep
461 * parse.c, m_defaults.c: added default handlers and hooked up new
462 message handlers --Bleep
463 * *.c, struct.h: added Isomer's passivelag patch and, the second
464 p10 patch --Bleep
465 * ircd_reply.[ch]: new files for commonly used replies --Bleep
466 * m_proto.[ch]: new file for protocol command support, needed for zip
467 links --Bleep
468 * client.h, parse.c, msg.h: add code to support multiple message handlers
469 depending on client status. --Bleep
470 * s_bsd.c, packet.c: code cleanup prep for zip links --Bleep
471 * channel.c, opercmds.c, ircd.c, s_serv.c, s_user.c, querycmds.c,
472 whocmds.c, whowas.c: Add Isomers p10ify patch, tokenize server to
473 server commands --Bleep
474 * s_user.c (m_nick): killed goto --Bleep
475 * client.h, *.c: moved client stuff to client.h --Bleep
476 * version.c.SH, patchlevel.h, .patches: change version string
477 generation, patch level is now set in patchlevel.h by simply
478 bumping the number in the PATCHLEVEL string. --Bleep
479 * ircd_alloc.c, channel.c: fixup warnings in release build (NDEBUG)
480 --Bleep
481 * fda.h, ircd_alloc.h, fda.c, ircd_alloc.c, fda_t.c: new files,
482 runmalloc was core dumping on squits and unable to handle or
483 detect double frees, the memory debug code can be disabled by
484 compiling with NDEBUG defined --Bleep
485 * channel.c (remove_user_from_channel): refactor function --Bleep
486 * channel.c (m_kick): refactor function a bit, put all checks at top
487 move code out to new function (make_zombie) --Bleep
488 * s_bsd.c (completed_connection): fixed stupid
489 "Write error to blah: Socket not connected" bug --Bleep
490 * struct.h, send.h, send.c, s_bsd.c, IPcheck.c, s_user.c, *:
491 More socket code cleanup, move file descriptor to local part of
492 client struct, use cptr->error to handle the errno of any socket
493 error, fix bug in IPcheck that ends up only disallowing every
494 256th clone, Add more ipcheck forgiveness to s_user.c (needs work).
495 Changed IPcheck_local_connect and IPcheck_connect_fail interfaces to
496 use struct in_addrs instead of client structs to allow delaying the
497 allocation of the client struct till after the check was done.
498 Added can_send function to send.c (should be called before work is done
499 but right now it's called just before trying to send (needs work))
500 * channel.c: Added Isomers netride2.patch, still needs a config option
501 to turn it on (NO_INVITE_NETRIDE) --Bleep
502 * parse.c, msg.h: Added silent ignores for notices so connect progress
503 messages do not cause connecting server to spew ERR_REGISTER_FIRST
504 messages at the server it's connecting to. --Bleep
505 * s_serv.c, s_user.c, channel.c, send.c: Tokenised BURST, NICK,
506 END_OF_BURST, EOB_ACK, PRIVMSG and NOTICE Server to Server.
507 About 8-10% Bandwidth saving on BURSTS. --Gte
508 * channel.c (m_join): servjoin patch --Isomer
509 * ircd_osdep.h, os_*.c, s_bsd.c, send.c: more cleanups in socket code,
510 use enumeration for IO results. --Bleep
511 * s_bsd.c: clean up select and poll code a bit more, fixed message pacing bug
512 in poll. --Bleep
513 * supported.h, numeric.h, s_user.c, s_err.c: Added Isomers features
514 patch. Use numeric 005 RPL_ISSUPPORT to convey server features to
515 clients. --Bleep
516 * s_user.c (m_nick): IP differ patch, use IP address instead of host
517 name to determine different user@host for nick collides. --Isomer
518 * hash.c (hChangeClient): Bug fix. Fixed bug that caused stale entries
519 to be left in client hash table after a name change. Discovered by
520 Quant and Isomer. --Bleep
521 * hash.c (hSeekClient): fixed bug I introduced when reversing my hash
522 table code changes, thanks Quant and Isomer --Bleep
523 * opercmds.c (m_lusers): send limited luser info to remote
524 clients --Isomer
525 * numeric.h, channel.c, s_err.c: Changed invite list numerics
526 from 283/284 to 346/347 to match IRCnet numerics --Bleep
527 * config-sh.in, gline.h, numeric.h, gline.c, opercmds.c, s_debug.c, s_err.c:
528 Add badchan patch by WildThang --Bleep
529 * config-sh.in, channel.h, numeric.h, channel.c, s_debug.c, s_err.c:
530 Add lchanmode patch by David M --Bleep
531 * channel.c (cancel_mode): removed incorrect assert --Bleep
532 * *.c: removed P9 support, not everything is completely gone but most
533 of it is, the server builds and connects to other servers, but thats
534 as far as it's been tested so far. --Bleep
535 * ircd.h, ircd.c, s_bsd.c:
536 removed BOOT_INETD/BOOT_CONSOLE code, unused non-functional --Bleep
537 * struct.h, ircd.h, ircd.c, s_user.c, s_bsd.c:
538 removed BOOT_OPER/STAT_MASTER code, original patch by Isomer --Bleep
539 * s_user.c (m_nick): removed redundant check for acptr
540 * hash.c (hSeekClient, hSeekChannel): roll back some of hash.c changes
541 * hash.c (hSeekClient, hSeekChannel): removed unused variable from previous
542 changes.
543 * hash.c (hSeekClient, hSeekChannel): fix compile error from status changes,
544 fix logic bug that caused the first client that matched the mask to be
545 returned regardless of whether or not it's name matched, this can result
546 in wierd problems where the wrong server/client could be returned from the
547 hash table lookup. Removed code that moved client to head of hash table
548 chain for it's bucket when it's looked up, if the hash table is working
549 reasonably well this just wastes cpu.
550 * hash.c, list.c: added code to zero out cptr->hnext when client removed
551 from hash table, added assert for hnext == 0 in list.c to make sure that
552 client was actually removed from the hash table before freeing it's memory.
553 * various: misc cleanups
554 * support.c: removed dead code
555 * configure.in: remove unneeded checks for minix, aix, ansi/posix headers
556 these things are handled by porting layer code.
557 * res.c: remove calls to add_local_domain, these were causing incorrect
558 behavior
559 * opercmds.c: cleanups in gline code
560 * s_bsd.c: increase socket buffers to 65535 for server connections
561 * crypt/mkpasswd.c: mutter correct runes to get file to compile without warnings
562 * gline.c, gline.h: add new files to attempt to encapsulate glines a bit,
563 some code from opercmds.c needs to be moved here still
564 * opercmds.c (m_gline): fix local gline bug
565 * s_conf.c (initconf): add password change on rehash fix
566 * s_conf.c (rehash): fix rehash freeing and reloading the motd/rmotd files for
567 every client connected.
568 * ircd_log.c: use 2K fixed buffer instead of vsnprintf, nothing we write to
569 the log should ever exceed 512 bytes, but it doesn't hurt to be paranoid.
570 * res.c: change resolver timeouts to 5 seconds, per RFC1123
571 * channel.c: more little cleanups, no code changes
572 * channel.c: a) stops iterating over /invite list
573 b) adds /invite to list the channels you're currently invited to.
574 c) adds lotsa new numerics --Isomer
575 * ircd_signal.c, ircd.c: fix bug in signals
576 * channel.c (can_send) add Isomer's changes
577 * channel.c: add send_ban_list, cleanup a few names, reformat some parts to make
578 more readable, fix bug introduced by name changes
579 * ircd_chattr.[ch]: add new macro for checking K:line time chars vs comments
580 * listener.c (show_ports): add code to show client/server and hidden status
581 * s_conf.c: bug fixes, cleanups, add code to set server port and hidden
582 status for listeners (P:lines)
583 * s_conf.c (initconf): add interface selection code to P:lines so ports can
584 be set on a single interface or multiple interfaces (multi-homed hosts)
585 * s_conf.c: rewrote C/N line code, removed N:lines entirely, clean up server
586 conf line code.
587 * s_conf.c (check_server): move ip checks out of resolved or not so they can
588 be checked for worse case situations on server connects
589 * res.c (resolver_read): add Isomer's debug info for failed resolver queries
590 * opercmds.c (m_stats): remove call to time(0) for each local client in
591 stats l command, use CurrentTime instead
592 * s_conf.c (initconf): only do lookups on C:lines instead of both C/N lines
593 * res.c: fix resolver hang bugs
594 * s_conf.c (rehash): remove extra semicolin that was causing c/n lines to
595 accumulate
596 * s_conf.c (rehash): add portnum back to the listener list so we don't loose
597 the server port on a rehash
598 * s_auth.c, listener.c: remove warnings for normal errors
599 * s_auth.c, listener.c: use osdep non-blocking calls instead of locals
600 * s_auth.c, listener.c: add code for non-blocking recovery for listeners and
601 auth queries
602 * s_auth.c (auth_error): call IPcheck_connect_fail if the client socket dies
603 during the auth check so the reference count doesn't get borked in the
604 IPcheck code.
605 * numnicks.c: yet another extended numerics bug fix... sheesh
606 * s_bsd.c, s_conf.c: move conf line code from s_bsd.c to s_conf.c, cleanup
607 cleanup check_server, check_client (still not completely tested, may be
608 a bit buggy yet).
609 * parse.h, parse.c, s_debug.c: remove privmsg logging code
610 * numnicks.c (FindXNServer): fix off by one bug
611 * common.h, common.c: removed unused files
612 * s_bsd.c (net_connect_completed): new function, called after connection
613 establishment for servers and clients, release reference count for
614 the dns reply and set the socket buffer size to IRCD_READBUF_SIZE
615 for servers and 2K for clients.
616 * channel.c, crule.c: cleanup bogus casts
617 * listener.h (add_listener): fix bug that caused server a server port listener
618 to think it was a client port listener.
619 * s_user.c, s_serv.c: release reference to dns_reply when connection is
620 established.
621 * s_bsd.c (completed_connection): removed call to start_auth for connects
622 the auth module expects connections not to be linked anywhere and owns
623 the client struct until it's done.
624 * listener.c (release_listener): fix inverted assert client exit bug
625 * ircd_chattr.c: fix signed/unsigned warnings with Sun Workshop (+w)
626 * ircd_chattr.c, ircd_chattr.h: new files for character attributes and case
627 translation, hopefully they will be a bit easier to maintain.
628 * s_conf.c (rehash): fixed logic bug that caused and infinite loop,
629 fix port update bug (needed to call mark_listeners_closing before initconf)
630 * *.c, runmalloc.[ch]: change the way the server deals with out of memory
631 conditions. On server startup a no-memory handler is installed which
632 calls server_restart if an allocation fails. Allocations are now checked
633 in the memory allocation functions. Added asserts after every allocation
634 to verify for debug.
635 * *.c *.h: move authentication and dns to authentication module rename a few
636 globals, const correctness fixes, add ircd_string code, rework network
637 code, use dns callbacks, removed a lot of redundant code
638 * s_bsd.c: finish this stage of net code work
639 * *.c, *.h: rewrite select and poll code, add listener.[ch] net.code overhaul
640 in progress, prepare for adding auth module
641 * s_bsd.h, struct.h: moved client struct macros back into struct.h for now,
642 the last place they belonged was in the network code... feh
643 * ircd.c (open_debugfile): removed client for debug file
644 * ircd_string.h, ircd_string.c: new files for string processing, add
645 ircd_strncpy function
646 * *.c, *.h: rename ircstp to ServerStats
647 * *.c, *.h: rename now to CurrentTime
648 * listener.h, listener.c: new files for listener ports
649 * include/ircd_defs.h: new file for global definitions (HOSTLEN, USERLEN)
650 * struct.h: add local_flag to client struct, to make local/remote detection simpler
651 * s_bsd.c (read_message): split out separate versions for select and poll
652 * s_bsd.h, various source files: remove the rest of the unix domain socket
653 support this removes a number of comparisons that were unneeded in
654 code that should run reasonably fast.
655 * os_*.c, res.c, ircd_osdep.h: add os_recvfrom_nonb for resolver
656 * os_*.c, s_bsd.c, s_auth.c, ircd_osdep.h: add os_get_sockname, os_get_peername
657 * bsd.h, bsd.c: merge into s_bsd
658 * ircd_osdep.h, os_generic.c, os_linux.c, ircd_osdep.h: move os variable stuff
659 to separate compilation units, os generic contains the original code
660 (start here).
661 * s_bsd.c, send.c, struct.h: remove pyr (pyramid) finally
662 * res.h, res.c, s_misc.c: cleanup headers/dependencies in res.h
663 * match.h: include sys/types.h before netinet/in.h, broken BSD system headers
664 * ircd/Makefile.in: remove CFLAGS from link line, use LDFLAGS instead
665 * ircd.c: add missing include for sys/socket.h
666 * common.h (strChattr, strCasediff): remove pointless non-portable inline
667 decls. The functions are complex enough that inlining just bloats the code
668 * ircd_xopen.h, ircd_xopen.c, s_user.c, s_serv.c: porting layer for crypt and
669 other xopen library calls, moved crypt to ircd_xopen.
670 * s_uping.c, s_uping.h, s_bsd.c, s_misc.c, s_bsd.h, ircd.c, s_debug.c:
671 Removed s_ping. There are much better tools available that actually work
672 correctly. The s_ping code was a waste of resources, and has historically
673 given incorrect results (it never worked correctly).
674 * ircd/s_bsd.c, res.c, s_user.c, s_serv.c: little fixups to allow code to
675 build on Solaris, still have some warnings there.
676 TODO: wrap crypt and things that depend on _XOPEN_SOURCE in their own
677 file so it doesn't bother the network code.
678 * ircd/s_bsd.c: cast option arg to const char* for setsockopt (solaris)
679 * ircd/Makefile.in: removed hard coded dependencies for hash.o chkconfig.o,
680 let the automatic stuff take care of it, it does it better than humans.
681 * *.c *.h: remove register keywords, attribute macro junk, cleanup
682 dependencies, rename MIN and MAX to IRCD_MIN IRCD_MAX all headers in
683 C files are sorted, removed as many duplicate includes as I could find
684 (dozens) general cleanups. Mutter the correct runes to get the protoype
685 for crypt included where it was needed.
686 * *.c *.h: dependency cleanups up to querycmds.c
687 * ircd.c, bsd.c, s_bsd.c: move signal handling code to ircd_signal.c
688 * ircd_signal.c, ircd_signal.h: new files, use only POSIX signals remove
689 support for unreliable signals.
690 * *.h *.c: include guards, dependency cleanups
691 * Configure.in, setup-sh.in: include guards, config.h includes setup.h
692 add config dir to include path
693 * sys.h: include guards, remove hard coded path to config.h
694 * s_user.c (hunt_server): fix logic bug
695 * numnicks.c (SetServerYXX): fix off by one error
696 * multiple files (n2k patch): add code to handle extended numerics