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