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