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