Author: Perry Lorier <Isomer@coders.net>
[ircu2.10.12-pk.git] / ChangeLog
1 2000-04-28  Perry Lorier <isomer@coders.net>
2         * RELEASE.NOTES: Describe a few more undocumented features.
3         * config/config-sh.in: change the default paths for logging
4         and the recommended number of channels.
5         * include/supported.h: Rearrange slightly, added CHANTYPE's
6
7 2000-04-27  Kevin L. Mitchell  <klmitch@mit.edu>
8
9         * ircd/s_misc.c: *sigh* 2.10.10 doesn't support squitting by
10         numeric nick; therefore, we have to use the server name
11
12         * ircd/m_squit.c (ms_squit): allow to squit by server numeric nick
13
14         * ircd/send.c: fix minor bugs
15
16         * ircd/s_user.c (check_target_limit): mark dead code so I filter
17         it when I grep
18
19         * ircd/s_serv.c (exit_new_server): mark dead code so I filter it
20         when I grep
21
22         * ircd/parse.c: mark dead code so I filter it when I grep
23
24         * ircd/map.c: mark dead code so I filter it when I grep
25
26         * ircd/ircd.c: mark dead code so I filter it when I grep
27
28         * ircd/ircd_relay.c: convert over to new sendcmdto_*, send_reply
29         functions
30
31         * ircd/channel.c: mark dead code so I filter it when I grep
32
33         * ircd/s_stats.c: use send_reply instead of sendto_one w/rpl_str;
34         hope I'm not stepping on toes...
35
36         * ircd/s_conf.c: more sendto_opmask_butone / send_reply
37         conversions; use ircd_snprintf in a couple of cases to negate the
38         possibility of buffer overflow
39
40 >>>>>>> 1.106
41 2000-04-26  Kevin L. Mitchell  <klmitch@mit.edu>
42
43         * ircd/channel.c: convert as much as possible to new send
44         semantics
45
46         * ircd/send.c (sendcmdto_common_channels): fix a subtle bug --
47         test member->user->from->fd, not from->fd
48
49         * ircd/gline.c (gline_add): go ahead and add badchans; we just
50         won't look for them in m_gline; this way, they always work...
51
52         * ircd/jupe.c: use ircd_vsnprintf conversion specifiers
53
54         * ircd/gline.c: since write_log now uses ircd_vsnprintf, use
55         ircd_vsnprintf conversion specifiers
56
57         * ircd/support.c (write_log): use ircd_vsnprintf for write_log, so
58         I have my conversion specifiers
59
60         * ircd/gline.c (do_gline): use send_reply for ERR_YOUREBANNEDCREEP
61
62         * ircd/send.c (sendcmdto_flag_butone): explicitly send WALLOPS to
63         local users
64
65         * ircd/s_serv.c (exit_new_server): rewrite exit_new_server to be a
66         little less brain-dead
67
68         * ircd/s_misc.c: use sendcmdto_one, sendrawto_one, and send_reply
69
70         * ircd/s_debug.c: use send_reply with RPL_EXPLICIT for
71         RPL_STATSDEBUG
72
73         * ircd/res.c (cres_mem): use send_reply with RPL_EXPLICIT for
74         RPL_STATSDEBUG
75
76         * ircd/list.c (send_listinfo): use send_reply with RPL_EXPLICIT
77         for RPL_STATSDEBUG
78
79         * ircd/m_pong.c: use RPL_EXPLICIT for ERR_BADPING
80
81         * ircd/ircd.c: use RPL_EXPLICIT for ERR_BADPING
82
83         * ircd/s_user.c (register_user): use RPL_EXPLICIT for
84         ERR_INVALIDUSERNAME
85
86         * ircd/ircd_reply.c (send_reply): support RPL_EXPLICIT
87
88         * include/ircd_reply.h (RPL_EXPLICIT): somewhat of a hack to mark
89         a numeric as needing to use an explicit pattern, which will be the
90         first argument in the variable argument list
91
92         * ircd/s_user.c: use sendrawto_one instead of sendto_one to send
93         non-prefixed nospoof PING
94
95         * ircd/s_bsd.c: use sendrawto_one instead of sendto_one to send
96         non-prefixed SERVER login
97
98         * ircd/ircd.c (check_pings): fix last sendto_one calls (except for
99         a numeric usage further up)
100
101         * include/send.h: declare sendrawto_one
102
103         * ircd/send.c (sendrawto_one): new function to use ONLY for
104         non-prefixed commands, like PING to client, or PASS/SERVER on
105         server registration
106
107 2000-04-25  Kevin L. Mitchell  <klmitch@mit.edu>
108
109         * ircd/ircd_snprintf.c (doprintf): implement %H for possible
110         future expansion (channel numerics?)
111
112         * include/ircd_snprintf.h: added documentation to # to explain use
113         with %C; added documentation for : to explain use with %C; added
114         documentation for %H for channels
115
116         * ircd/whocmds.c: use send_reply
117
118         * ircd/userload.c: use sendcmdto_one
119
120         * ircd/uping.c: use sendcmdto_one
121
122         * ircd/send.c: use new flags to %C format string; ':' prefixes
123         client name with a colon for local connects, '#' uses
124         nick!user@host form for local connects
125
126         * ircd/s_user.c: use send_reply, sendto_opmask_butone,
127         sendcmdto_one, sendcmdto_serv_butone, sendcmdto_flag_butone
128
129         * ircd/s_serv.c: use sendcmdto_one, sendto_opmask_butone
130
131         * ircd/s_bsd.c: use sendto_opmask_butone, send_reply,
132         sendcmdto_one
133
134         * ircd/s_auth.c: use sendto_opmask_butone
135
136         * ircd/res.c: use sendcmdto_one
137
138         * ircd/ircd_snprintf.c (doprintf): minor bug fixes and some
139         debugging assertions
140
141 2000-04-24  Kevin L. Mitchell  <klmitch@mit.edu>
142
143         * ircd/support.c: dumpcore is no longer used, so get rid of it
144
145         * ircd/parse.c: use send_reply, sendcmdto_one
146
147         * ircd/map.c: use send_reply
148
149         * ircd/listener.c: use send_reply
150
151         * ircd/jupe.c: use sendto_opmask_butone, send_reply
152
153         * ircd/ircd_reply.c: use send_reply
154
155         * ircd/ircd.c: use sendto_opmask_butone
156
157         * ircd/gline.c: use sendto_opmask_butone, send_reply
158
159         * ircd/ircd_snprintf.c (doprintf): make it deal with incompletely
160         registered clients; make FLAG_ALT print nick!user@host; make
161         FLAG_COLON print :blah
162
163         * ircd/class.c (report_classes): use send_reply instead of
164         sendto_one
165
166         * ircd/hash.c (m_hash): replace sendto_one with sendcmdto_one
167
168         * ircd/IPcheck.c (ip_registry_connect_succeeded): replace
169         sendto_one with sendcmdto_one
170
171 2000-04-21  Kevin L. Mitchell  <klmitch@mit.edu>
172
173         * ircd/send.c: clean up logic in sendcmdto_channel_butone; use
174         MyConnect() instead of IsServer() in sendcmdto_flag_butone; define
175         sendcmdto_match_butone
176
177         * include/send.h: declare sendcmdto_match_butone
178
179 2000-04-20  Kevin L. Mitchell  <klmitch@mit.edu>
180
181         * ircd/jupe.c: update to use send_reply()
182
183         * ircd/gline.c: update to use send_reply()
184
185         * include/ircd_reply.h: declare send_reply
186
187         * ircd/ircd_reply.c (send_reply): send_error_to_client, but for
188         replies; uses ircd_snprintf
189
190         * ircd/send.c: added comments to redirect searchers to appropriate
191         sendcmdto_* function; moved new functions to end of file; added
192         explanatory comments; reordered arguments; defined new functions
193         mentioned below
194
195         * ircd/m_jupe.c: reorder arguments to sendcmdto_* functions
196
197         * ircd/m_gline.c: reorder arguments to sendcmdto_* functions
198
199         * ircd/jupe.c: reorder arguments to sendcmdto_* functions
200
201         * ircd/gline.c: reorder arguments to sendcmdto_* functions
202
203         * include/send.h: reorder arguments, add explanatory comments,
204         declare new functions sendcmdto_flag_butone, sendto_opmask_butone,
205         and vsendto_opmask_butone
206
207 2000-04-19  Kevin L. Mitchell  <klmitch@mit.edu>
208
209         * ircd/send.c: define sendcmdto_channel_butone, wrote a simplified
210         vsendto_op_mask that uses '*' instead of the receiving client
211         nickname
212
213         * include/send.h: declare sendcmdto_channel_butone; takes a skip
214         argument that allows you to skip (or not to skip) deaf users,
215         users behind bursting servers, and non channel operators
216
217 2000-04-17  Kevin L. Mitchell  <klmitch@mit.edu>
218
219         * ircd/send.c: new sendcmdto_channel_butserv -- note that old
220         sendto_channel_butserv has a subtle bug; also wrote
221         sendcmdto_common_channels.
222
223         * include/send.h: declare new sendcmdto_* functions
224
225         * ircd/jupe.c: support local deactivations of jupes
226
227         * ircd/gline.c: support local deactivations of glines
228
229         * include/jupe.h: JUPE_LDEACT allows jupes to be locally
230         deactivated; if they aren't locally deactivated, then it slaves to
231         the net-wide activation status; JupeIsRemActive() tests only
232         whether the jupe is active everywhere else
233
234         * include/gline.h: GLINE_LDEACT allows glines to be locally
235         deactivated; if they aren't locally deactivated, then it slaves to
236         the net-wide activation status; GlineIsRemActive() tests only
237         whether the gline is active everywhere else
238
239         * ircd/gline.c: detect overlapping G-lines; if an existing, wider
240         gline expires after the new one will, we drop the new one,
241         otherwise we add the G-line after that one (so the wide one will
242         apply first); if the new one contains an existing G-line and if it
243         will expire after the existing one, we drop the existing one to
244         save memory
245
246         * ircd/m_gline.c (mo_gline): opers could issue remote local
247         glines when CONFIG_OPERCMDS was off; fixed
248
249 2000-04-16  Kevin L. Mitchell  <klmitch@mit.edu>
250
251         * ircd/m_jupe.c (mo_jupe): allow target argument to be dropped if
252         this is a local JUPE
253
254         * ircd/gline.c: add flags argument to gline_activate and
255         gline_deactivate for future expansion
256
257         * ircd/m_gline.c: pass flags to gline_activate and
258         gline_deactivate
259
260         * include/gline.h: add flags argument to gline_activate and
261         gline_deactivate
262
263         * ircd/jupe.c: add flags argument to jupe_activate and
264         jupe_deactivate for future expansion
265
266         * include/jupe.h: add flags argument to jupe_activate and
267         jupe_deactivate
268
269         * ircd/m_jupe.c: pass a flags argument to jupe_add instead of
270         local, active; pass flags to jupe_activate and jupe_deactivate
271
272         * include/gline.h: remove dead code
273
274         * ircd/gline.c: make gline expire times relative to CurrentTime,
275         since that should be monotonically increasing, instead of
276         TStime(), which can be set backwards, and which can therefore
277         cause an expire time to increase; make local glines be removed
278         instead of just deactivated; don't let gline_find() look for
279         user@host glines if the mask being looked up is a channel mask
280
281         * ircd/send.c (vsendcmdto_one): forgot to account for the case
282         where origin is a server and destination is a user
283
284         * ircd/jupe.c: make jupe expire times relative to CurrentTime,
285         since that should be monotonically increasing, instead of
286         TStime(), which can be set backwards, and which can therefore
287         cause an expire time to increase; make local jupes be removed
288         instead of just deactivated
289
290         * ircd/ircd_snprintf.c: d'oh, thanks for catching that; short for
291         limit is fine.  any other warnings I should know about?
292
293 2000-04-15  Thomas Helvey <tomh@inxpress.net>
294
295         * ircd/*.c: const correctness and type safety cleanups to
296         get code to compile with C++ compiler. Still has
297         signed/unsigned comparison warnings.
298
299 2000-04-15  Greg Sikorski <gte@atomicrevs.demon.co.uk>
300
301         * ircd/userload.c: change <sys/time.h> include to <time.h> for
302           portability.
303
304 2000-04-14  Kevin L. Mitchell  <klmitch@mit.edu>
305
306         * ircd/m_gline.c (mo_gline): d'oh, target isn't a numeric; use %C
307         and convert acptr...
308
309         * ircd/s_user.c: move gline_lookup function call into
310         register_user, where it'll have a username to lookup!
311
312         * ircd/m_gline.c: modify to utilize new sendcmdto_* series of
313         functions; also stuff send_error_to_client into return clauses
314
315         * ircd/m_jupe.c: modify to utilize new sendcmdto_* series of
316         functions; also use send_error_to_client where that makes sense
317
318         * ircd/jupe.c: modify to utilize new sendcmdto_* series of
319         functions; also use send_error_to_client where that makes sense
320
321         * ircd/gline.c: modify to utilize new sendcmdto_* series of
322         functions; also fix gline_lookup() to deal properly with remote
323         clients--boy, do struct Client and struct User need to be cleaned
324         up!
325
326         * ircd/ircd_snprintf.c (doprintf): a dest of &me is a server,
327         too...
328
329         * ircd/send.c: wrote sendcmdto_one(), vsendcmdto_one(), and
330         sendcmdto_serv_butone(), all utilizing the %v conversion of
331         ircd_snprintf()
332
333         * include/send.h: define IRC_BUFSIZE, max size of a message;
334         declare sendcmdto_one(), vsendcmdto_one(), and
335         sendcmdto_serv_butone()
336
337         * include/msg.h: define all the CMD_* constants needed to utilize
338         the new sendcmdto_* series of functions
339
340         * ircd/Makefile.in (SRC): list ircd_snprintf.c; run make depend
341
342         * ircd/gline.c: remove old, dead code.
343
344         * ircd/m_gline.c (mo_gline): disallow setting of global G-lines
345         unless CONFIG_OPERCMDS is enabled; disallow listing of all G-lines
346         (don't advertise proxies); remove dead code
347
348         * ircd/parse.c: oper handler for JUPE only lists jupes unless
349         CONFIG_OPERCMDS is enabled
350
351         * ircd/m_jupe.c (mo_jupe): don't compile mo_jupe() if
352         CONFIG_OPERCMDS is not enabled; we'll disable it in parse.c
353
354         * ircd/m_opmode.c (mo_opmode): if CONFIG_OPERCMDS is not enabled,
355         always return ERR_DISABLED
356
357         * ircd/m_clearmode.c (mo_clearmode): if CONFIG_OPERCMDS is not
358         enabled, always return ERR_DISABLED
359
360         * ircd/s_err.c: add error message to indicate disabled commands
361
362         * include/numeric.h (ERR_DISABLED): to indicate disabled commands
363
364         * doc/Configure.help: add documentation for CONFIG_OPERCMDS
365
366         * config/config-sh.in: add CONFIG_OPERCMDS, default both it and
367         CONFIG_NEW_MODE to 'y' for now
368
369         * ircd/gline.c (gline_list): fix a minor formatting bogon
370
371         * BUGS: since I fixed that bug, might as well mark it fixed.
372
373         * ircd/m_join.c: look up badchans with GLINE_EXACT
374
375         * ircd/m_gline.c: fix parc count problems; look up existing
376         G-lines with GLINE_EXACT; only set new lastmod when
377         activating/deactivating existing glines if old lastmod was not 0
378
379         * ircd/gline.c: forgot to copy the gline reason over; don't
380         propagate a gline with 0 lastmod if origin is user; add
381         GLINE_EXACT to force exact matching of gline mask
382
383         * ircd/ircd_snprintf.c (doprintf): forgot to deal with the zero
384         flag properly
385
386         * ircd/s_conf.c (find_kill): gline_find() takes a char *userhost,
387         but gline_lookup() actually takes a client--d'oh.
388
389 2000-04-13  Thomas Helvey <tomh@inxpress.net>
390         * ircd/IPcheck.c: Back port BLMet's bugfix from 2.10.10
391
392 2000-04-13  Greg Sikorski <gte@atomicrevs.demon.co.uk>
393
394         * ircd/whocmds.c: Don't make idle flag default in /who, to prevent:
395           "/who * x"
396           "Gte3 H*iwg Gte@212.49.240.217 :1 :0 I am the one that was."
397           (Found by Plexus).
398
399         * ircd/whocmds.c: Change idle time calc from socket idle to user
400           idle.
401
402 2000-04-13  Kevin L. Mitchell  <klmitch@mit.edu>
403
404         * config/aclocal.m4 (unet_CHECK_TYPE_SIZES): check size of void *,
405         too, for ircd_snprintf.c
406
407         * include/ircd_snprintf.h: documentation for ircd_(v)snprintf, in
408         comments; mostly descended from the Linux manpage for printf, but
409         also documenting the extensions.
410
411         * ircd/ircd_snprintf.c: NULL dest is equivalent to going to a
412         client; make 'q' be the same as 'L'; remove __inline__; only
413         define EXTENSION if HAVE_LONG_LONG is defined
414
415         * include/handlers.h: declare m_gline()
416
417         * ircd/parse.c: gline can be called by users, but it only lists
418         the glines.
419
420         * ircd/s_user.c (set_nick_name): resend gline if a remote server
421         introduces a glined client
422
423         * ircd/s_serv.c (server_estab): burst glines, too
424
425         * ircd/gline.c: fix up all the expire times to be offsets;
426         simplify gline_resend()
427
428         * ircd/m_gline.c: begin coding replacements for ms_gline(),
429         mo_gline(), and m_gline()
430
431         * ircd/gline.c (gline_add): allow *@#channel to work correctly;
432         also, prohibit local BADCHANs if LOCAL_BADCHAN not defined
433
434 2000-04-13  Greg Sikorski <gte@atomicrevs.demon.co.uk>
435
436         * tools/Bouncer/*: Add comments/documentation/tags.
437         * tools/Bouncer/*: Add debug defines, make task fork().
438
439 2000-04-12  Thomas Helvey <tomh@inxpress.net>
440         * ircd/s_err.c: Cleanup s_err.c make one table so we
441         don't have to do anything tricky to get an error string.
442
443 2000-04-12  Greg Sikorski <gte@atomicrevs.demon.co.uk>
444         * Add port bouncer for http (x/w)
445
446 2000-04-12  Kevin L. Mitchell  <klmitch@mit.edu>
447
448         * ircd/s_conf.c (find_kill): replaced call to find_gline() with a
449         call to gline_find(); also used GlineReason() instead of direct
450         reference to structure member
451
452         * ircd/m_join.c (m_join): replace bad_channel() calls with calls
453         to gline_find(name, GLINE_BADCHAN), and also check to see if gline
454         is active
455
456         * ircd/channel.c: nothing seems to be called anywhere...
457
458         * ircd/s_err.c: update a couple of replies to dovetail with new
459         semantics
460
461         * ircd/gline.c: begin complete re-implementation of gline.c along
462         the lines of the final design of jupe.c
463
464         * include/gline.h: begin complete re-implementation of gline.c
465         along the lines of the final design of jupe.c
466
467         * ircd/channel.c (mode_process_clients): fix "Deop of +k user on
468         %s by %s" message...
469
470         * ircd/ircd_snprintf.c: my new snprintf()-like functions
471
472         * include/ircd_snprintf.h: my new snprintf()-like functions
473
474 2000-04-11  Thomas Helvey <tomh@inxpress.net>
475         * ircd/IPcheck.c: removed old dead code
476         * ircd/s_user.c (send_user_info): removed non-standard
477           user not found message for userhost/userip
478
479 2000-04-11  Greg Sikorski <gte@atomicrevs.demon.co.uk>
480
481         * ircd/s_err.c: Added missing quotes to ERR_DONTCHEAT numeric.
482         * doc/p10.html: Work on chapter 4.
483
484 2000-04-10  Kevin L. Mitchell  <klmitch@mit.edu>
485
486         * ircd/channel.c (mode_parse_client): fix coredump on /mode
487         #foobar +o nosuchnick
488
489 2000-04-10  Perry Lorier  <Isomer@coders.net>
490         * BUGS: Added bug.
491
492 2000-04-09  Thomas Helvey <tomh@inxpress.net>
493         * include/IPcheck.h: fix prototype
494         * ircd/s_user.c: fix usage of IPcheck_remote_connect
495         * ircd/IPcheck.c: removed unused args
496
497 2000-04-09  Thomas Helvey <tomh@inxpress.net>
498         * include/IPcheck.h: add proto for IPcheck_expire
499
500         * ircd/IPcheck.c: Rewrote
501
502         * ircd/ircd.c: Add IPcheck_expire to main message loop
503
504         * ircd/s_user.c: Redo target hashing, refactor target code
505
506         * include/numeric.h: Cleaned up numerics, added which ones are
507         in use by other networks and what they are in use for.
508
509         * ircd/channel.c: cleaned can_join(), allow anyone through anything
510         if /invited, simplified the function.  Opers overusing OPEROVERRIDE
511         will get a message explaining to them not to cheat.
512
513         * ircd/m_join.c: cleaned up the various join functions, should be
514         a lot more efficient.  Still needs work.  Now assumes that s<->s
515         won't send it a JOIN 0.  Service coders - note this and tread with
516         care.
517
518         * ircd/m_stats.c: added Gte-'s stats doc patch.
519
520         * ircd/m_version.c: /version now returns the 005 numeric as well.
521         as requested by Liandrin.
522
523
524 2000-04-07  Kevin L. Mitchell  <klmitch@mit.edu>
525
526         * ircd/m_clearmode.c: add include for support.h for write_log()
527
528         * configure: move ircd/crypt/* to tools/*
529
530 2000-04-06  Thomas Helvey <tomh@inxpress.net>
531         * ircd/s_auth.c: Shorten auth connect timeout to 60 seconds
532           set client host to server alias if connection from localhost
533
534 2000-04-06  Perry Lorier <isomer@coders.net>
535         * ircd/ircd.c: Fix core during pinging (oops)
536         
537 2000-04-06  Perry Lorier <isomer@coders.net>
538         * ircd/send.c: fixed wrong ident being sent to channels bug.
539         * include/numerics.h: Updated some of the numerics from other
540         networks.  Flagged some as 'unused' by undernet.
541
542 2000-03-30  Perry Lorier <isomer@coders.net>
543         * ircd/ircd.c: Lets see if this helps the ping problem at all.
544         * ircd/whocmds.c, /doc/readme.who: Added %l specifier to get idle
545         time for local clients. (as requested), extended who now returns all
546         the flags (@+!) so you can tell the complete state of a client.
547
548 2000-03-30  Thomas Helvey <tomh@inxpress.net>
549         * m_rping.c m_rpong.c: add Gte's rping/rpong fixes
550
551 2000-03-30  Perry Lorier <isomer@coders.net>
552         * ircd/parse.c: oops, missed opers.
553
554 2000-03-30  Perry Lorier <isomer@coders.net>
555         * ircd/parse.c: fixed mystifying ping bug thats been plaguing us
556         for so long.  Remember: m_ping MUST be in the parse array. :)
557
558 2000-03-30  Perry Lorier <isomer@coders.net>
559         * ircd/ircd.c: test in check_pings was wrong.  I move that we
560         disallow cvs commit after 10pm localtime....
561
562 2000-03-30  Perry Lorier <isomer@coders.net>
563         * ircd/m_pong.c: Fix it for servers too.
564
565 2000-03-30  Perry Lorier <isomer@coders.net>
566         * ircd/m_pong.c: Fix ping timeout bugs
567
568 2000-03-30  Perry Lorier <isomer@coders.net>
569         * ircd/channel.c: Bans had CurrentTime in their when field instead
570         of TStime()
571
572 2000-03-31  Thomas Helvey <tomh@ixpress.net>
573         * ircd/numnicks.c (SetXYYCapacity): fix for extended
574         numerics.
575
576 2000-03-30  Perry Lorier <isomer@coders.net>
577         * ircd/m_nick.c: send kills both ways so when we add nick change
578         on collision we don't desync the network.
579
580         * ircd/map.c: Fixup the map a bit more.
581
582 2000-03-31  Kevin L. Mitchell  <klmitch@mit.edu>
583
584         * ircd/m_clearmode.c (do_clearmode): Log the CLEARMODE to OPATH
585
586         * ircd/m_opmode.c: Log the mode changes to OPATH
587
588         * ircd/channel.c (modebuf_flush_int): Log the mode changes to
589         OPATH
590
591         * include/channel.h (MODEBUF_DEST_LOG): Log the mode changes to
592         OPATH
593
594         * doc/Configure.help: help text for CONFIG_LOG_OPMODE / OPATH
595
596         * config/config-sh.in: added OPATH for opmode log file
597
598         * ircd/m_clearmode.c (do_clearmode): updated uses of
599         modebuf_mode_string() for the new usage
600
601         * ircd/channel.c: added flag MODE_FREE and an int argument to
602         modebuf_mode_string() to indicate that the string must be free'd;
603         updated calls to modebuf_mode_string() for the new usage; called
604         collapse(pretty_mask()) on the ban string and use allocated memory
605         for it; added ban list length accounting; fixed a number of small
606         bugs in ban processing
607
608         * include/channel.h: added flag MODE_FREE and an int argument to
609         modebuf_mode_string() to indicate that the string must be free'd
610
611         * ircd/m_clearmode.c (do_clearmode): made sure clearmode removed
612         keys and limits that are set
613
614 2000-03-30  Perry Lorier <isomer@coders.net>
615         * ircd/ircd.c: rewrote check_pings() for maintainability
616         and speed.  Also changed quit msg's so they don't have
617         redundant nick[host] info in them.
618
619         * ircd/send.c: Changed write errors to report what error
620         occured (if possible).
621
622         * ircd/gline.c: added gline comment to the quit.
623
624         * ircd/m_server.c: Added suggestions to server quits mentioning
625         what went wrong so the admin can fix it earlier instead of asking
626         questions...
627
628         * ircd/map.c: Changed m_map() to hide numerics, show a * beside
629         servers that aren't fully burst yet.  And show '(--s)' for servers
630         where its not sure.
631
632         * doc/example.conf: Fixed wrapped U:
633
634 2000-03-30  Kevin L. Mitchell  <klmitch@mit.edu>
635
636         * ircd/m_mode.c (ms_mode): implemented a new m_mode in terms of
637         mode_parse() (version selectable at compile time)
638
639         * ircd/m_clearmode.c (mo_clearmode): clean_channelname(parv[1])
640
641         * ircd/m_opmode.c (mo_opmode): clean_channelname(parv[1])
642
643         * config/config-sh.in: add new config option to enable new m_mode
644         implementation
645
646         * doc/Configure.help: add documentation for new config option
647         CONFIG_NEW_MODE
648
649         * ircd/channel.c (mode_parse_client): /opmode #foobar -o -- 461
650         MODE -v : Not enough parameters
651
652         * ircd/m_clearmode.c (do_clearmode): do_clearmode() would remove
653         +k and +l even if they weren't set...
654
655         * ircd/m_opmode.c: implement the OPMODE command using mode_parse()
656
657         * ircd/channel.c: make mode_process_clients() clear the DEOPPED
658         flag; fix +s+p exclusivity; add MODE_ADD/MODE_DEL to flag list
659         for; test the 0-th member, not the i-th member, of the client
660         change state stuff
661
662         * ircd/m_clearmode.c (do_clearmode): use the new
663         mode_invite_clear() function
664
665         * ircd/channel.c: cleared up all the compile-time warnings and
666         errors
667
668         * include/channel.h: added declarations for mode_ban_invalidate()
669         and mode_invite_clear()
670
671         * ircd/channel.c: finished mode_parse(), then broke it up into a
672         dozen or so helper functions to make the code easier to read
673
674 2000-03-29  Thomas Helvey <tomh@inxpress.net>
675         * ircd/ircd.c: refactor server initialization a bit, use
676         getopt for parsing command line, refactor init_sys, main,
677         and other bits.
678
679         * ircd/s_bsd.c: add functions for initialization to clean
680         up logic a bit and remove duplicated code.
681
682         * include/ircd.h: add struct for server process related
683         variables.
684
685 2000-03-29  Kevin L. Mitchell  <klmitch@mit.edu>
686
687         * ircd/channel.c: initial definition of mode_parse(); flags to
688         prevent doing the same thing multiple times; helper method
689         send_notoper() to send a "Not oper"/"Not on channel" notice
690
691         * include/channel.h: declare mode_parse() and helper flags
692
693         * ircd/channel.c (modebuf_flush_int): fiddled with timestamp
694         sending to match the current action of set_mode() closely enough
695         that hopefully there won't be major conflicts
696
697         * ircd/channel.c (modebuf_flush_int): consolidated the mode string
698         building logic, reversed the order of the arguments to mode
699         commands to have '-' preceed '+'
700
701 2000-03-29  Thomas Helvey <tomh@inxpress.net>
702         * ircd/s_bsd.c (add_connection): don't disable socket options
703         let OS tune itself and allow important performance tweaks to 
704         work.
705
706 2000-03-28  Kevin L. Mitchell  <klmitch@mit.edu>
707
708         * ircd/channel.c (modebuf_flush_int): use %d, not %-15d; I got
709         confused by set_mode, which is doing some really weird logic;
710         guess what I'm going to rewrite next?  ;)
711
712 2000-03-28  Kevin L. Mitchell  <klmitch@emc.com>
713
714         * include/channel.h: added MODE_SAVE for the bounds checking stuff
715         in modebuf_flush
716
717         * ircd/channel.c: make modebuf_flush into modebuf_flush_int and
718         make it do bounds checking on the buffer; all modes are sent only
719         if the all parameter is 1; modebuf_flush is the exported wrapper
720
721         * include/channel.h: add BOUNCE, renumber flags to get a little
722         more space
723
724         * ircd/channel.c (modebuf_flush): don't overload HACK2, add
725         BOUNCE; send DESYNCH message
726
727 2000-03-27  Kevin L. Mitchell  <klmitch@emc.com>
728
729         * ircd/m_clearmode.c (do_clearmode): only mark the modes the
730         channel actually has in effect for deletion
731
732         * ircd/channel.c: added explanatory comments to all added
733         functions; made flushing take place at the correct place even if
734         the MODEBUF_DEST_DEOP flag is set; rewrote build_string() helper
735         to bash some stupid bugs; made modebuf_flush() return if ModeBuf
736         is empty, fixed the apparent source, removed some bogus string
737         termination code, properly terminate the mode strings, add support
738         for HACK2 and HACK3, made limit strings not be sent if the limit
739         is being removed, changed where '+' and '-' come from in sent
740         strings, added support for DEOP flag, set up bouncing code for
741         HACK2
742
743         * ircd/Makefile.in: ran make depend
744
745         * include/channel.h: added new defines for future functionality,
746         made modebuf_flush() return int so I can use tail recursion
747
748         * ircd/m_clearmode.c: add msg.h to includes; other misc cleanups
749         to make it all compile
750
751         * ircd/m_opmode.c: add msg.h to includes...
752
753         * ircd/m_clearmode.c: implemented mo_clearchan()/ms_clearchan()
754
755         * ircd/channel.c (modebuf_flush): realized I forgot to
756         nul-terminate addbuf/rembuf properly...
757
758         * ircd/m_clearmode.c (do_clearmode): wrote do_clearmode()...
759
760         * ircd/channel.c (modebuf_flush): correct sendto_server_butone to
761         sendto_serv_butone--blah^2
762
763         * ircd/send.c (sendto_serv_butone): stupid comments confused me
764
765         * ircd/channel.c (modebuf_flush): if there are no mode changes to
766         propagate, we're done...
767
768         * ircd/channel.c (modebuf_flush): duh; it's sendto_server_butone,
769         not sendto_all_butone
770
771         * ircd/m_clearmode.c: define skeleton for m{o,s}_clearmode
772
773         * ircd/m_opmode.c: define skeleton for m{o,s}_opmode
774
775         * ircd/Makefile.in (SRC): added m_opmode() and m_clearmode() to
776         the list
777
778         * ircd/parse.c: added messages for opmode and clearmode
779
780         * include/handlers.h: added declarations for mo_opmode(),
781         ms_opmode(), mo_clearmode(), and ms_clearmode()
782
783         * include/msg.h: define MSG_OPMODE, TOK_OPMODE, MSG_CLEARMODE, and
784         TOK_CLEARMODE
785
786         * include/channel.h (MODEBUF_DEST_OPMODE): Define the
787         MODEBUF_DEST_OPMODE flag
788
789         * ircd/channel.c (modebuf_flush): added new flag,
790         MODEBUF_DEST_OPMODE; causes channel MODE/HACK(4) notice to appear
791         to originate from source's server (or source itself, if
792         IsServer(source)); also causes a server-level MODE to be sent as
793         OPMODE instead
794
795         * include/channel.h: defined MODEBUF_DEST_SERVER,
796         MODEBUF_DEST_HACK4
797
798         * ircd/channel.c: Add another argument to build_string() to handle
799         numeric nicks; implemented MODEBUF_DEST_SERVER to send MODEs to
800         servers; implemented MODEBUF_DEST_HACK4 to cause HACK(4) notices
801         to be sent out
802
803 2000-03-27  Perry Lorier <isomer@coders.net>
804
805         * ircd/s_bsd.c: fixed missing 'u' typo.
806
807 2000-03-26  Kevin L. Mitchell  <klmitch@emc.com>
808
809         * ircd/channel.c: implement modebuf_init(), _mode(), _mode_uint(),
810         _mode_string(), _mode_client(), _flush(); also implemented a
811         simple build_string()
812
813         * include/channel.h: added definition of ModeBuf, modebuf_*
814         manipulation functions, and a couple of helper macros
815
816 2000-03-24 Thomas Helvey <tomh@inxpress.net>
817   * numicks.c: convert extended numerics to use original mask version
818   * numnicks.h: ""
819   * s_user.c:
820 2000-03-23 Thomas Helvey <tomh@inxpress.net>
821   * Merge in changes from production
822 2000-03-22 Thomas Helvey <tomh@inxpress.net>
823   * numicks.c: Tweak to numnick generator to reduce possibility of duplicates.
824   * rfc1459.unet: Add Maniac's documentation for /names 0
825 * Fix misc. jupe bugs that somehow made it into the tree
826 * Escape /names 0 to mean /names --Maniac
827 * Don't core when server asks for info --Maniac 
828 * Add Kev's jupe patch --Bleep
829 * Add Maniacs squit patch --Bleep
830 * Merge in u2_10_10_beta07 changes --Bleep
831 * Merge in u2_10_10_beta06 changes --Bleep
832 * Start ircu2.10.11 development, beta branch u2_10_10 --Bleep
833 #-----------------------------------------------------------------------------
834 #
835 # ChangeLog for ircu2.10.11
836 #
837 # $Id: ChangeLog,v 1.107 2000-04-27 23:05:41 isomer Exp $
838 #
839 # Insert new changes at beginning of the change list.
840 #