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