94ab0d0b54257824259eec01600263d31eb1f853
[ircu2.10.12-pk.git] / ChangeLog
1 2000-11-29  Kevin L. Mitchell  <klmitch@mit.edu>
2
3         * ircd/s_debug.c: rewrite debug_init() and vdebug() in terms of
4         new logging functions, which have special support for the debug
5         log; added loop detection to vdebug(), so that I can
6         sendto_opmask_butone() from log_vwrite() without incurring another
7         call to vdebug()
8
9         * ircd/s_conf.c (rehash): call log_reopen() from rehash routine;
10         this allows log file rotations
11
12         * ircd/m_kill.c: call log_write_kill() instead of ircd_log_kill()
13
14         * ircd/ircd_log.c: much more work fleshing out the interface;
15         removed old interface; included backwards-compat ircd_log()
16         function that logs to subsystem LS_OLDLOG
17
18         * ircd/ircd.c: switch to new log_init()/log_close()/log_reopen()
19         functions
20
21         * include/ircd_log.h: include stdarg.h for va_list; move ordering
22         warning to top of file; fill out LogSys enum; declare new
23         log_debug_init(), log_vwrite(), log_write_kill(), and
24         log_[sg]et_*() functions; add flags argument to log_write();
25         defined flags to inhibit various logging actions
26
27         * include/client.h: added support for new SNO_DEBUG, enabled only
28         if DEBUGMODE is defined
29
30 2000-11-28  Kevin L. Mitchell  <klmitch@mit.edu>
31
32         * ircd/ircd_log.c: make sure the various LOG_* constants are
33         defined (probably not needed, since #include <syslog.h> isn't
34         conditional); various static data needed for the new logging
35         functions; definitions of new logging functions
36
37         * include/ircd_log.h: new LogSys enum, declarations for part of
38         new logging API
39
40         * ircd/motd.c: we were setting type to MOTD_CLASS unconditionally,
41         which was of course stupid; switched to using switch/case in
42         initialization in motd_create(); zero the MotdList.other pointer
43         from motd_clear()
44
45         * ircd/ircd.c (main): motd_init() has to come before init_conf(),
46         or we overwrite init_conf()'s hard work with respect to T-lines
47
48 2000-11-27  Kevin L. Mitchell  <klmitch@mit.edu>
49
50         * ircd/s_stats.c: comment out report_motd_list and include a
51         reference to motd_report()
52
53         * ircd/s_conf.c: rip out the old MOTD manipulation functions; call
54         motd_add() from the conf parser; call motd_clear() from the rehash
55         routine; remove the no longer needed memory clearing and reloading
56         stuff from the rehash service routine
57
58         * ircd/motd.c: loads new API, including static internal functions
59         to do allocation/deallocation, etc.
60
61         * ircd/m_stats.c: use new motd_report() instead of
62         report_motd_list()
63
64         * ircd/m_motd.c: use new syntax for motd_send()
65
66         * ircd/ircd.c: use new motd_init() function
67
68         * ircd/Makefile.in (SRC): forgot to add motd.c to SRC in
69         Makefile.(in); also ran make depend
70
71         * include/motd.h: don't need config.h, but now do need time.h;
72         define new structures and constants; redefine old API and define
73         new functions
74
75 2000-11-22  Kevin L. Mitchell  <klmitch@mit.edu>
76
77         * ircd/s_user.c (register_user): use motd_signon() instead of
78         calling m_motd; much cleaner this way
79
80         * ircd/motd.c: write the new motd_* stuff to make MOTD handling
81         less of a crock
82
83         * ircd/m_motd.c: rewrite m{,s}_motd to call out to new motd_*
84         functions
85
86         * include/motd.h: define new MOTD API stuff
87
88 2000-11-20  Kevin L. Mitchell  <klmitch@mit.edu>
89
90         * ircd/ircd_reply.c (protocol_violation): rewrite
91         protocol_violation so it'll actually work
92
93         oh, yeah, use %s -> cptr->name, instead of %c -> cptr, so we get
94         the client's real name in there.
95
96         * ircd/m_motd.c (m_motd): Iso's addition of get_client_class(sptr)
97         resulted in core dumps if NODEFAULTMOTD is defined, because m_motd
98         gets called from register_user with a NULL sptr.  This is probably
99         a design problem, but this bandaid will do for now...
100
101 2000-11-19  Isomer <isomer@coders.net>
102         * ircd/ircd_reply.c: added 'protocol_violation', thus alerting us
103         to problems in the server<->server protocol.
104
105         * ircd/m_connect.c: allow remote connects with a port of '0'
106         meaning to use the port in the config file.
107
108         * ircd/m_create.c: Enable hacking protection, lets see how far we
109         get.
110
111         * ircd/m_error.c: The RFC says never accept ERROR from unreg'd
112         clients, so we don't any more.
113
114         * ircd/m_kill.c: The kill path is now made up of numnicks of servers,
115         and the user@host is displayed of the victim.
116
117         * ircd/m_map.c: reloaded 'dump_map'.
118
119         * ircd/m_trace.c: allow per class T:
120
121         * ircd/m_stats.c: allow local opers /remote stats anywhere on the 'net.
122
123 2000-11-17  Isomer <isomer@coders.net>
124
125         * ircd/m_topic.c: Fixed bug where we'd only send to clients topics
126         that were the *same* instead of different.  Oh the embarrasment!
127
128         * ircd/IPcheck.c: Merged net's fix.
129
130 2000-11-02  Kevin L. Mitchell  <klmitch@mit.edu>
131
132         * ircd/m_whois.c: remove compiler warning by adding a newline to
133         end of file
134
135         * ircd/m_names.c: moved the flags up to s_user.h
136
137         * ircd/m_join.c: call do_names instead of m_names; restructure
138         ms_join to never transmute a JOIN into a CREATE, but use the TS in
139         the JOIN (if present) to timestamp the channel
140
141         * ircd/channel.c: send JOINs individually, instead of grouping
142         them, so that we can send the channel's creation time
143
144         * include/s_user.h: declare do_names()
145
146 2000-10-30  Isomer <isomer@coders.net>
147         * ircd/m_oper.c: Fixed warning
148
149 2000-10-30  Isomer <isomer@coders.net>
150         * ircd/m_oper.c: Fixed over agressive cut and no paste
151
152 2000-10-30  Isomer <isomer@coders.net>
153
154         * ircd/m_topic.c: Restructured, fixed bug where topics on local
155         channels are propergated (I forget who pointed this out to me, but
156         thanks anyway).  Also to save bandwidth don't send the topic to
157         users if the topic is already the same on the server (but still
158         propergate to other servers).  X/W's "autotopic" feature must
159         chew a lot of bandwidth, hopefully this will help reduce this.
160
161         * doc/rfc1459.rfc: Updated documentation on /topic.
162
163         * ircd/listener.c: snotice warnings about failed accept()'s
164         potentially warning admins that they're running out of fd's.
165
166         * ircd/stats.c, ircd/class.c: Removed /stats v, added number of
167         people in a class in /stats y
168
169         * ircd/m_create.c: Checks for timewarp hacking and squit's
170         evil servers. (currently disabled)
171         
172
173 2000-10-30  net <simms@lucida.qc.ca>
174         
175         * ircd/gline.c: Fixed various bugs Isomer left behind.
176
177 2000-10-26  Kevin L. Mitchell  <klmitch@mit.edu>
178
179         * ircd/m_join.c (m_join): reply on attempt to join a BADCHANed
180         channel is now ERR_BANNEDFROMCHAN instead of ERR_BADCHANNAME
181
182 2000-10-24  Kevin L. Mitchell  <klmitch@mit.edu>
183
184         * ircd/channel.c: ok, now last mode rules; mode +ps will always
185         result in +s (and won't send a mode if the channel is already +s);
186         mode +sp will always result in +p; -n+n on a +n channel results in
187         no mode change; -n+n on a -n channel results in a +n mode change;
188         etc.
189
190 2000-10-23  Kevin L. Mitchell  <klmitch@mit.edu>
191
192         * ircd/channel.c: add "add" and "del" elements to ParseState to
193         avoid not-too-pretty -p+s when +s is sufficient; fix a bug in
194         mode_parse_limit that caused it to clear all channel modes
195         prematurely; restructure mode_parse_mode to avoid calling
196         modebuf_mode too early (ties in with first mentioned change);
197         better logic for +p/+s mutual exclusivity; initialize "add" and
198         "del" elements in mode_parse; send simple modes down to
199         modebuf_mode after the loop in mode_parse
200
201 2000-09-28  Greg Sikorski <gte@atomicrevs.demon.co.uk>
202         * ircd/m_names.c: Fixed a non-lethal logic error that 
203         triggers an assert() in find_member_link while debugging.
204         (Spotted by Maniac-).
205 2000-09-19  Thomas Helvey <helveytw@home.com>
206         * ircd/s_conf.c: move K:lines to their own list and data
207         structures, add supporting code.
208         * ircd/m_stats.c: cleanup stats processing a bit move
209         kline listing code to a new function, haven't figured
210         out where it goes yet tho'
211         * ircd/s_stats.c: added K:line bulk lister
212         * include/s_conf.h: added new DenyConf struct
213         * *[ch]: fixeup code that depended on changes
214
215 2000-09-17  Thomas Helvey <helveytw@home.com>
216         * ircd/class.c: encapsulate class list
217         * include/class.h: clean up classes
218         * * fixup code that depended on changes
219
220 2000-09-17  Thomas Helvey <helveytw@home.com>
221         * ircd/s_conf.c: add me to local conf
222         * include/s_conf.h: move CONF_ME macro to chkconf.c
223         * ircd/s_bsd.c: cleanup initialization, allow virtual host
224         to be changed by rehash
225
226 2000-09-17  Thomas Helvey <helveytw@home.com>
227         * include/class.h: add missing prototype
228         * ircd/class.c: make argument to get_conf_class const
229
230 2000-09-17  Thomas Helvey <helveytw@home.com>
231         * ircd/*.c: merged in changes from 2.10.10.pl12, cleanup
232         merge conflicts.
233         * ircd/*.h: merged in changes from 2.10.10.pl12, cleanup
234         merge conflicts
235
236 2000-09-16  Thomas Helvey <helveytw@home.com>
237         * ircd/s_conf.c: add code for server struct
238         * ircd/client.c: copy of class.c sort of, new file for client
239         specific operations, will move things here as appropriate,
240         currently only one function is exported from here.
241         * ircd/*.c: general logic cleanups, convert negatives to
242         positives in places.
243
244 2000-09-16  Thomas Helvey <helveytw@home.com>
245         * ircd/s_conf.c: add code for new crule data structs, strip quotes
246         * ircd/crule.c: clean up scary casting a bit, type safety stuff
247         * include/s_conf.h: add CRuleConf struct and support, remove
248         unused constants
249         * include/crule.h: type safety cleanups
250         * ircd/*.c: fixup code that depended on stuff I changed
251
252 2000-09-15  Thomas Helvey <helveytw@home.com>
253         * ircd/s_conf.c: start adding code for new conf data structs, changed
254         listeners, admin line, motd lines, class lines. Move validate_hostent
255         to resolver. General mayhem.
256         * include/s_conf.h: new data structs and accessors
257         * ircd/res.c: move validate_hostent here, rewrite, use regular
258         expression for validation.
259         * doc/example.conf: update docs for port
260
261 2000-09-14  Thomas Helvey <helveytw@home.com>
262         * ircd/s_conf.c (conf_init): rewrite conf file parser, start to break
263         up conf_init into managable chunks.
264         * ircd/listener.c (set_listener_mask): fix logic bug core dump.
265         * include/s_conf.h: add new data struct for local info (unwinding the mess).
266
267 2000-09-13  Thomas Helvey <helveytw@home.com>
268         * ircd/list.c: put Clients in free lists, pre-allocate MAXCONNECTIONS
269         local clients.
270         * ircd/list.c: put SLinks in free lists
271         * ircd/channel.c: put Memberships in free lists
272         * ircd/ircd.c: rearrange initializations a bit in main
273         Note: With these changes, ircd NEVER frees Clients, SLinks or
274         Memberships. It will also rarely need to allocate new
275         ones during net bursts and other disruptions. This should
276         cut down on memory fragmentation a bit as well.
277
278 2000-08-30  Kevin L. Mitchell  <klmitch@mit.edu>
279
280         * ircd/m_names.c (do_names): pull-up from do_names fix in
281         u2.10.10.pl11
282
283 2000-07-15  Perry Lorier       <Isomer@coders.net>
284         * various: IP only k:'s and G:'s now do bit tests instead of two(!) 
285                  match()'s.  Major Major cpu savings.  Also speed up the
286                  other case slightly.  As a side effect you can now
287                  k/Gline *@10.0.0.0/8.  I'll do bans tomorrow, it's nearing
288                  3am.
289
290 2000-07-15  Perry Lorier       <Isomer@coders.net>
291         * various: Fixed warnings after compiling on an alpha.
292 2000-07-09  Perry Lorier       <Isomer@coders.net>
293         * doc/ircd.8: Applied grammitical changes by Liandrin, applied
294                       changes suggested by various other people.
295         * ircd/IPcheck.c: More bug fixes.  Current problem appears to be
296                         that it gets a corrupt entry somehow.
297 2000-07-09  Greg Sikorski <gte@atomicrevs.demon.co.uk>
298         * ircd/m_oper.c: Clean up compiler warning.
299
300 2000-07-08  Perry Lorier       <Isomer@coders.net>
301         * doc/ircd.8: Updated the documentation, it was slightly out of date
302                       being updated around 1989.
303         * ircd/m_whois.c: Rewrote for clarity, and probably a bit more speed.
304                           fixed a few minor glitches.
305         * doc/rfc1459.unet: Updated.
306         * ircd/IPcheck.c: Fixed more bugs.
307         * ircd/s_bsd.c: We now keep track of servers we've conected.
308
309 2000-07-02  Perry Lorier       <Isomer@coders.net>
310         * ircd/s_misc.c: Fixed remote IPcheck bug.  Ok, I'm a moron, so sue
311                         me.  Thanks to Hektik, thanks thanks thanks thanks
312                         thanks thanks thanks thanks thank thanks thank thanks
313
314 2000-07-01  Perry Lorier       <Isomer@coders.net>
315         * ircd/s_conf.c: "Fixed" the "bug" where people would "evade" K:'s.
316         * ircd/s_conf.c, include/IPcheck.h: Fixed compile warnings.
317
318 2000-06-22  Perry Lorier       <Isomer@coders.net>
319         * ircd/IPcheck.c: Large chunks redone.
320         * ircd/s_conf.c: Changes due to IPcheck - ONE nolonger supported,
321                         single AND double digit limits are allowed now.
322         * misc other: Changes to IPcheck.
323
324 2000-06-30  Perry Lorier       <Isomer@coders.net>
325         * ircd/ircd.c: Fix command line parameter bugs.
326
327 2000-06-30  Perry Lorier       <Isomer@coders.net>
328         * ircd/m_kill.c: Fixed bug with LOCAL_KILL_ONLY
329         * ircd/m_nick.c: Tidied things up.
330
331 2000-06-12 Joseph Bongaarts <foxxe@trms.com>
332         * ircd/m_stats.c: Iso forgot mo_stats when he added /stats v
333         
334 2000-05-29  Perry Lorier       <Isomer@coders.net>
335         * ircd/m_stats.c: add /stats v to do only the last part of the /trace
336         * ircd/IPcheck.c: Cosmetic change, if we meddle with it enough do
337                         you think it'll get bored and fix itself?
338
339 2000-06-09  Greg Sikorski <gte@atomicrevs.demon.co.uk>
340
341         * ircd/m_names.c: Clean up compiler warnings.
342
343 2000-06-09  Kevin L. Mitchell  <klmitch@mit.edu>
344
345         * ircd/channel.c (mode_parse_client): don't send warning if
346         there's not enough arguments for a +/-o/v; means the habit of
347         doing "/mode #channel +oooooo bob" doesn't result in a bunch of
348         error messages
349
350 2000-06-04  Greg Sikorski <gte@atomicrevs.demon.co.uk>
351
352         * ircd/m_names.c: Re-factor code to remove unneccessary
353         GlobalChannelList iteration every time someone joins a channel.
354
355 2000-06-02  Kevin L. Mitchell  <klmitch@mit.edu>
356
357         * ircd/s_user.c: add struct Gline * argument to register_user;
358         look up global glines and repropagate them if necessary; send
359         acknowledgement of gline to remote servers when registering users
360
361         * ircd/s_serv.c (server_estab): don't send acknowledgement of
362         local glines to remote servers; do send gline acknowledgement of
363         bursted users
364
365         * ircd/m_user.c (m_user): pass new struct Gline * argument to
366         register_user
367
368         * ircd/m_pong.c: pass new struct Gline * argument to register_user
369
370         * ircd/m_nick.c (ms_nick): document protocol change
371
372         * ircd/gline.c: support GLINE_LASTMOD
373
374         * include/s_user.h: add struct Gline * argument to register_user
375
376         * include/gline.h: add GLINE_LASTMOD to look up non-zero lastmods
377
378         * ircd/s_conf.c (find_kill): add unsigned int argument to
379         gline_lookup()
380
381         * ircd/gline.c: add GLINE_GLOBAL to lookup or find only global
382         glines; add unsigned int argument to gline_lookup()
383
384         * include/gline.h: add GLINE_GLOBAL flag; add unsigned int
385         argument to gline_lookup()
386
387         * ircd/m_server.c: Resend jupe only when there is no %<lastmod>
388         parameter, or when it falls out of bounds: see comments prior to
389         call to jupe_resend(); call server_estab with struct Jupe
390         parameter, so that we place the appropriate %<lastmod> in the
391         appropriate place.
392
393         * ircd/s_serv.c (server_estab): send %<lastmod> for introduced
394         server, as well as for servers when we're sending the BURST
395
396         * include/s_serv.h: add a struct Jupe * to the arguments for
397         server_estab() so that we can send the appropriate lastmod
398         parameter
399
400         * ircd/m_gline.c (ms_gline): actually, this should be the
401         slightest bit more efficient...
402
403         * ircd/m_jupe.c (ms_jupe): actually, this should be the slightest
404         bit more efficient...
405
406         * ircd/m_gline.c (ms_gline): inhibit GLINE processing resends
407         during netburst
408
409         * ircd/m_jupe.c (ms_jupe): inhibit JUPE processing resends during
410         netburst
411
412         * ircd/channel.c (joinbuf_join): really remove user from local
413         channels
414
415 2000-05-29  Perry Lorier       <Isomer@coders.net>
416         * ircd/m_names.c: Removed redundant space. 
417         * ircd/s_bsd.c: Fixed incorrect syntax on ERROR line.
418
419 2000-05-18  Kevin L. Mitchell  <klmitch@mit.edu>
420
421         * ircd/m_burst.c (ms_burst): er...that should have been a ",", not
422         a " "
423
424 2000-05-04  Kevin L. Mitchell  <klmitch@mit.edu>
425
426         * ircd/channel.c: replace bogus assertions with returns, which is
427         logically correct; only wipe out limit/key if they were originally
428         set in the first place; remove user from channel when doing a
429         PARTALL; only send MODE +o for user CREATEing channel if user is
430         not MyUser--CREATE will only be used if the channel did not
431         originally exist, therefore we can assume no one local is on the
432         channel anyway, and we don't exactly need for the user to see an
433         explicit +o for themselves
434
435         * doc/readme.gline: describe the syntax of the GLINE command
436
437         * doc/readme.jupe: update to reflect a couple of changes to JUPE
438
439         * ircd/gline.c: don't propagate local changes
440
441         * ircd/jupe.c: don't propagate local changes
442
443         * ircd/m_gline.c (mo_gline): force local flag when deactivating
444         glines with 0 lastmod
445
446         * ircd/gline.c (gline_deactivate): G-lines with zero lastmod time
447         are now removed instead of being deactivated
448
449         * ircd/m_gline.c (ms_gline): make G-lines of the form "GLINE *
450         -<mask>" be accepted
451
452         * ircd/channel.c (send_channel_modes): deal with one of the last
453         vestiges of sendbuf
454
455         * ircd/m_burst.c (ms_burst): debugged ban processing; removed
456         debugging hooks
457
458         * ircd/channel.c (modebuf_extract): remove debugging
459         sendto_opmask_butone calls
460
461 2000-05-03  Kevin L. Mitchell  <klmitch@mit.edu>
462
463         * ircd/channel.c: support a couple of new flags to support using
464         mode_parse; fix some bugs with 0 struct ModeBuf *; implementation
465         of modebuf_extract to extract added flags for use by ms_burst
466
467         * include/channel.h: a couple of new flags to support using
468         mode_parse inside ms_burst
469
470         * ircd/m_burst.c (ms_burst): brand new implementation of BURST
471
472         * ircd/m_endburst.c: add loop to processing of end_of_burst to
473         free empty channels after the BURST is over.
474
475         * ircd/m_server.c: convert to use new send.c functions--I wanted
476         to rewrite it from scratch, but the logic's pretty complex; I may
477         still rewrite it, though...
478
479 2000-05-02  Thomas Helvey <tomh@inxpress.net>
480
481         * ircd/ircd.c: fix broken header include ordering
482
483 2000-05-02  Thomas Helvey <tomh@inxpress.net>
484         
485         * ircd/IPcheck.c: cleanups for ZenShadow's cleanups
486         review emailed privately
487
488         * include/IPcheck.h: removed unneeded include
489
490 2000-05-02  Kevin L. Mitchell  <klmitch@mit.edu>
491
492         * ircd/s_user.c (hunt_server): throw in a comment so I know what
493         the sendto_one is for
494
495         * include/querycmds.h (Count_unknownbecomesclient): convert to
496         sendto_opmask_butone
497
498         * ircd/send.c: start removing dead code
499
500         * include/send.h: start removing dead code
501
502         * ircd/m_rping.c: convert to sendcmdto_one / send_reply /
503         hunt_server_cmd
504
505         * ircd/m_rpong.c: convert to sendcmdto_one / send_reply
506
507 2000-05-01  Kevin L. Mitchell  <klmitch@mit.edu>
508
509         * ircd/m_stats.c: convert to sendcmdto_one / send_reply
510
511         * ircd/m_kick.c: Completely reimplement m_kick
512
513         * ircd/channel.c: send_user_joins removed; it was dead code,
514         anyway...
515
516 2000-05-01  Perry Lorier <isomer@coders.net>
517         * ircd/m_invite.c: Fix for the rest of m_invite.c, and again.
518         * ircd/channels.c: My fix for the part problem.  Untested, probably
519                 won't work.  Can't be much worse than the current problem.
520                 it'll either work or core, take your pick.
521
522
523 2000-04-30  Perry Lorier <isomer@coders.net>
524         * config/config-sh.in: Fix for CONNEXIT
525         * ircd/s_{user,misc}.c: Fix for CONNEXIT
526         * ircd/m_invite.c: Fix for incorrectly numnickified invite.
527                         (Kev: Want to come talk to me about this?)
528
529 2000-04-30  Steven M. Doyle <steven@doyle.net>
530         * ircd/ircd.c
531           - general cleanups and readability enhancements
532           - rewrite of setuid/chroot code.
533           - server will no longer run as root
534           - -DPROFIL compile option removed
535           - Fixed IPcheck API calls
536  
537         * config/config-sh.in
538           - Fixed up chroot compile options
539           - Added options for debug and profile compiles
540  
541         * config/gen.ircd.Makefile
542           - Support for new debug/profile options
543  
544         * ircd/Makefile.in
545           - Support for new debug/profile options
546  
547         * ircd/ircd_signal.c
548           - Removed -DPROFIL
549
550         * include/IPcheck.h
551           - Removed old API prototypes, added new ones
552         
553         * ircd/IPcheck.c
554           - Readability cleanups (well, I -think-...)
555           - Changed IPRegistryEntry.last_connect to a time_t.  The previously
556             used unsigned short was probably causing interesting things after
557             a client had been connected longer than about 65,535 seconds...
558           - Removed old API functions.
559
560         * ircd/whocmds.c
561           - Removed IPcheck.h include
562         
563         * Additionally modified IPcheck API calls in:
564           - ircd/m_nick.c
565           - ircd/m_auth.c
566           - ircd/s_bsd.c
567           - ircd/s_conf.c
568           - ircd/s_misc.c
569           - ircd/s_serv.c
570           - ircd/s_user.c
571         
572         
573 2000-04-30  Perry Lorier <isomer@coders.net>
574         * ircd/s_bsd.c: Sigh. :)
575         * ircd/m_mode.c: fix for modeless channels by poptix.
576
577 2000-04-29  Kevin L. Mitchell  <klmitch@mit.edu>
578
579         * ircd/m_join.c: reimplement JOIN in terms of struct JoinBuf
580
581         * ircd/channel.c (clean_channelname): make clean_channelname also
582         truncate long channel names
583
584 2000-04-28  Kevin L. Mitchell  <klmitch@mit.edu>
585
586         * ircd/m_create.c: reimplement CREATE in terms of struct JoinBuf
587
588         * ircd/channel.c: implemented joinbuf_init, joinbuf_join,
589         joinbuf_flush
590
591         * include/channel.h: definitions and declarations for the struct
592         JoinBuf abstraction
593
594 2000-04-29  Perry Lorier <isomer@coders.net>
595         * ircd/s_bsd.c: Ok, so I thought I compiled and tested this...
596
597 2000-04-29  Perry Lorier <isomer@coders.net>
598         * ircd/s_bsd.c: Add debugging code to IPcheck
599
600 2000-04-28  Kevin L. Mitchell  <klmitch@mit.edu>
601
602         * include/ircd_reply.h (SND_EXPLICIT): use instead of RPL_EXPLICIT
603
604         * ircd/ircd_reply.c (send_reply): use SND_EXPLICIT instead of
605         RPL_EXPLICIT
606
607         * ircd/m_userhost.c (m_userhost): add a dead code comment
608
609         * ircd/m_desynch.c: forgot one...
610
611         * ircd/m_rehash.c (mo_rehash): er, duplicates :)
612
613         * ircd/m_proto.c (proto_send_supported): just change a comment so
614         it doesn't show up in my scans
615
616         * ircd/ircd_reply.c (send_reply): fix a slight bug...
617
618         * ircd/s_numeric.c (do_numeric): use new sendcmdto_* functions,
619         kinda hackish...
620
621         * ircd/parse.c (parse_server): argument wrangling to make
622         processing in do_numeric a little easier to deal with
623
624         * ircd/s_serv.c (server_estab): SERVER should come from
625         acptr->serv->up, not &me
626
627         * ircd/m_lusers.c: accidentally left out sptr for a %C
628
629         * ircd/send.c: hack to support doing wallchops...
630
631         * ircd/m_whowas.c: convert to new send functions
632
633         * ircd/m_whois.c: convert to new send functions
634
635         * ircd/m_who.c: convert to new send functions
636
637         * ircd/m_wallops.c: convert to new send functions
638
639         * ircd/m_wallchops.c: convert to new send functions
640
641         * ircd/m_version.c: convert to new send functions
642
643         * ircd/m_userip.c: convert to new send functions
644
645         * ircd/m_userhost.c: convert to new send functions
646
647         * ircd/m_uping.c: convert to new send functions
648
649         * ircd/m_trace.c: convert to new send functions
650
651         * ircd/m_topic.c: convert to new send functions
652
653         * ircd/m_time.c: convert to new send functions
654
655         * ircd/m_squit.c: convert to new send functions
656
657         * ircd/m_silence.c: convert to new send functions
658
659         * ircd/m_settime.c: convert to new send functions
660
661         * ircd/m_restart.c: convert to new send functions
662
663         * ircd/m_rehash.c: convert to new send functions
664
665         * ircd/m_privmsg.c: convert to new send functions
666
667         * ircd/m_pong.c: convert to new send functions
668
669         * ircd/m_ping.c: convert to new send functions
670
671         * ircd/m_pass.c: convert to new send functions
672
673         * ircd/m_opmode.c: convert to new send functions
674
675         * ircd/m_oper.c: convert to new send functions
676
677         * ircd/m_notice.c: convert to new send functions
678
679         * ircd/m_nick.c: convert to new send functions
680
681         * ircd/m_names.c: convert to new send functions
682
683         * ircd/m_motd.c: convert to new send functions
684
685         * ircd/m_mode.c: convert to new send functions
686
687         * ircd/m_map.c: convert to new send functions
688
689         * ircd/m_lusers.c: convert to new send functions
690
691         * ircd/m_list.c: convert to new send functions
692
693         * ircd/m_links.c: convert to new send functions
694
695         * ircd/m_kill.c: convert to new send functions
696
697         * ircd/m_jupe.c: convert to new send functions
698
699         * ircd/m_invite.c: convert to new send functions
700
701         * ircd/m_info.c: convert to new send functions
702
703         * ircd/m_help.c: convert to new send functions
704
705         * ircd/m_gline.c: convert to new send functions
706
707         * ircd/m_error.c: convert to new send functions
708
709         * ircd/m_endburst.c: convert to new send functions
710
711         * ircd/m_die.c: convert to new send functions
712
713         * ircd/m_destruct.c: convert to new send functions
714
715         * ircd/m_defaults.c: convert to new send functions
716
717         * ircd/m_connect.c: convert to new send functions
718
719 2000-04-28  Perry Lorier <isomer@coders.net>
720         * RELEASE.NOTES: Describe a few more undocumented features.
721         * config/config-sh.in: change the default paths for logging
722         and the recommended number of channels.
723         * include/supported.h: Rearrange slightly, added CHANTYPE's
724
725 2000-04-27  Kevin L. Mitchell  <klmitch@mit.edu>
726
727         * ircd/m_close.c: convert to send_reply
728
729         * ircd/m_clearmode.c: convert to send_reply, sendcmdto_serv_butone
730
731         * ircd/m_away.c: convert to send_reply and sendcmdto_serv_butone
732
733         * ircd/m_admin.c: convert to send_reply and hunt_server_cmd
734
735         * ircd/s_user.c (hunt_server_cmd): new hunt_server replacement
736         that takes cmd and tok arguments, etc.  NOTE: THIS IMPLEMENTATION
737         HAS A MAJOR HACK!!!  The whole hunt_server architecture should be
738         carefully rethought...
739
740         * ircd/s_stats.c (hunt_stats): use new hunt_server_cmd
741
742         * include/s_user.h: hunt_server_cmd -- replacement for hunt_server
743
744         * ircd/s_misc.c: *sigh* 2.10.10 doesn't support squitting by
745         numeric nick; therefore, we have to use the server name
746
747         * ircd/m_squit.c (ms_squit): allow to squit by server numeric nick
748
749         * ircd/send.c: fix minor bugs
750
751         * ircd/s_user.c (check_target_limit): mark dead code so I filter
752         it when I grep
753
754         * ircd/s_serv.c (exit_new_server): mark dead code so I filter it
755         when I grep
756
757         * ircd/parse.c: mark dead code so I filter it when I grep
758
759         * ircd/map.c: mark dead code so I filter it when I grep
760
761         * ircd/ircd.c: mark dead code so I filter it when I grep
762
763         * ircd/ircd_relay.c: convert over to new sendcmdto_*, send_reply
764         functions
765
766         * ircd/channel.c: mark dead code so I filter it when I grep
767
768         * ircd/s_stats.c: use send_reply instead of sendto_one w/rpl_str;
769         hope I'm not stepping on toes...
770
771         * ircd/s_conf.c: more sendto_opmask_butone / send_reply
772         conversions; use ircd_snprintf in a couple of cases to negate the
773         possibility of buffer overflow
774
775 2000-04-26  Kevin L. Mitchell  <klmitch@mit.edu>
776
777         * ircd/channel.c: convert as much as possible to new send
778         semantics
779
780         * ircd/send.c (sendcmdto_common_channels): fix a subtle bug --
781         test member->user->from->fd, not from->fd
782
783         * ircd/gline.c (gline_add): go ahead and add badchans; we just
784         won't look for them in m_gline; this way, they always work...
785
786         * ircd/jupe.c: use ircd_vsnprintf conversion specifiers
787
788         * ircd/gline.c: since write_log now uses ircd_vsnprintf, use
789         ircd_vsnprintf conversion specifiers
790
791         * ircd/support.c (write_log): use ircd_vsnprintf for write_log, so
792         I have my conversion specifiers
793
794         * ircd/gline.c (do_gline): use send_reply for ERR_YOUREBANNEDCREEP
795
796         * ircd/send.c (sendcmdto_flag_butone): explicitly send WALLOPS to
797         local users
798
799         * ircd/s_serv.c (exit_new_server): rewrite exit_new_server to be a
800         little less brain-dead
801
802         * ircd/s_misc.c: use sendcmdto_one, sendrawto_one, and send_reply
803
804         * ircd/s_debug.c: use send_reply with RPL_EXPLICIT for
805         RPL_STATSDEBUG
806
807         * ircd/res.c (cres_mem): use send_reply with RPL_EXPLICIT for
808         RPL_STATSDEBUG
809
810         * ircd/list.c (send_listinfo): use send_reply with RPL_EXPLICIT
811         for RPL_STATSDEBUG
812
813         * ircd/m_pong.c: use RPL_EXPLICIT for ERR_BADPING
814
815         * ircd/ircd.c: use RPL_EXPLICIT for ERR_BADPING
816
817         * ircd/s_user.c (register_user): use RPL_EXPLICIT for
818         ERR_INVALIDUSERNAME
819
820         * ircd/ircd_reply.c (send_reply): support RPL_EXPLICIT
821
822         * include/ircd_reply.h (RPL_EXPLICIT): somewhat of a hack to mark
823         a numeric as needing to use an explicit pattern, which will be the
824         first argument in the variable argument list
825
826         * ircd/s_user.c: use sendrawto_one instead of sendto_one to send
827         non-prefixed nospoof PING
828
829         * ircd/s_bsd.c: use sendrawto_one instead of sendto_one to send
830         non-prefixed SERVER login
831
832         * ircd/ircd.c (check_pings): fix last sendto_one calls (except for
833         a numeric usage further up)
834
835         * include/send.h: declare sendrawto_one
836
837         * ircd/send.c (sendrawto_one): new function to use ONLY for
838         non-prefixed commands, like PING to client, or PASS/SERVER on
839         server registration
840
841 2000-04-25  Kevin L. Mitchell  <klmitch@mit.edu>
842
843         * ircd/ircd_snprintf.c (doprintf): implement %H for possible
844         future expansion (channel numerics?)
845
846         * include/ircd_snprintf.h: added documentation to # to explain use
847         with %C; added documentation for : to explain use with %C; added
848         documentation for %H for channels
849
850         * ircd/whocmds.c: use send_reply
851
852         * ircd/userload.c: use sendcmdto_one
853
854         * ircd/uping.c: use sendcmdto_one
855
856         * ircd/send.c: use new flags to %C format string; ':' prefixes
857         client name with a colon for local connects, '#' uses
858         nick!user@host form for local connects
859
860         * ircd/s_user.c: use send_reply, sendto_opmask_butone,
861         sendcmdto_one, sendcmdto_serv_butone, sendcmdto_flag_butone
862
863         * ircd/s_serv.c: use sendcmdto_one, sendto_opmask_butone
864
865         * ircd/s_bsd.c: use sendto_opmask_butone, send_reply,
866         sendcmdto_one
867
868         * ircd/s_auth.c: use sendto_opmask_butone
869
870         * ircd/res.c: use sendcmdto_one
871
872         * ircd/ircd_snprintf.c (doprintf): minor bug fixes and some
873         debugging assertions
874
875 2000-04-24  Kevin L. Mitchell  <klmitch@mit.edu>
876
877         * ircd/support.c: dumpcore is no longer used, so get rid of it
878
879         * ircd/parse.c: use send_reply, sendcmdto_one
880
881         * ircd/map.c: use send_reply
882
883         * ircd/listener.c: use send_reply
884
885         * ircd/jupe.c: use sendto_opmask_butone, send_reply
886
887         * ircd/ircd_reply.c: use send_reply
888
889         * ircd/ircd.c: use sendto_opmask_butone
890
891         * ircd/gline.c: use sendto_opmask_butone, send_reply
892
893         * ircd/ircd_snprintf.c (doprintf): make it deal with incompletely
894         registered clients; make FLAG_ALT print nick!user@host; make
895         FLAG_COLON print :blah
896
897         * ircd/class.c (report_classes): use send_reply instead of
898         sendto_one
899
900         * ircd/hash.c (m_hash): replace sendto_one with sendcmdto_one
901
902         * ircd/IPcheck.c (ip_registry_connect_succeeded): replace
903         sendto_one with sendcmdto_one
904
905 2000-04-21  Kevin L. Mitchell  <klmitch@mit.edu>
906
907         * ircd/send.c: clean up logic in sendcmdto_channel_butone; use
908         MyConnect() instead of IsServer() in sendcmdto_flag_butone; define
909         sendcmdto_match_butone
910
911         * include/send.h: declare sendcmdto_match_butone
912
913 2000-04-20  Kevin L. Mitchell  <klmitch@mit.edu>
914
915         * ircd/jupe.c: update to use send_reply()
916
917         * ircd/gline.c: update to use send_reply()
918
919         * include/ircd_reply.h: declare send_reply
920
921         * ircd/ircd_reply.c (send_reply): send_error_to_client, but for
922         replies; uses ircd_snprintf
923
924         * ircd/send.c: added comments to redirect searchers to appropriate
925         sendcmdto_* function; moved new functions to end of file; added
926         explanatory comments; reordered arguments; defined new functions
927         mentioned below
928
929         * ircd/m_jupe.c: reorder arguments to sendcmdto_* functions
930
931         * ircd/m_gline.c: reorder arguments to sendcmdto_* functions
932
933         * ircd/jupe.c: reorder arguments to sendcmdto_* functions
934
935         * ircd/gline.c: reorder arguments to sendcmdto_* functions
936
937         * include/send.h: reorder arguments, add explanatory comments,
938         declare new functions sendcmdto_flag_butone, sendto_opmask_butone,
939         and vsendto_opmask_butone
940
941 2000-04-19  Kevin L. Mitchell  <klmitch@mit.edu>
942
943         * ircd/send.c: define sendcmdto_channel_butone, wrote a simplified
944         vsendto_op_mask that uses '*' instead of the receiving client
945         nickname
946
947         * include/send.h: declare sendcmdto_channel_butone; takes a skip
948         argument that allows you to skip (or not to skip) deaf users,
949         users behind bursting servers, and non channel operators
950
951 2000-04-17  Kevin L. Mitchell  <klmitch@mit.edu>
952
953         * ircd/send.c: new sendcmdto_channel_butserv -- note that old
954         sendto_channel_butserv has a subtle bug; also wrote
955         sendcmdto_common_channels.
956
957         * include/send.h: declare new sendcmdto_* functions
958
959         * ircd/jupe.c: support local deactivations of jupes
960
961         * ircd/gline.c: support local deactivations of glines
962
963         * include/jupe.h: JUPE_LDEACT allows jupes to be locally
964         deactivated; if they aren't locally deactivated, then it slaves to
965         the net-wide activation status; JupeIsRemActive() tests only
966         whether the jupe is active everywhere else
967
968         * include/gline.h: GLINE_LDEACT allows glines to be locally
969         deactivated; if they aren't locally deactivated, then it slaves to
970         the net-wide activation status; GlineIsRemActive() tests only
971         whether the gline is active everywhere else
972
973         * ircd/gline.c: detect overlapping G-lines; if an existing, wider
974         gline expires after the new one will, we drop the new one,
975         otherwise we add the G-line after that one (so the wide one will
976         apply first); if the new one contains an existing G-line and if it
977         will expire after the existing one, we drop the existing one to
978         save memory
979
980         * ircd/m_gline.c (mo_gline): opers could issue remote local
981         glines when CONFIG_OPERCMDS was off; fixed
982
983 2000-04-16  Kevin L. Mitchell  <klmitch@mit.edu>
984
985         * ircd/m_jupe.c (mo_jupe): allow target argument to be dropped if
986         this is a local JUPE
987
988         * ircd/gline.c: add flags argument to gline_activate and
989         gline_deactivate for future expansion
990
991         * ircd/m_gline.c: pass flags to gline_activate and
992         gline_deactivate
993
994         * include/gline.h: add flags argument to gline_activate and
995         gline_deactivate
996
997         * ircd/jupe.c: add flags argument to jupe_activate and
998         jupe_deactivate for future expansion
999
1000         * include/jupe.h: add flags argument to jupe_activate and
1001         jupe_deactivate
1002
1003         * ircd/m_jupe.c: pass a flags argument to jupe_add instead of
1004         local, active; pass flags to jupe_activate and jupe_deactivate
1005
1006         * include/gline.h: remove dead code
1007
1008         * ircd/gline.c: make gline expire times relative to CurrentTime,
1009         since that should be monotonically increasing, instead of
1010         TStime(), which can be set backwards, and which can therefore
1011         cause an expire time to increase; make local glines be removed
1012         instead of just deactivated; don't let gline_find() look for
1013         user@host glines if the mask being looked up is a channel mask
1014
1015         * ircd/send.c (vsendcmdto_one): forgot to account for the case
1016         where origin is a server and destination is a user
1017
1018         * ircd/jupe.c: make jupe expire times relative to CurrentTime,
1019         since that should be monotonically increasing, instead of
1020         TStime(), which can be set backwards, and which can therefore
1021         cause an expire time to increase; make local jupes be removed
1022         instead of just deactivated
1023
1024         * ircd/ircd_snprintf.c: d'oh, thanks for catching that; short for
1025         limit is fine.  any other warnings I should know about?
1026
1027 2000-04-15  Thomas Helvey <tomh@inxpress.net>
1028
1029         * ircd/*.c: const correctness and type safety cleanups to
1030         get code to compile with C++ compiler. Still has
1031         signed/unsigned comparison warnings.
1032
1033 2000-04-15  Greg Sikorski <gte@atomicrevs.demon.co.uk>
1034
1035         * ircd/userload.c: change <sys/time.h> include to <time.h> for
1036           portability.
1037
1038 2000-04-14  Kevin L. Mitchell  <klmitch@mit.edu>
1039
1040         * ircd/m_gline.c (mo_gline): d'oh, target isn't a numeric; use %C
1041         and convert acptr...
1042
1043         * ircd/s_user.c: move gline_lookup function call into
1044         register_user, where it'll have a username to lookup!
1045
1046         * ircd/m_gline.c: modify to utilize new sendcmdto_* series of
1047         functions; also stuff send_error_to_client into return clauses
1048
1049         * ircd/m_jupe.c: modify to utilize new sendcmdto_* series of
1050         functions; also use send_error_to_client where that makes sense
1051
1052         * ircd/jupe.c: modify to utilize new sendcmdto_* series of
1053         functions; also use send_error_to_client where that makes sense
1054
1055         * ircd/gline.c: modify to utilize new sendcmdto_* series of
1056         functions; also fix gline_lookup() to deal properly with remote
1057         clients--boy, do struct Client and struct User need to be cleaned
1058         up!
1059
1060         * ircd/ircd_snprintf.c (doprintf): a dest of &me is a server,
1061         too...
1062
1063         * ircd/send.c: wrote sendcmdto_one(), vsendcmdto_one(), and
1064         sendcmdto_serv_butone(), all utilizing the %v conversion of
1065         ircd_snprintf()
1066
1067         * include/send.h: define IRC_BUFSIZE, max size of a message;
1068         declare sendcmdto_one(), vsendcmdto_one(), and
1069         sendcmdto_serv_butone()
1070
1071         * include/msg.h: define all the CMD_* constants needed to utilize
1072         the new sendcmdto_* series of functions
1073
1074         * ircd/Makefile.in (SRC): list ircd_snprintf.c; run make depend
1075
1076         * ircd/gline.c: remove old, dead code.
1077
1078         * ircd/m_gline.c (mo_gline): disallow setting of global G-lines
1079         unless CONFIG_OPERCMDS is enabled; disallow listing of all G-lines
1080         (don't advertise proxies); remove dead code
1081
1082         * ircd/parse.c: oper handler for JUPE only lists jupes unless
1083         CONFIG_OPERCMDS is enabled
1084
1085         * ircd/m_jupe.c (mo_jupe): don't compile mo_jupe() if
1086         CONFIG_OPERCMDS is not enabled; we'll disable it in parse.c
1087
1088         * ircd/m_opmode.c (mo_opmode): if CONFIG_OPERCMDS is not enabled,
1089         always return ERR_DISABLED
1090
1091         * ircd/m_clearmode.c (mo_clearmode): if CONFIG_OPERCMDS is not
1092         enabled, always return ERR_DISABLED
1093
1094         * ircd/s_err.c: add error message to indicate disabled commands
1095
1096         * include/numeric.h (ERR_DISABLED): to indicate disabled commands
1097
1098         * doc/Configure.help: add documentation for CONFIG_OPERCMDS
1099
1100         * config/config-sh.in: add CONFIG_OPERCMDS, default both it and
1101         CONFIG_NEW_MODE to 'y' for now
1102
1103         * ircd/gline.c (gline_list): fix a minor formatting bogon
1104
1105         * BUGS: since I fixed that bug, might as well mark it fixed.
1106
1107         * ircd/m_join.c: look up badchans with GLINE_EXACT
1108
1109         * ircd/m_gline.c: fix parc count problems; look up existing
1110         G-lines with GLINE_EXACT; only set new lastmod when
1111         activating/deactivating existing glines if old lastmod was not 0
1112
1113         * ircd/gline.c: forgot to copy the gline reason over; don't
1114         propagate a gline with 0 lastmod if origin is user; add
1115         GLINE_EXACT to force exact matching of gline mask
1116
1117         * ircd/ircd_snprintf.c (doprintf): forgot to deal with the zero
1118         flag properly
1119
1120         * ircd/s_conf.c (find_kill): gline_find() takes a char *userhost,
1121         but gline_lookup() actually takes a client--d'oh.
1122
1123 2000-04-13  Thomas Helvey <tomh@inxpress.net>
1124         * ircd/IPcheck.c: Back port BLMet's bugfix from 2.10.10
1125
1126 2000-04-13  Greg Sikorski <gte@atomicrevs.demon.co.uk>
1127
1128         * ircd/whocmds.c: Don't make idle flag default in /who, to prevent:
1129           "/who * x"
1130           "Gte3 H*iwg Gte@212.49.240.217 :1 :0 I am the one that was."
1131           (Found by Plexus).
1132
1133         * ircd/whocmds.c: Change idle time calc from socket idle to user
1134           idle.
1135
1136 2000-04-13  Kevin L. Mitchell  <klmitch@mit.edu>
1137
1138         * config/aclocal.m4 (unet_CHECK_TYPE_SIZES): check size of void *,
1139         too, for ircd_snprintf.c
1140
1141         * include/ircd_snprintf.h: documentation for ircd_(v)snprintf, in
1142         comments; mostly descended from the Linux manpage for printf, but
1143         also documenting the extensions.
1144
1145         * ircd/ircd_snprintf.c: NULL dest is equivalent to going to a
1146         client; make 'q' be the same as 'L'; remove __inline__; only
1147         define EXTENSION if HAVE_LONG_LONG is defined
1148
1149         * include/handlers.h: declare m_gline()
1150
1151         * ircd/parse.c: gline can be called by users, but it only lists
1152         the glines.
1153
1154         * ircd/s_user.c (set_nick_name): resend gline if a remote server
1155         introduces a glined client
1156
1157         * ircd/s_serv.c (server_estab): burst glines, too
1158
1159         * ircd/gline.c: fix up all the expire times to be offsets;
1160         simplify gline_resend()
1161
1162         * ircd/m_gline.c: begin coding replacements for ms_gline(),
1163         mo_gline(), and m_gline()
1164
1165         * ircd/gline.c (gline_add): allow *@#channel to work correctly;
1166         also, prohibit local BADCHANs if LOCAL_BADCHAN not defined
1167
1168 2000-04-13  Greg Sikorski <gte@atomicrevs.demon.co.uk>
1169
1170         * tools/Bouncer/*: Add comments/documentation/tags.
1171         * tools/Bouncer/*: Add debug defines, make task fork().
1172
1173 2000-04-12  Thomas Helvey <tomh@inxpress.net>
1174         * ircd/s_err.c: Cleanup s_err.c make one table so we
1175         don't have to do anything tricky to get an error string.
1176
1177 2000-04-12  Greg Sikorski <gte@atomicrevs.demon.co.uk>
1178         * Add port bouncer for http (x/w)
1179
1180 2000-04-12  Kevin L. Mitchell  <klmitch@mit.edu>
1181
1182         * ircd/s_conf.c (find_kill): replaced call to find_gline() with a
1183         call to gline_find(); also used GlineReason() instead of direct
1184         reference to structure member
1185
1186         * ircd/m_join.c (m_join): replace bad_channel() calls with calls
1187         to gline_find(name, GLINE_BADCHAN), and also check to see if gline
1188         is active
1189
1190         * ircd/channel.c: nothing seems to be called anywhere...
1191
1192         * ircd/s_err.c: update a couple of replies to dovetail with new
1193         semantics
1194
1195         * ircd/gline.c: begin complete re-implementation of gline.c along
1196         the lines of the final design of jupe.c
1197
1198         * include/gline.h: begin complete re-implementation of gline.c
1199         along the lines of the final design of jupe.c
1200
1201         * ircd/channel.c (mode_process_clients): fix "Deop of +k user on
1202         %s by %s" message...
1203
1204         * ircd/ircd_snprintf.c: my new snprintf()-like functions
1205
1206         * include/ircd_snprintf.h: my new snprintf()-like functions
1207
1208 2000-04-11  Thomas Helvey <tomh@inxpress.net>
1209         * ircd/IPcheck.c: removed old dead code
1210         * ircd/s_user.c (send_user_info): removed non-standard
1211           user not found message for userhost/userip
1212
1213 2000-04-11  Greg Sikorski <gte@atomicrevs.demon.co.uk>
1214
1215         * ircd/s_err.c: Added missing quotes to ERR_DONTCHEAT numeric.
1216         * doc/p10.html: Work on chapter 4.
1217
1218 2000-04-10  Kevin L. Mitchell  <klmitch@mit.edu>
1219
1220         * ircd/channel.c (mode_parse_client): fix coredump on /mode
1221         #foobar +o nosuchnick
1222
1223 2000-04-10  Perry Lorier  <Isomer@coders.net>
1224         * BUGS: Added bug.
1225
1226 2000-04-09  Thomas Helvey <tomh@inxpress.net>
1227         * include/IPcheck.h: fix prototype
1228         * ircd/s_user.c: fix usage of IPcheck_remote_connect
1229         * ircd/IPcheck.c: removed unused args
1230
1231 2000-04-09  Thomas Helvey <tomh@inxpress.net>
1232         * include/IPcheck.h: add proto for IPcheck_expire
1233
1234         * ircd/IPcheck.c: Rewrote
1235
1236         * ircd/ircd.c: Add IPcheck_expire to main message loop
1237
1238         * ircd/s_user.c: Redo target hashing, refactor target code
1239
1240         * include/numeric.h: Cleaned up numerics, added which ones are
1241         in use by other networks and what they are in use for.
1242
1243         * ircd/channel.c: cleaned can_join(), allow anyone through anything
1244         if /invited, simplified the function.  Opers overusing OPEROVERRIDE
1245         will get a message explaining to them not to cheat.
1246
1247         * ircd/m_join.c: cleaned up the various join functions, should be
1248         a lot more efficient.  Still needs work.  Now assumes that s<->s
1249         won't send it a JOIN 0.  Service coders - note this and tread with
1250         care.
1251
1252         * ircd/m_stats.c: added Gte-'s stats doc patch.
1253
1254         * ircd/m_version.c: /version now returns the 005 numeric as well.
1255         as requested by Liandrin.
1256
1257
1258 2000-04-07  Kevin L. Mitchell  <klmitch@mit.edu>
1259
1260         * ircd/m_clearmode.c: add include for support.h for write_log()
1261
1262         * configure: move ircd/crypt/* to tools/*
1263
1264 2000-04-06  Thomas Helvey <tomh@inxpress.net>
1265         * ircd/s_auth.c: Shorten auth connect timeout to 60 seconds
1266           set client host to server alias if connection from localhost
1267
1268 2000-04-06  Perry Lorier <isomer@coders.net>
1269         * ircd/ircd.c: Fix core during pinging (oops)
1270         
1271 2000-04-06  Perry Lorier <isomer@coders.net>
1272         * ircd/send.c: fixed wrong ident being sent to channels bug.
1273         * include/numerics.h: Updated some of the numerics from other
1274         networks.  Flagged some as 'unused' by undernet.
1275
1276 2000-03-30  Perry Lorier <isomer@coders.net>
1277         * ircd/ircd.c: Lets see if this helps the ping problem at all.
1278         * ircd/whocmds.c, /doc/readme.who: Added %l specifier to get idle
1279         time for local clients. (as requested), extended who now returns all
1280         the flags (@+!) so you can tell the complete state of a client.
1281
1282 2000-03-30  Thomas Helvey <tomh@inxpress.net>
1283         * m_rping.c m_rpong.c: add Gte's rping/rpong fixes
1284
1285 2000-03-30  Perry Lorier <isomer@coders.net>
1286         * ircd/parse.c: oops, missed opers.
1287
1288 2000-03-30  Perry Lorier <isomer@coders.net>
1289         * ircd/parse.c: fixed mystifying ping bug thats been plaguing us
1290         for so long.  Remember: m_ping MUST be in the parse array. :)
1291
1292 2000-03-30  Perry Lorier <isomer@coders.net>
1293         * ircd/ircd.c: test in check_pings was wrong.  I move that we
1294         disallow cvs commit after 10pm localtime....
1295
1296 2000-03-30  Perry Lorier <isomer@coders.net>
1297         * ircd/m_pong.c: Fix it for servers too.
1298
1299 2000-03-30  Perry Lorier <isomer@coders.net>
1300         * ircd/m_pong.c: Fix ping timeout bugs
1301
1302 2000-03-30  Perry Lorier <isomer@coders.net>
1303         * ircd/channel.c: Bans had CurrentTime in their when field instead
1304         of TStime()
1305
1306 2000-03-31  Thomas Helvey <tomh@ixpress.net>
1307         * ircd/numnicks.c (SetXYYCapacity): fix for extended
1308         numerics.
1309
1310 2000-03-30  Perry Lorier <isomer@coders.net>
1311         * ircd/m_nick.c: send kills both ways so when we add nick change
1312         on collision we don't desync the network.
1313
1314         * ircd/map.c: Fixup the map a bit more.
1315
1316 2000-03-31  Kevin L. Mitchell  <klmitch@mit.edu>
1317
1318         * ircd/m_clearmode.c (do_clearmode): Log the CLEARMODE to OPATH
1319
1320         * ircd/m_opmode.c: Log the mode changes to OPATH
1321
1322         * ircd/channel.c (modebuf_flush_int): Log the mode changes to
1323         OPATH
1324
1325         * include/channel.h (MODEBUF_DEST_LOG): Log the mode changes to
1326         OPATH
1327
1328         * doc/Configure.help: help text for CONFIG_LOG_OPMODE / OPATH
1329
1330         * config/config-sh.in: added OPATH for opmode log file
1331
1332         * ircd/m_clearmode.c (do_clearmode): updated uses of
1333         modebuf_mode_string() for the new usage
1334
1335         * ircd/channel.c: added flag MODE_FREE and an int argument to
1336         modebuf_mode_string() to indicate that the string must be free'd;
1337         updated calls to modebuf_mode_string() for the new usage; called
1338         collapse(pretty_mask()) on the ban string and use allocated memory
1339         for it; added ban list length accounting; fixed a number of small
1340         bugs in ban processing
1341
1342         * include/channel.h: added flag MODE_FREE and an int argument to
1343         modebuf_mode_string() to indicate that the string must be free'd
1344
1345         * ircd/m_clearmode.c (do_clearmode): made sure clearmode removed
1346         keys and limits that are set
1347
1348 2000-03-30  Perry Lorier <isomer@coders.net>
1349         * ircd/ircd.c: rewrote check_pings() for maintainability
1350         and speed.  Also changed quit msg's so they don't have
1351         redundant nick[host] info in them.
1352
1353         * ircd/send.c: Changed write errors to report what error
1354         occured (if possible).
1355
1356         * ircd/gline.c: added gline comment to the quit.
1357
1358         * ircd/m_server.c: Added suggestions to server quits mentioning
1359         what went wrong so the admin can fix it earlier instead of asking
1360         questions...
1361
1362         * ircd/map.c: Changed m_map() to hide numerics, show a * beside
1363         servers that aren't fully burst yet.  And show '(--s)' for servers
1364         where its not sure.
1365
1366         * doc/example.conf: Fixed wrapped U:
1367
1368 2000-03-30  Kevin L. Mitchell  <klmitch@mit.edu>
1369
1370         * ircd/m_mode.c (ms_mode): implemented a new m_mode in terms of
1371         mode_parse() (version selectable at compile time)
1372
1373         * ircd/m_clearmode.c (mo_clearmode): clean_channelname(parv[1])
1374
1375         * ircd/m_opmode.c (mo_opmode): clean_channelname(parv[1])
1376
1377         * config/config-sh.in: add new config option to enable new m_mode
1378         implementation
1379
1380         * doc/Configure.help: add documentation for new config option
1381         CONFIG_NEW_MODE
1382
1383         * ircd/channel.c (mode_parse_client): /opmode #foobar -o -- 461
1384         MODE -v : Not enough parameters
1385
1386         * ircd/m_clearmode.c (do_clearmode): do_clearmode() would remove
1387         +k and +l even if they weren't set...
1388
1389         * ircd/m_opmode.c: implement the OPMODE command using mode_parse()
1390
1391         * ircd/channel.c: make mode_process_clients() clear the DEOPPED
1392         flag; fix +s+p exclusivity; add MODE_ADD/MODE_DEL to flag list
1393         for; test the 0-th member, not the i-th member, of the client
1394         change state stuff
1395
1396         * ircd/m_clearmode.c (do_clearmode): use the new
1397         mode_invite_clear() function
1398
1399         * ircd/channel.c: cleared up all the compile-time warnings and
1400         errors
1401
1402         * include/channel.h: added declarations for mode_ban_invalidate()
1403         and mode_invite_clear()
1404
1405         * ircd/channel.c: finished mode_parse(), then broke it up into a
1406         dozen or so helper functions to make the code easier to read
1407
1408 2000-03-29  Thomas Helvey <tomh@inxpress.net>
1409         * ircd/ircd.c: refactor server initialization a bit, use
1410         getopt for parsing command line, refactor init_sys, main,
1411         and other bits.
1412
1413         * ircd/s_bsd.c: add functions for initialization to clean
1414         up logic a bit and remove duplicated code.
1415
1416         * include/ircd.h: add struct for server process related
1417         variables.
1418
1419 2000-03-29  Kevin L. Mitchell  <klmitch@mit.edu>
1420
1421         * ircd/channel.c: initial definition of mode_parse(); flags to
1422         prevent doing the same thing multiple times; helper method
1423         send_notoper() to send a "Not oper"/"Not on channel" notice
1424
1425         * include/channel.h: declare mode_parse() and helper flags
1426
1427         * ircd/channel.c (modebuf_flush_int): fiddled with timestamp
1428         sending to match the current action of set_mode() closely enough
1429         that hopefully there won't be major conflicts
1430
1431         * ircd/channel.c (modebuf_flush_int): consolidated the mode string
1432         building logic, reversed the order of the arguments to mode
1433         commands to have '-' preceed '+'
1434
1435 2000-03-29  Thomas Helvey <tomh@inxpress.net>
1436         * ircd/s_bsd.c (add_connection): don't disable socket options
1437         let OS tune itself and allow important performance tweaks to 
1438         work.
1439
1440 2000-03-28  Kevin L. Mitchell  <klmitch@mit.edu>
1441
1442         * ircd/channel.c (modebuf_flush_int): use %d, not %-15d; I got
1443         confused by set_mode, which is doing some really weird logic;
1444         guess what I'm going to rewrite next?  ;)
1445
1446 2000-03-28  Kevin L. Mitchell  <klmitch@emc.com>
1447
1448         * include/channel.h: added MODE_SAVE for the bounds checking stuff
1449         in modebuf_flush
1450
1451         * ircd/channel.c: make modebuf_flush into modebuf_flush_int and
1452         make it do bounds checking on the buffer; all modes are sent only
1453         if the all parameter is 1; modebuf_flush is the exported wrapper
1454
1455         * include/channel.h: add BOUNCE, renumber flags to get a little
1456         more space
1457
1458         * ircd/channel.c (modebuf_flush): don't overload HACK2, add
1459         BOUNCE; send DESYNCH message
1460
1461 2000-03-27  Kevin L. Mitchell  <klmitch@emc.com>
1462
1463         * ircd/m_clearmode.c (do_clearmode): only mark the modes the
1464         channel actually has in effect for deletion
1465
1466         * ircd/channel.c: added explanatory comments to all added
1467         functions; made flushing take place at the correct place even if
1468         the MODEBUF_DEST_DEOP flag is set; rewrote build_string() helper
1469         to bash some stupid bugs; made modebuf_flush() return if ModeBuf
1470         is empty, fixed the apparent source, removed some bogus string
1471         termination code, properly terminate the mode strings, add support
1472         for HACK2 and HACK3, made limit strings not be sent if the limit
1473         is being removed, changed where '+' and '-' come from in sent
1474         strings, added support for DEOP flag, set up bouncing code for
1475         HACK2
1476
1477         * ircd/Makefile.in: ran make depend
1478
1479         * include/channel.h: added new defines for future functionality,
1480         made modebuf_flush() return int so I can use tail recursion
1481
1482         * ircd/m_clearmode.c: add msg.h to includes; other misc cleanups
1483         to make it all compile
1484
1485         * ircd/m_opmode.c: add msg.h to includes...
1486
1487         * ircd/m_clearmode.c: implemented mo_clearchan()/ms_clearchan()
1488
1489         * ircd/channel.c (modebuf_flush): realized I forgot to
1490         nul-terminate addbuf/rembuf properly...
1491
1492         * ircd/m_clearmode.c (do_clearmode): wrote do_clearmode()...
1493
1494         * ircd/channel.c (modebuf_flush): correct sendto_server_butone to
1495         sendto_serv_butone--blah^2
1496
1497         * ircd/send.c (sendto_serv_butone): stupid comments confused me
1498
1499         * ircd/channel.c (modebuf_flush): if there are no mode changes to
1500         propagate, we're done...
1501
1502         * ircd/channel.c (modebuf_flush): duh; it's sendto_server_butone,
1503         not sendto_all_butone
1504
1505         * ircd/m_clearmode.c: define skeleton for m{o,s}_clearmode
1506
1507         * ircd/m_opmode.c: define skeleton for m{o,s}_opmode
1508
1509         * ircd/Makefile.in (SRC): added m_opmode() and m_clearmode() to
1510         the list
1511
1512         * ircd/parse.c: added messages for opmode and clearmode
1513
1514         * include/handlers.h: added declarations for mo_opmode(),
1515         ms_opmode(), mo_clearmode(), and ms_clearmode()
1516
1517         * include/msg.h: define MSG_OPMODE, TOK_OPMODE, MSG_CLEARMODE, and
1518         TOK_CLEARMODE
1519
1520         * include/channel.h (MODEBUF_DEST_OPMODE): Define the
1521         MODEBUF_DEST_OPMODE flag
1522
1523         * ircd/channel.c (modebuf_flush): added new flag,
1524         MODEBUF_DEST_OPMODE; causes channel MODE/HACK(4) notice to appear
1525         to originate from source's server (or source itself, if
1526         IsServer(source)); also causes a server-level MODE to be sent as
1527         OPMODE instead
1528
1529         * include/channel.h: defined MODEBUF_DEST_SERVER,
1530         MODEBUF_DEST_HACK4
1531
1532         * ircd/channel.c: Add another argument to build_string() to handle
1533         numeric nicks; implemented MODEBUF_DEST_SERVER to send MODEs to
1534         servers; implemented MODEBUF_DEST_HACK4 to cause HACK(4) notices
1535         to be sent out
1536
1537 2000-03-27  Perry Lorier <isomer@coders.net>
1538
1539         * ircd/s_bsd.c: fixed missing 'u' typo.
1540
1541 2000-03-26  Kevin L. Mitchell  <klmitch@emc.com>
1542
1543         * ircd/channel.c: implement modebuf_init(), _mode(), _mode_uint(),
1544         _mode_string(), _mode_client(), _flush(); also implemented a
1545         simple build_string()
1546
1547         * include/channel.h: added definition of ModeBuf, modebuf_*
1548         manipulation functions, and a couple of helper macros
1549
1550 2000-03-24 Thomas Helvey <tomh@inxpress.net>
1551   * numicks.c: convert extended numerics to use original mask version
1552   * numnicks.h: ""
1553   * s_user.c:
1554 2000-03-23 Thomas Helvey <tomh@inxpress.net>
1555   * Merge in changes from production
1556 2000-03-22 Thomas Helvey <tomh@inxpress.net>
1557   * numicks.c: Tweak to numnick generator to reduce possibility of duplicates.
1558   * rfc1459.unet: Add Maniac's documentation for /names 0
1559 * Fix misc. jupe bugs that somehow made it into the tree
1560 * Escape /names 0 to mean /names --Maniac
1561 * Don't core when server asks for info --Maniac 
1562 * Add Kev's jupe patch --Bleep
1563 * Add Maniacs squit patch --Bleep
1564 * Merge in u2_10_10_beta07 changes --Bleep
1565 * Merge in u2_10_10_beta06 changes --Bleep
1566 * Start ircu2.10.11 development, beta branch u2_10_10 --Bleep
1567 #-----------------------------------------------------------------------------