Author: Kev <klmitch@mit.edu>
[ircu2.10.12-pk.git] / ChangeLog
1 2000-12-12  Kevin L. Mitchell  <klmitch@mit.edu>
2
3         * ircd/whowas.c: use new struct Client accessor macros
4
5         * ircd/whocmds.c: use new struct Client accessor macros
6
7         * ircd/send.c: use new struct Client accessor macros
8
9         * ircd/s_user.c: use new struct Client accessor macros; removed
10         some dead code
11
12         * ircd/s_serv.c: use new struct Client accessor macros; removed
13         some dead code
14
15         * ircd/s_numeric.c: use new struct Client accessor macros
16
17         * ircd/s_misc.c: use new struct Client accessor macros
18
19         * ircd/s_debug.c: use new struct Client accessor macros
20
21         * ircd/s_conf.c: use new struct Client accessor macros
22
23         * ircd/s_bsd.c: use new struct Client accessor macros
24
25         * ircd/s_auth.c: use new struct Client accessor macros
26
27         * ircd/parse.c: use new struct Client accessor macros
28
29         * ircd/packet.c: use new struct Client accessor macros
30
31         * ircd/numnicks.c: use new struct Client accessor macros
32
33         * ircd/motd.c: use new struct Client accessor macros
34
35         * ircd/listener.c: use new struct Client accessor macros
36
37         * ircd/list.c: use new struct Client accessor macros
38
39         * ircd/jupe.c: use new struct Client accessor macros
40
41         * ircd/ircd_snprintf.c: use new struct Client accessor macros
42
43         * ircd/ircd_reply.c: use new struct Client accessor macros
44
45         * ircd/ircd_relay.c: use new struct Client accessor macros
46
47         * ircd/ircd.c: use new struct Client accessor macros
48
49         * ircd/gline.c: catch some instances of me.<stuff> I missed
50         previously
51
52         * ircd/client.c: use cli_ instead of con_
53
54         * ircd/class.c: use cli_ instead of con_
55
56         * ircd/channel.c: use cli_ instead of con_
57
58         * ircd/IPcheck.c: use cli_ instead of con_; catch some instances
59         of me.<stuff> I missed previously
60
61         * include/client.h: use cli_ instead of con_...seemed like a good
62         idea at the time *shrug*
63
64 2000-12-11  Kevin L. Mitchell  <klmitch@mit.edu>
65
66         * ircd/hash.c: use struct Client accessor macros
67
68         * ircd/gline.c: use struct Client accessor macros
69
70         * ircd/crule.c: use struct Client accessor macros
71
72         * ircd/client.c: use struct Client accessor macros; remove some
73         dead code
74
75         * ircd/class.c: use struct Client accessor macros
76
77         * ircd/channel.c: use struct Client accessor macros; remove some
78         dead code
79
80         * ircd/IPcheck.c: use struct Client accessor macros
81
82         * include/numnicks.h: use struct Client accessor macros
83
84         * include/client.h: first step to divorcing struct Client and
85         struct Connection--define accessor macros and use them
86
87         * ircd/gline.c: When Uworld removed Uworld-set G-lines, only the
88         uplink would remove them.  This is because the removal protocol
89         message wasn't being sent to the uplinks.  This is fixed by fixing
90         propagate_gline() to send the proper number of arguments depending
91         on whether or not we're adding or deleting the Uworld gline, and
92         by having gline_deactivate() make sure to turn off the active bit
93         and call propagate_gline() if it's a Uworld gline
94
95 2000-12-10  Kevin L. Mitchell  <klmitch@mit.edu>
96
97         * ircd/os_generic.c: make sure IOV_MAX gets defined, just in case
98
99         * ircd/os_bsd.c: apparently BSD doesn't have IOV_MAX defined
100         anywhere intelligent...
101
102 2000-12-09  Kevin L. Mitchell  <klmitch@mit.edu>
103
104         * ircd/send.c (send_queued): call deliver_it with appropriate
105         arguments
106
107         * ircd/s_serv.c: reorder a couple of headers--cosmetic
108
109         * ircd/s_bsd.c (deliver_it): make deliver_it work with a struct
110         MsgQ
111
112         * ircd/os_solaris.c (os_sendv_nonb): function for calling writev
113         with appropriate iovec
114
115         * ircd/os_linux.c (os_sendv_nonb): function for calling writev
116         with appropriate iovec
117
118         * ircd/os_generic.c (os_sendv_nonb): function for calling writev
119         with appropriate iovec
120
121         * ircd/os_bsd.c (os_sendv_nonb): function for calling writev with
122         appropriate iovec
123
124         * ircd/msgq.c (msgq_mapiov): add a len_p argument for totalling up
125         exactly how much we're trying to write out to the fd
126
127         * include/s_bsd.h: make deliver_it take a struct MsgQ
128
129         * include/msgq.h: add a len_p argument to msgq_mapiov to help
130         detect short writes that indicate possible socket blocking
131
132         * include/ircd_osdep.h: declare os_sendv_nonb()
133
134         * ircd/channel.c (modebuf_mode): don't add empty modes...
135
136 2000-12-08  Kevin L. Mitchell  <klmitch@mit.edu>
137
138         * include/send.h: add prio argument to send_buffer to select
139         between normal and priority queues
140
141         * ircd/s_user.c (send_user_info): add prio argument to send_buffer
142         call
143
144         * ircd/m_ison.c (m_ison): add prio argument to send_buffer call
145
146         * ircd/ircd_reply.c (send_reply): add prio argument to send_buffer
147         call
148
149         * ircd/channel.c (send_channel_modes): add prio argument to
150         send_buffer call
151
152         * ircd/send.c (send_buffer): add a prio argument to select the
153         priority queue; update send.c functions to use it
154
155         * ircd/msgq.c (msgq_add): remove msgq_prio; fold msgq_link and
156         msgq_add; add a prio argument to msgq_add to select the priority
157         queue
158
159         * include/msgq.h: remove msgq_prio; add a prio argument to
160         msgq_add
161
162         * ircd/send.c: remove sendbuf; remove GODMODE code; switch to
163         using msgq functions instead of dbuf functions; remove old, dead
164         sendto_* functions; redo send_buffer to take a struct MsgBuf;
165         rework sendcmdto_* functions to make use of the new struct MsgBuf
166
167         * ircd/s_user.c: remove hunt_server; restructure send_user_info to
168         make appropriate use of struct MsgBuf
169
170         * ircd/s_debug.c (count_memory): count memory used by the MsgQ
171         system and report it
172
173         * ircd/s_conf.c (read_configuration_file): use
174         sendto_opmask_butone instead of the now dead sendto_op_mask
175
176         * ircd/s_bsd.c: switch to using appropriate MsgQLength and other
177         calls on sendQ
178
179         * ircd/parse.c (parse_server): get rid of a piece of GODMODE code
180
181         * ircd/msgq.c: add msgq_append and msgq_bufleft; fix a bug in
182         msgq_clean
183
184         * ircd/m_version.c: fix spelling in comments marking dead code
185
186         * ircd/m_userip.c (userip_formatter): restructure to make use of
187         struct MsgBuf
188
189         * ircd/m_userhost.c (userhost_formatter): restructure to make use
190         of struct MsgBuf
191
192         * ircd/m_stats.c: use MsgQLength on a sendQ
193
194         * ircd/m_settime.c: use MsgQLength instead of DBufLength on a
195         sendQ; mark a piece of dead code
196
197         * ircd/m_names.c: use send_reply instead of sendto_one
198
199         * ircd/m_mode.c: use new mode; remove old dead code
200
201         * ircd/m_ison.c (m_ison): restructure to make use of struct MsgBuf
202
203         * ircd/m_burst.c: use BUFSIZE instead of IRC_BUFSIZE; remove old
204         dead code
205
206         * ircd/listener.c (accept_connection): use sendto_opmask_butone
207         instead of sendto_op_mask
208
209         * ircd/list.c (free_client): use MsgQClear to clear sendQ
210
211         * ircd/ircd_reply.c: remove send_error_to_client; restructure
212         send_reply to make use of struct MsgBuf
213
214         * ircd/dbuf.c (dbuf_put): remove argument to flush_sendq_except,
215         since its no longer used (at least currently)
216
217         * ircd/channel.c: restructure send_channel_modes to make use of
218         struct MsgBuf; remove set_mode, add_token_to_sendbuf, cancel_mode,
219         and send_hack_notice; use BUFSIZE instead of IRC_BUFSIZE
220
221         * ircd/Makefile.in: add msgq.c to list of sources; run make depend
222
223         * ircd/IPcheck.c: use sendcmdto_one instead of sendto_one
224
225         * include/send.h: send_buffer now takes a struct MsgBuf * instead
226         of a char *; flush_sendq_except now takes no arguments, as sendq
227         flushing currently only happens in dbuf.h and sendQ is a struct
228         MsgQ; remove prototypes for a lot of old sendto_* functions that
229         aren't used anymore; remove sendbuf and IRC_BUFSIZE--the former is
230         no longer needed, and the latter is identical to BUFSIZE in
231         ircd_defs.h
232
233         * include/s_user.h: make InfoFormatter take a struct MsgBuf*
234         instead of a char *; also make it return void, instead of char *
235
236         * include/msgq.h: add msgq_append and msgq_bufleft functions
237
238         * include/client.h: use a struct MsgQ instead of a struct DBuf for
239         sendq
240
241         * doc/Configure.help: Remove help for compile-time options that
242         have gone away
243
244         * config/config-sh.in: remove CONFIG_NEWMODE
245
246         * ircd/m_server.c (mr_server): don't send server IPs in any server
247         notices
248
249         * ircd/msgq.c (msgq_vmake): add \r\n to messages
250
251 2000-12-07  Kevin L. Mitchell  <klmitch@mit.edu>
252
253         * include/msgq.h: declare the MsgQ API
254
255         * ircd/msgq.c: implementation of new MsgQ system
256
257 2000-12-06  Kevin L. Mitchell  <klmitch@mit.edu>
258
259         * ircd/ircd_features.c: #include was supposed to be for
260           ircd_features.h, not features.h--missed when I had to do a
261           rename because of namespace collision
262
263 2000-12-05  Greg Sikorski <gte@atomicrevs.demon.co.uk>
264         * ircd/m_topic.c: Added missing braces that caused all remote
265           topics to be ignored.
266
267 2000-12-04  Kevin L. Mitchell  <klmitch@mit.edu>
268
269         * ircd/m_create.c: I'm tired of the exit_client warning :)
270         (ms_create): discovered that exit_client() was being called with
271         too few arguments
272
273         * ircd/s_misc.c (exit_client): remove all dependance on
274         FNAME_USERLOG, since that's now gone; log only to LS_USER
275
276         * ircd/s_debug.c: USE_SYSLOG no longer means anything
277
278         * ircd/m_oper.c (m_oper): no longer log to LS_OPERLOG--we already
279         log to LS_OPER
280
281         * ircd/m_kill.c: no longer conditionalize on SYSLOG_KILL
282
283         * ircd/ircd_log.c: remove LS_OPERLOG, LS_USERLOG
284
285         * include/ircd_log.h: remove LS_OPERLOG, LS_USERLOG--they serve
286         the same purpose as LS_USER and LS_OPER
287
288         * config/config-sh.in: remove no longer relevant log config
289         variables
290
291         * ircd/uping.c (uping_init): use log_write instead of ircd_log
292
293         * ircd/s_misc.c (exit_client): use log_write instead of ircd_log
294
295         * ircd/s_conf.c: use log_write instead of ircd_log
296
297         * ircd/s_bsd.c (report_error): use log_write instead of ircd_log
298
299         * ircd/s_auth.c (timeout_auth_queries): use log_write instead of
300         ircd_log
301
302         * ircd/res.c (send_res_msg): use log_write instead of ircd_log
303
304         * ircd/m_who.c: use log_write instead of write_log; no longer
305         conditionalize on WPATH; mark dead ircd_log calls
306
307         * ircd/m_uping.c: mark dead ircd_log call
308
309         * ircd/m_server.c (mr_server): use log_write instead of ircd_log
310
311         * ircd/m_restart.c: use log_write instead of ircd_log; mark dead
312         ircd_log calls
313
314         * ircd/m_rehash.c (mo_rehash): use log_write instead of ircd_log
315
316         * ircd/m_oper.c: use log_write instead of ircd_log; no longer
317         conditionalize on FNAME_OPERLOG; mark dead ircd_log calls
318
319         * ircd/m_kill.c: mark dead ircd_log calls
320
321         * ircd/m_connect.c: use log_write instead of ircd_log; mark dead
322         ircd_log
323
324         * ircd/m_clearmode.c: use log_write instead of write_log; no
325         longer conditionalize on OPATH
326
327         * ircd/jupe.c: use log_write instead of write_log; no longer
328         conditionalize on JPATH
329
330         * ircd/ircd_log.c: add USER subsystem; remove ircd_log() compat
331         function; fix a couple of bugs
332
333         * ircd/ircd_alloc.c: fixed a comment
334
335         * ircd/ircd.c: use log_write instead of ircd_log; fold server
336         notice generation in a couple of cases
337
338         * ircd/gline.c: use log_write instead of write_log; no longer
339         conditionalize on GPATH
340
341         * ircd/channel.c (modebuf_flush_int): use log_write instead of
342         write_log; no longer conditionalize on OPATH
343
344         * ircd/Makefile.in: run make depend, since dependencies have
345         changed
346
347         * doc/example.conf: add system USER to documentation
348
349         * include/ircd_log.h: add system USER; remove old ircd_log()
350         declarations
351
352 2000-12-04  Isomer <isomer@coders.net>
353         * ircd/m_names.c: Add NAMES_EON to do_names to say add a
354         'end_of_names' reply when done.
355         * ircd/m_join.c: use NAMES_EON as mentioned above
356
357 2000-12-01  net  <simms@LUCIDA.QC.CA>
358
359         * ircd/motd.c: add a freelist for struct Motds
360
361 2000-11-30  Kevin L. Mitchell  <klmitch@mit.edu>
362
363         * ircd/s_stats.c (report_feature_list): report features--only
364         local opers can see logging configuration, since it doesn't really
365         mean anything to users
366
367         * ircd/s_err.c: add reply messages for new feature subsystem
368
369         * ircd/s_conf.c: add F lines to .conf
370
371         * ircd/parse.c: add the message descriptions for /set, /reset, and
372         /get
373
374         * ircd/m_stats.c: add /stats f
375
376         * ircd/m_set.c (mo_set): implement /set
377
378         * ircd/m_reset.c (mo_reset): implement /reset
379
380         * ircd/m_rehash.c: /rehash m now flushes MOTD cache, and /rehash l
381         reopens log files (for log file rotation)
382
383         * ircd/m_get.c (mo_get): implement /get
384
385         * ircd/ircd_log.c: use int instead of void return value; add
386         log_report_features() and log_canon(); fix a function that
387         disappears if DEBUGMODE not #define'd
388
389         * ircd/ircd_features.c: functions to manipulate feature settings
390         either from the config file or with the new /set, /reset, and /get
391         commands
392
393         * ircd/Makefile.in: add new .c files, run make depend
394
395         * include/s_stats.h: declare report_feature_list() (/stats f
396         handler)
397
398         * include/numeric.h: add RPL_STATSFLINE, RPL_FEATURE,
399         ERR_NOFEATURE, ERR_BADLOGTYPE, ERR_BADLOGSYS, and ERR_BADLOGVALUE
400         reply numerics
401
402         * include/msg.h: add defines for SET, RESET, and GET
403
404         * include/ircd_log.h: add a function to canonicalize subsystem
405         names; change some void return values to int
406
407         * include/ircd_features.h: new features subsystem handles all the
408         manipulation of special features, like log files
409
410         * include/handlers.h: declare new mo_{s,res,g}et message handlers
411         for fiddling with features run-time
412
413         * include/client.h (SNO_DEFAULT): don't set SNO_DEBUG by default;
414         seemed like a good idea at the time...
415
416         * doc/example.conf: document new F lines
417
418 2000-11-29  Kevin L. Mitchell  <klmitch@mit.edu>
419
420         * ircd/s_debug.c: rewrite debug_init() and vdebug() in terms of
421         new logging functions, which have special support for the debug
422         log; added loop detection to vdebug(), so that I can
423         sendto_opmask_butone() from log_vwrite() without incurring another
424         call to vdebug()
425
426         * ircd/s_conf.c (rehash): call log_reopen() from rehash routine;
427         this allows log file rotations
428
429         * ircd/m_kill.c: call log_write_kill() instead of ircd_log_kill()
430
431         * ircd/ircd_log.c: much more work fleshing out the interface;
432         removed old interface; included backwards-compat ircd_log()
433         function that logs to subsystem LS_OLDLOG
434
435         * ircd/ircd.c: switch to new log_init()/log_close()/log_reopen()
436         functions
437
438         * include/ircd_log.h: include stdarg.h for va_list; move ordering
439         warning to top of file; fill out LogSys enum; declare new
440         log_debug_init(), log_vwrite(), log_write_kill(), and
441         log_[sg]et_*() functions; add flags argument to log_write();
442         defined flags to inhibit various logging actions
443
444         * include/client.h: added support for new SNO_DEBUG, enabled only
445         if DEBUGMODE is defined
446
447 2000-11-28  Kevin L. Mitchell  <klmitch@mit.edu>
448
449         * ircd/ircd_log.c: make sure the various LOG_* constants are
450         defined (probably not needed, since #include <syslog.h> isn't
451         conditional); various static data needed for the new logging
452         functions; definitions of new logging functions
453
454         * include/ircd_log.h: new LogSys enum, declarations for part of
455         new logging API
456
457         * ircd/motd.c: we were setting type to MOTD_CLASS unconditionally,
458         which was of course stupid; switched to using switch/case in
459         initialization in motd_create(); zero the MotdList.other pointer
460         from motd_clear()
461
462         * ircd/ircd.c (main): motd_init() has to come before init_conf(),
463         or we overwrite init_conf()'s hard work with respect to T-lines
464
465 2000-11-27  Kevin L. Mitchell  <klmitch@mit.edu>
466
467         * ircd/s_stats.c: comment out report_motd_list and include a
468         reference to motd_report()
469
470         * ircd/s_conf.c: rip out the old MOTD manipulation functions; call
471         motd_add() from the conf parser; call motd_clear() from the rehash
472         routine; remove the no longer needed memory clearing and reloading
473         stuff from the rehash service routine
474
475         * ircd/motd.c: loads new API, including static internal functions
476         to do allocation/deallocation, etc.
477
478         * ircd/m_stats.c: use new motd_report() instead of
479         report_motd_list()
480
481         * ircd/m_motd.c: use new syntax for motd_send()
482
483         * ircd/ircd.c: use new motd_init() function
484
485         * ircd/Makefile.in (SRC): forgot to add motd.c to SRC in
486         Makefile.(in); also ran make depend
487
488         * include/motd.h: don't need config.h, but now do need time.h;
489         define new structures and constants; redefine old API and define
490         new functions
491
492 2000-11-22  Kevin L. Mitchell  <klmitch@mit.edu>
493
494         * ircd/s_user.c (register_user): use motd_signon() instead of
495         calling m_motd; much cleaner this way
496
497         * ircd/motd.c: write the new motd_* stuff to make MOTD handling
498         less of a crock
499
500         * ircd/m_motd.c: rewrite m{,s}_motd to call out to new motd_*
501         functions
502
503         * include/motd.h: define new MOTD API stuff
504
505 2000-11-20  Kevin L. Mitchell  <klmitch@mit.edu>
506
507         * ircd/ircd_reply.c (protocol_violation): rewrite
508         protocol_violation so it'll actually work
509
510         oh, yeah, use %s -> cptr->name, instead of %c -> cptr, so we get
511         the client's real name in there.
512
513         * ircd/m_motd.c (m_motd): Iso's addition of get_client_class(sptr)
514         resulted in core dumps if NODEFAULTMOTD is defined, because m_motd
515         gets called from register_user with a NULL sptr.  This is probably
516         a design problem, but this bandaid will do for now...
517
518 2000-11-19  Isomer <isomer@coders.net>
519         * ircd/ircd_reply.c: added 'protocol_violation', thus alerting us
520         to problems in the server<->server protocol.
521
522         * ircd/m_connect.c: allow remote connects with a port of '0'
523         meaning to use the port in the config file.
524
525         * ircd/m_create.c: Enable hacking protection, lets see how far we
526         get.
527
528         * ircd/m_error.c: The RFC says never accept ERROR from unreg'd
529         clients, so we don't any more.
530
531         * ircd/m_kill.c: The kill path is now made up of numnicks of servers,
532         and the user@host is displayed of the victim.
533
534         * ircd/m_map.c: reloaded 'dump_map'.
535
536         * ircd/m_trace.c: allow per class T:
537
538         * ircd/m_stats.c: allow local opers /remote stats anywhere on the 'net.
539
540 2000-11-17  Isomer <isomer@coders.net>
541
542         * ircd/m_topic.c: Fixed bug where we'd only send to clients topics
543         that were the *same* instead of different.  Oh the embarrasment!
544
545         * ircd/IPcheck.c: Merged net's fix.
546
547 2000-11-02  Kevin L. Mitchell  <klmitch@mit.edu>
548
549         * ircd/m_whois.c: remove compiler warning by adding a newline to
550         end of file
551
552         * ircd/m_names.c: moved the flags up to s_user.h
553
554         * ircd/m_join.c: call do_names instead of m_names; restructure
555         ms_join to never transmute a JOIN into a CREATE, but use the TS in
556         the JOIN (if present) to timestamp the channel
557
558         * ircd/channel.c: send JOINs individually, instead of grouping
559         them, so that we can send the channel's creation time
560
561         * include/s_user.h: declare do_names()
562
563 2000-10-30  Isomer <isomer@coders.net>
564         * ircd/m_oper.c: Fixed warning
565
566 2000-10-30  Isomer <isomer@coders.net>
567         * ircd/m_oper.c: Fixed over agressive cut and no paste
568
569 2000-10-30  Isomer <isomer@coders.net>
570
571         * ircd/m_topic.c: Restructured, fixed bug where topics on local
572         channels are propergated (I forget who pointed this out to me, but
573         thanks anyway).  Also to save bandwidth don't send the topic to
574         users if the topic is already the same on the server (but still
575         propergate to other servers).  X/W's "autotopic" feature must
576         chew a lot of bandwidth, hopefully this will help reduce this.
577
578         * doc/rfc1459.rfc: Updated documentation on /topic.
579
580         * ircd/listener.c: snotice warnings about failed accept()'s
581         potentially warning admins that they're running out of fd's.
582
583         * ircd/stats.c, ircd/class.c: Removed /stats v, added number of
584         people in a class in /stats y
585
586         * ircd/m_create.c: Checks for timewarp hacking and squit's
587         evil servers. (currently disabled)
588         
589
590 2000-10-30  net <simms@lucida.qc.ca>
591         
592         * ircd/gline.c: Fixed various bugs Isomer left behind.
593
594 2000-10-26  Kevin L. Mitchell  <klmitch@mit.edu>
595
596         * ircd/m_join.c (m_join): reply on attempt to join a BADCHANed
597         channel is now ERR_BANNEDFROMCHAN instead of ERR_BADCHANNAME
598
599 2000-10-24  Kevin L. Mitchell  <klmitch@mit.edu>
600
601         * ircd/channel.c: ok, now last mode rules; mode +ps will always
602         result in +s (and won't send a mode if the channel is already +s);
603         mode +sp will always result in +p; -n+n on a +n channel results in
604         no mode change; -n+n on a -n channel results in a +n mode change;
605         etc.
606
607 2000-10-23  Kevin L. Mitchell  <klmitch@mit.edu>
608
609         * ircd/channel.c: add "add" and "del" elements to ParseState to
610         avoid not-too-pretty -p+s when +s is sufficient; fix a bug in
611         mode_parse_limit that caused it to clear all channel modes
612         prematurely; restructure mode_parse_mode to avoid calling
613         modebuf_mode too early (ties in with first mentioned change);
614         better logic for +p/+s mutual exclusivity; initialize "add" and
615         "del" elements in mode_parse; send simple modes down to
616         modebuf_mode after the loop in mode_parse
617
618 2000-09-28  Greg Sikorski <gte@atomicrevs.demon.co.uk>
619         * ircd/m_names.c: Fixed a non-lethal logic error that 
620         triggers an assert() in find_member_link while debugging.
621         (Spotted by Maniac-).
622 2000-09-19  Thomas Helvey <helveytw@home.com>
623         * ircd/s_conf.c: move K:lines to their own list and data
624         structures, add supporting code.
625         * ircd/m_stats.c: cleanup stats processing a bit move
626         kline listing code to a new function, haven't figured
627         out where it goes yet tho'
628         * ircd/s_stats.c: added K:line bulk lister
629         * include/s_conf.h: added new DenyConf struct
630         * *[ch]: fixeup code that depended on changes
631
632 2000-09-17  Thomas Helvey <helveytw@home.com>
633         * ircd/class.c: encapsulate class list
634         * include/class.h: clean up classes
635         * * fixup code that depended on changes
636
637 2000-09-17  Thomas Helvey <helveytw@home.com>
638         * ircd/s_conf.c: add me to local conf
639         * include/s_conf.h: move CONF_ME macro to chkconf.c
640         * ircd/s_bsd.c: cleanup initialization, allow virtual host
641         to be changed by rehash
642
643 2000-09-17  Thomas Helvey <helveytw@home.com>
644         * include/class.h: add missing prototype
645         * ircd/class.c: make argument to get_conf_class const
646
647 2000-09-17  Thomas Helvey <helveytw@home.com>
648         * ircd/*.c: merged in changes from 2.10.10.pl12, cleanup
649         merge conflicts.
650         * ircd/*.h: merged in changes from 2.10.10.pl12, cleanup
651         merge conflicts
652
653 2000-09-16  Thomas Helvey <helveytw@home.com>
654         * ircd/s_conf.c: add code for server struct
655         * ircd/client.c: copy of class.c sort of, new file for client
656         specific operations, will move things here as appropriate,
657         currently only one function is exported from here.
658         * ircd/*.c: general logic cleanups, convert negatives to
659         positives in places.
660
661 2000-09-16  Thomas Helvey <helveytw@home.com>
662         * ircd/s_conf.c: add code for new crule data structs, strip quotes
663         * ircd/crule.c: clean up scary casting a bit, type safety stuff
664         * include/s_conf.h: add CRuleConf struct and support, remove
665         unused constants
666         * include/crule.h: type safety cleanups
667         * ircd/*.c: fixup code that depended on stuff I changed
668
669 2000-09-15  Thomas Helvey <helveytw@home.com>
670         * ircd/s_conf.c: start adding code for new conf data structs, changed
671         listeners, admin line, motd lines, class lines. Move validate_hostent
672         to resolver. General mayhem.
673         * include/s_conf.h: new data structs and accessors
674         * ircd/res.c: move validate_hostent here, rewrite, use regular
675         expression for validation.
676         * doc/example.conf: update docs for port
677
678 2000-09-14  Thomas Helvey <helveytw@home.com>
679         * ircd/s_conf.c (conf_init): rewrite conf file parser, start to break
680         up conf_init into managable chunks.
681         * ircd/listener.c (set_listener_mask): fix logic bug core dump.
682         * include/s_conf.h: add new data struct for local info (unwinding the mess).
683
684 2000-09-13  Thomas Helvey <helveytw@home.com>
685         * ircd/list.c: put Clients in free lists, pre-allocate MAXCONNECTIONS
686         local clients.
687         * ircd/list.c: put SLinks in free lists
688         * ircd/channel.c: put Memberships in free lists
689         * ircd/ircd.c: rearrange initializations a bit in main
690         Note: With these changes, ircd NEVER frees Clients, SLinks or
691         Memberships. It will also rarely need to allocate new
692         ones during net bursts and other disruptions. This should
693         cut down on memory fragmentation a bit as well.
694
695 2000-08-30  Kevin L. Mitchell  <klmitch@mit.edu>
696
697         * ircd/m_names.c (do_names): pull-up from do_names fix in
698         u2.10.10.pl11
699
700 2000-07-15  Perry Lorier       <Isomer@coders.net>
701         * various: IP only k:'s and G:'s now do bit tests instead of two(!) 
702                  match()'s.  Major Major cpu savings.  Also speed up the
703                  other case slightly.  As a side effect you can now
704                  k/Gline *@10.0.0.0/8.  I'll do bans tomorrow, it's nearing
705                  3am.
706
707 2000-07-15  Perry Lorier       <Isomer@coders.net>
708         * various: Fixed warnings after compiling on an alpha.
709 2000-07-09  Perry Lorier       <Isomer@coders.net>
710         * doc/ircd.8: Applied grammitical changes by Liandrin, applied
711                       changes suggested by various other people.
712         * ircd/IPcheck.c: More bug fixes.  Current problem appears to be
713                         that it gets a corrupt entry somehow.
714 2000-07-09  Greg Sikorski <gte@atomicrevs.demon.co.uk>
715         * ircd/m_oper.c: Clean up compiler warning.
716
717 2000-07-08  Perry Lorier       <Isomer@coders.net>
718         * doc/ircd.8: Updated the documentation, it was slightly out of date
719                       being updated around 1989.
720         * ircd/m_whois.c: Rewrote for clarity, and probably a bit more speed.
721                           fixed a few minor glitches.
722         * doc/rfc1459.unet: Updated.
723         * ircd/IPcheck.c: Fixed more bugs.
724         * ircd/s_bsd.c: We now keep track of servers we've conected.
725
726 2000-07-02  Perry Lorier       <Isomer@coders.net>
727         * ircd/s_misc.c: Fixed remote IPcheck bug.  Ok, I'm a moron, so sue
728                         me.  Thanks to Hektik, thanks thanks thanks thanks
729                         thanks thanks thanks thanks thank thanks thank thanks
730
731 2000-07-01  Perry Lorier       <Isomer@coders.net>
732         * ircd/s_conf.c: "Fixed" the "bug" where people would "evade" K:'s.
733         * ircd/s_conf.c, include/IPcheck.h: Fixed compile warnings.
734
735 2000-06-22  Perry Lorier       <Isomer@coders.net>
736         * ircd/IPcheck.c: Large chunks redone.
737         * ircd/s_conf.c: Changes due to IPcheck - ONE nolonger supported,
738                         single AND double digit limits are allowed now.
739         * misc other: Changes to IPcheck.
740
741 2000-06-30  Perry Lorier       <Isomer@coders.net>
742         * ircd/ircd.c: Fix command line parameter bugs.
743
744 2000-06-30  Perry Lorier       <Isomer@coders.net>
745         * ircd/m_kill.c: Fixed bug with LOCAL_KILL_ONLY
746         * ircd/m_nick.c: Tidied things up.
747
748 2000-06-12 Joseph Bongaarts <foxxe@trms.com>
749         * ircd/m_stats.c: Iso forgot mo_stats when he added /stats v
750         
751 2000-05-29  Perry Lorier       <Isomer@coders.net>
752         * ircd/m_stats.c: add /stats v to do only the last part of the /trace
753         * ircd/IPcheck.c: Cosmetic change, if we meddle with it enough do
754                         you think it'll get bored and fix itself?
755
756 2000-06-09  Greg Sikorski <gte@atomicrevs.demon.co.uk>
757
758         * ircd/m_names.c: Clean up compiler warnings.
759
760 2000-06-09  Kevin L. Mitchell  <klmitch@mit.edu>
761
762         * ircd/channel.c (mode_parse_client): don't send warning if
763         there's not enough arguments for a +/-o/v; means the habit of
764         doing "/mode #channel +oooooo bob" doesn't result in a bunch of
765         error messages
766
767 2000-06-04  Greg Sikorski <gte@atomicrevs.demon.co.uk>
768
769         * ircd/m_names.c: Re-factor code to remove unneccessary
770         GlobalChannelList iteration every time someone joins a channel.
771
772 2000-06-02  Kevin L. Mitchell  <klmitch@mit.edu>
773
774         * ircd/s_user.c: add struct Gline * argument to register_user;
775         look up global glines and repropagate them if necessary; send
776         acknowledgement of gline to remote servers when registering users
777
778         * ircd/s_serv.c (server_estab): don't send acknowledgement of
779         local glines to remote servers; do send gline acknowledgement of
780         bursted users
781
782         * ircd/m_user.c (m_user): pass new struct Gline * argument to
783         register_user
784
785         * ircd/m_pong.c: pass new struct Gline * argument to register_user
786
787         * ircd/m_nick.c (ms_nick): document protocol change
788
789         * ircd/gline.c: support GLINE_LASTMOD
790
791         * include/s_user.h: add struct Gline * argument to register_user
792
793         * include/gline.h: add GLINE_LASTMOD to look up non-zero lastmods
794
795         * ircd/s_conf.c (find_kill): add unsigned int argument to
796         gline_lookup()
797
798         * ircd/gline.c: add GLINE_GLOBAL to lookup or find only global
799         glines; add unsigned int argument to gline_lookup()
800
801         * include/gline.h: add GLINE_GLOBAL flag; add unsigned int
802         argument to gline_lookup()
803
804         * ircd/m_server.c: Resend jupe only when there is no %<lastmod>
805         parameter, or when it falls out of bounds: see comments prior to
806         call to jupe_resend(); call server_estab with struct Jupe
807         parameter, so that we place the appropriate %<lastmod> in the
808         appropriate place.
809
810         * ircd/s_serv.c (server_estab): send %<lastmod> for introduced
811         server, as well as for servers when we're sending the BURST
812
813         * include/s_serv.h: add a struct Jupe * to the arguments for
814         server_estab() so that we can send the appropriate lastmod
815         parameter
816
817         * ircd/m_gline.c (ms_gline): actually, this should be the
818         slightest bit more efficient...
819
820         * ircd/m_jupe.c (ms_jupe): actually, this should be the slightest
821         bit more efficient...
822
823         * ircd/m_gline.c (ms_gline): inhibit GLINE processing resends
824         during netburst
825
826         * ircd/m_jupe.c (ms_jupe): inhibit JUPE processing resends during
827         netburst
828
829         * ircd/channel.c (joinbuf_join): really remove user from local
830         channels
831
832 2000-05-29  Perry Lorier       <Isomer@coders.net>
833         * ircd/m_names.c: Removed redundant space. 
834         * ircd/s_bsd.c: Fixed incorrect syntax on ERROR line.
835
836 2000-05-18  Kevin L. Mitchell  <klmitch@mit.edu>
837
838         * ircd/m_burst.c (ms_burst): er...that should have been a ",", not
839         a " "
840
841 2000-05-04  Kevin L. Mitchell  <klmitch@mit.edu>
842
843         * ircd/channel.c: replace bogus assertions with returns, which is
844         logically correct; only wipe out limit/key if they were originally
845         set in the first place; remove user from channel when doing a
846         PARTALL; only send MODE +o for user CREATEing channel if user is
847         not MyUser--CREATE will only be used if the channel did not
848         originally exist, therefore we can assume no one local is on the
849         channel anyway, and we don't exactly need for the user to see an
850         explicit +o for themselves
851
852         * doc/readme.gline: describe the syntax of the GLINE command
853
854         * doc/readme.jupe: update to reflect a couple of changes to JUPE
855
856         * ircd/gline.c: don't propagate local changes
857
858         * ircd/jupe.c: don't propagate local changes
859
860         * ircd/m_gline.c (mo_gline): force local flag when deactivating
861         glines with 0 lastmod
862
863         * ircd/gline.c (gline_deactivate): G-lines with zero lastmod time
864         are now removed instead of being deactivated
865
866         * ircd/m_gline.c (ms_gline): make G-lines of the form "GLINE *
867         -<mask>" be accepted
868
869         * ircd/channel.c (send_channel_modes): deal with one of the last
870         vestiges of sendbuf
871
872         * ircd/m_burst.c (ms_burst): debugged ban processing; removed
873         debugging hooks
874
875         * ircd/channel.c (modebuf_extract): remove debugging
876         sendto_opmask_butone calls
877
878 2000-05-03  Kevin L. Mitchell  <klmitch@mit.edu>
879
880         * ircd/channel.c: support a couple of new flags to support using
881         mode_parse; fix some bugs with 0 struct ModeBuf *; implementation
882         of modebuf_extract to extract added flags for use by ms_burst
883
884         * include/channel.h: a couple of new flags to support using
885         mode_parse inside ms_burst
886
887         * ircd/m_burst.c (ms_burst): brand new implementation of BURST
888
889         * ircd/m_endburst.c: add loop to processing of end_of_burst to
890         free empty channels after the BURST is over.
891
892         * ircd/m_server.c: convert to use new send.c functions--I wanted
893         to rewrite it from scratch, but the logic's pretty complex; I may
894         still rewrite it, though...
895
896 2000-05-02  Thomas Helvey <tomh@inxpress.net>
897
898         * ircd/ircd.c: fix broken header include ordering
899
900 2000-05-02  Thomas Helvey <tomh@inxpress.net>
901         
902         * ircd/IPcheck.c: cleanups for ZenShadow's cleanups
903         review emailed privately
904
905         * include/IPcheck.h: removed unneeded include
906
907 2000-05-02  Kevin L. Mitchell  <klmitch@mit.edu>
908
909         * ircd/s_user.c (hunt_server): throw in a comment so I know what
910         the sendto_one is for
911
912         * include/querycmds.h (Count_unknownbecomesclient): convert to
913         sendto_opmask_butone
914
915         * ircd/send.c: start removing dead code
916
917         * include/send.h: start removing dead code
918
919         * ircd/m_rping.c: convert to sendcmdto_one / send_reply /
920         hunt_server_cmd
921
922         * ircd/m_rpong.c: convert to sendcmdto_one / send_reply
923
924 2000-05-01  Kevin L. Mitchell  <klmitch@mit.edu>
925
926         * ircd/m_stats.c: convert to sendcmdto_one / send_reply
927
928         * ircd/m_kick.c: Completely reimplement m_kick
929
930         * ircd/channel.c: send_user_joins removed; it was dead code,
931         anyway...
932
933 2000-05-01  Perry Lorier <isomer@coders.net>
934         * ircd/m_invite.c: Fix for the rest of m_invite.c, and again.
935         * ircd/channels.c: My fix for the part problem.  Untested, probably
936                 won't work.  Can't be much worse than the current problem.
937                 it'll either work or core, take your pick.
938
939
940 2000-04-30  Perry Lorier <isomer@coders.net>
941         * config/config-sh.in: Fix for CONNEXIT
942         * ircd/s_{user,misc}.c: Fix for CONNEXIT
943         * ircd/m_invite.c: Fix for incorrectly numnickified invite.
944                         (Kev: Want to come talk to me about this?)
945
946 2000-04-30  Steven M. Doyle <steven@doyle.net>
947         * ircd/ircd.c
948           - general cleanups and readability enhancements
949           - rewrite of setuid/chroot code.
950           - server will no longer run as root
951           - -DPROFIL compile option removed
952           - Fixed IPcheck API calls
953  
954         * config/config-sh.in
955           - Fixed up chroot compile options
956           - Added options for debug and profile compiles
957  
958         * config/gen.ircd.Makefile
959           - Support for new debug/profile options
960  
961         * ircd/Makefile.in
962           - Support for new debug/profile options
963  
964         * ircd/ircd_signal.c
965           - Removed -DPROFIL
966
967         * include/IPcheck.h
968           - Removed old API prototypes, added new ones
969         
970         * ircd/IPcheck.c
971           - Readability cleanups (well, I -think-...)
972           - Changed IPRegistryEntry.last_connect to a time_t.  The previously
973             used unsigned short was probably causing interesting things after
974             a client had been connected longer than about 65,535 seconds...
975           - Removed old API functions.
976
977         * ircd/whocmds.c
978           - Removed IPcheck.h include
979         
980         * Additionally modified IPcheck API calls in:
981           - ircd/m_nick.c
982           - ircd/m_auth.c
983           - ircd/s_bsd.c
984           - ircd/s_conf.c
985           - ircd/s_misc.c
986           - ircd/s_serv.c
987           - ircd/s_user.c
988         
989         
990 2000-04-30  Perry Lorier <isomer@coders.net>
991         * ircd/s_bsd.c: Sigh. :)
992         * ircd/m_mode.c: fix for modeless channels by poptix.
993
994 2000-04-29  Kevin L. Mitchell  <klmitch@mit.edu>
995
996         * ircd/m_join.c: reimplement JOIN in terms of struct JoinBuf
997
998         * ircd/channel.c (clean_channelname): make clean_channelname also
999         truncate long channel names
1000
1001 2000-04-28  Kevin L. Mitchell  <klmitch@mit.edu>
1002
1003         * ircd/m_create.c: reimplement CREATE in terms of struct JoinBuf
1004
1005         * ircd/channel.c: implemented joinbuf_init, joinbuf_join,
1006         joinbuf_flush
1007
1008         * include/channel.h: definitions and declarations for the struct
1009         JoinBuf abstraction
1010
1011 2000-04-29  Perry Lorier <isomer@coders.net>
1012         * ircd/s_bsd.c: Ok, so I thought I compiled and tested this...
1013
1014 2000-04-29  Perry Lorier <isomer@coders.net>
1015         * ircd/s_bsd.c: Add debugging code to IPcheck
1016
1017 2000-04-28  Kevin L. Mitchell  <klmitch@mit.edu>
1018
1019         * include/ircd_reply.h (SND_EXPLICIT): use instead of RPL_EXPLICIT
1020
1021         * ircd/ircd_reply.c (send_reply): use SND_EXPLICIT instead of
1022         RPL_EXPLICIT
1023
1024         * ircd/m_userhost.c (m_userhost): add a dead code comment
1025
1026         * ircd/m_desynch.c: forgot one...
1027
1028         * ircd/m_rehash.c (mo_rehash): er, duplicates :)
1029
1030         * ircd/m_proto.c (proto_send_supported): just change a comment so
1031         it doesn't show up in my scans
1032
1033         * ircd/ircd_reply.c (send_reply): fix a slight bug...
1034
1035         * ircd/s_numeric.c (do_numeric): use new sendcmdto_* functions,
1036         kinda hackish...
1037
1038         * ircd/parse.c (parse_server): argument wrangling to make
1039         processing in do_numeric a little easier to deal with
1040
1041         * ircd/s_serv.c (server_estab): SERVER should come from
1042         acptr->serv->up, not &me
1043
1044         * ircd/m_lusers.c: accidentally left out sptr for a %C
1045
1046         * ircd/send.c: hack to support doing wallchops...
1047
1048         * ircd/m_whowas.c: convert to new send functions
1049
1050         * ircd/m_whois.c: convert to new send functions
1051
1052         * ircd/m_who.c: convert to new send functions
1053
1054         * ircd/m_wallops.c: convert to new send functions
1055
1056         * ircd/m_wallchops.c: convert to new send functions
1057
1058         * ircd/m_version.c: convert to new send functions
1059
1060         * ircd/m_userip.c: convert to new send functions
1061
1062         * ircd/m_userhost.c: convert to new send functions
1063
1064         * ircd/m_uping.c: convert to new send functions
1065
1066         * ircd/m_trace.c: convert to new send functions
1067
1068         * ircd/m_topic.c: convert to new send functions
1069
1070         * ircd/m_time.c: convert to new send functions
1071
1072         * ircd/m_squit.c: convert to new send functions
1073
1074         * ircd/m_silence.c: convert to new send functions
1075
1076         * ircd/m_settime.c: convert to new send functions
1077
1078         * ircd/m_restart.c: convert to new send functions
1079
1080         * ircd/m_rehash.c: convert to new send functions
1081
1082         * ircd/m_privmsg.c: convert to new send functions
1083
1084         * ircd/m_pong.c: convert to new send functions
1085
1086         * ircd/m_ping.c: convert to new send functions
1087
1088         * ircd/m_pass.c: convert to new send functions
1089
1090         * ircd/m_opmode.c: convert to new send functions
1091
1092         * ircd/m_oper.c: convert to new send functions
1093
1094         * ircd/m_notice.c: convert to new send functions
1095
1096         * ircd/m_nick.c: convert to new send functions
1097
1098         * ircd/m_names.c: convert to new send functions
1099
1100         * ircd/m_motd.c: convert to new send functions
1101
1102         * ircd/m_mode.c: convert to new send functions
1103
1104         * ircd/m_map.c: convert to new send functions
1105
1106         * ircd/m_lusers.c: convert to new send functions
1107
1108         * ircd/m_list.c: convert to new send functions
1109
1110         * ircd/m_links.c: convert to new send functions
1111
1112         * ircd/m_kill.c: convert to new send functions
1113
1114         * ircd/m_jupe.c: convert to new send functions
1115
1116         * ircd/m_invite.c: convert to new send functions
1117
1118         * ircd/m_info.c: convert to new send functions
1119
1120         * ircd/m_help.c: convert to new send functions
1121
1122         * ircd/m_gline.c: convert to new send functions
1123
1124         * ircd/m_error.c: convert to new send functions
1125
1126         * ircd/m_endburst.c: convert to new send functions
1127
1128         * ircd/m_die.c: convert to new send functions
1129
1130         * ircd/m_destruct.c: convert to new send functions
1131
1132         * ircd/m_defaults.c: convert to new send functions
1133
1134         * ircd/m_connect.c: convert to new send functions
1135
1136 2000-04-28  Perry Lorier <isomer@coders.net>
1137         * RELEASE.NOTES: Describe a few more undocumented features.
1138         * config/config-sh.in: change the default paths for logging
1139         and the recommended number of channels.
1140         * include/supported.h: Rearrange slightly, added CHANTYPE's
1141
1142 2000-04-27  Kevin L. Mitchell  <klmitch@mit.edu>
1143
1144         * ircd/m_close.c: convert to send_reply
1145
1146         * ircd/m_clearmode.c: convert to send_reply, sendcmdto_serv_butone
1147
1148         * ircd/m_away.c: convert to send_reply and sendcmdto_serv_butone
1149
1150         * ircd/m_admin.c: convert to send_reply and hunt_server_cmd
1151
1152         * ircd/s_user.c (hunt_server_cmd): new hunt_server replacement
1153         that takes cmd and tok arguments, etc.  NOTE: THIS IMPLEMENTATION
1154         HAS A MAJOR HACK!!!  The whole hunt_server architecture should be
1155         carefully rethought...
1156
1157         * ircd/s_stats.c (hunt_stats): use new hunt_server_cmd
1158
1159         * include/s_user.h: hunt_server_cmd -- replacement for hunt_server
1160
1161         * ircd/s_misc.c: *sigh* 2.10.10 doesn't support squitting by
1162         numeric nick; therefore, we have to use the server name
1163
1164         * ircd/m_squit.c (ms_squit): allow to squit by server numeric nick
1165
1166         * ircd/send.c: fix minor bugs
1167
1168         * ircd/s_user.c (check_target_limit): mark dead code so I filter
1169         it when I grep
1170
1171         * ircd/s_serv.c (exit_new_server): mark dead code so I filter it
1172         when I grep
1173
1174         * ircd/parse.c: mark dead code so I filter it when I grep
1175
1176         * ircd/map.c: mark dead code so I filter it when I grep
1177
1178         * ircd/ircd.c: mark dead code so I filter it when I grep
1179
1180         * ircd/ircd_relay.c: convert over to new sendcmdto_*, send_reply
1181         functions
1182
1183         * ircd/channel.c: mark dead code so I filter it when I grep
1184
1185         * ircd/s_stats.c: use send_reply instead of sendto_one w/rpl_str;
1186         hope I'm not stepping on toes...
1187
1188         * ircd/s_conf.c: more sendto_opmask_butone / send_reply
1189         conversions; use ircd_snprintf in a couple of cases to negate the
1190         possibility of buffer overflow
1191
1192 2000-04-26  Kevin L. Mitchell  <klmitch@mit.edu>
1193
1194         * ircd/channel.c: convert as much as possible to new send
1195         semantics
1196
1197         * ircd/send.c (sendcmdto_common_channels): fix a subtle bug --
1198         test member->user->from->fd, not from->fd
1199
1200         * ircd/gline.c (gline_add): go ahead and add badchans; we just
1201         won't look for them in m_gline; this way, they always work...
1202
1203         * ircd/jupe.c: use ircd_vsnprintf conversion specifiers
1204
1205         * ircd/gline.c: since write_log now uses ircd_vsnprintf, use
1206         ircd_vsnprintf conversion specifiers
1207
1208         * ircd/support.c (write_log): use ircd_vsnprintf for write_log, so
1209         I have my conversion specifiers
1210
1211         * ircd/gline.c (do_gline): use send_reply for ERR_YOUREBANNEDCREEP
1212
1213         * ircd/send.c (sendcmdto_flag_butone): explicitly send WALLOPS to
1214         local users
1215
1216         * ircd/s_serv.c (exit_new_server): rewrite exit_new_server to be a
1217         little less brain-dead
1218
1219         * ircd/s_misc.c: use sendcmdto_one, sendrawto_one, and send_reply
1220
1221         * ircd/s_debug.c: use send_reply with RPL_EXPLICIT for
1222         RPL_STATSDEBUG
1223
1224         * ircd/res.c (cres_mem): use send_reply with RPL_EXPLICIT for
1225         RPL_STATSDEBUG
1226
1227         * ircd/list.c (send_listinfo): use send_reply with RPL_EXPLICIT
1228         for RPL_STATSDEBUG
1229
1230         * ircd/m_pong.c: use RPL_EXPLICIT for ERR_BADPING
1231
1232         * ircd/ircd.c: use RPL_EXPLICIT for ERR_BADPING
1233
1234         * ircd/s_user.c (register_user): use RPL_EXPLICIT for
1235         ERR_INVALIDUSERNAME
1236
1237         * ircd/ircd_reply.c (send_reply): support RPL_EXPLICIT
1238
1239         * include/ircd_reply.h (RPL_EXPLICIT): somewhat of a hack to mark
1240         a numeric as needing to use an explicit pattern, which will be the
1241         first argument in the variable argument list
1242
1243         * ircd/s_user.c: use sendrawto_one instead of sendto_one to send
1244         non-prefixed nospoof PING
1245
1246         * ircd/s_bsd.c: use sendrawto_one instead of sendto_one to send
1247         non-prefixed SERVER login
1248
1249         * ircd/ircd.c (check_pings): fix last sendto_one calls (except for
1250         a numeric usage further up)
1251
1252         * include/send.h: declare sendrawto_one
1253
1254         * ircd/send.c (sendrawto_one): new function to use ONLY for
1255         non-prefixed commands, like PING to client, or PASS/SERVER on
1256         server registration
1257
1258 2000-04-25  Kevin L. Mitchell  <klmitch@mit.edu>
1259
1260         * ircd/ircd_snprintf.c (doprintf): implement %H for possible
1261         future expansion (channel numerics?)
1262
1263         * include/ircd_snprintf.h: added documentation to # to explain use
1264         with %C; added documentation for : to explain use with %C; added
1265         documentation for %H for channels
1266
1267         * ircd/whocmds.c: use send_reply
1268
1269         * ircd/userload.c: use sendcmdto_one
1270
1271         * ircd/uping.c: use sendcmdto_one
1272
1273         * ircd/send.c: use new flags to %C format string; ':' prefixes
1274         client name with a colon for local connects, '#' uses
1275         nick!user@host form for local connects
1276
1277         * ircd/s_user.c: use send_reply, sendto_opmask_butone,
1278         sendcmdto_one, sendcmdto_serv_butone, sendcmdto_flag_butone
1279
1280         * ircd/s_serv.c: use sendcmdto_one, sendto_opmask_butone
1281
1282         * ircd/s_bsd.c: use sendto_opmask_butone, send_reply,
1283         sendcmdto_one
1284
1285         * ircd/s_auth.c: use sendto_opmask_butone
1286
1287         * ircd/res.c: use sendcmdto_one
1288
1289         * ircd/ircd_snprintf.c (doprintf): minor bug fixes and some
1290         debugging assertions
1291
1292 2000-04-24  Kevin L. Mitchell  <klmitch@mit.edu>
1293
1294         * ircd/support.c: dumpcore is no longer used, so get rid of it
1295
1296         * ircd/parse.c: use send_reply, sendcmdto_one
1297
1298         * ircd/map.c: use send_reply
1299
1300         * ircd/listener.c: use send_reply
1301
1302         * ircd/jupe.c: use sendto_opmask_butone, send_reply
1303
1304         * ircd/ircd_reply.c: use send_reply
1305
1306         * ircd/ircd.c: use sendto_opmask_butone
1307
1308         * ircd/gline.c: use sendto_opmask_butone, send_reply
1309
1310         * ircd/ircd_snprintf.c (doprintf): make it deal with incompletely
1311         registered clients; make FLAG_ALT print nick!user@host; make
1312         FLAG_COLON print :blah
1313
1314         * ircd/class.c (report_classes): use send_reply instead of
1315         sendto_one
1316
1317         * ircd/hash.c (m_hash): replace sendto_one with sendcmdto_one
1318
1319         * ircd/IPcheck.c (ip_registry_connect_succeeded): replace
1320         sendto_one with sendcmdto_one
1321
1322 2000-04-21  Kevin L. Mitchell  <klmitch@mit.edu>
1323
1324         * ircd/send.c: clean up logic in sendcmdto_channel_butone; use
1325         MyConnect() instead of IsServer() in sendcmdto_flag_butone; define
1326         sendcmdto_match_butone
1327
1328         * include/send.h: declare sendcmdto_match_butone
1329
1330 2000-04-20  Kevin L. Mitchell  <klmitch@mit.edu>
1331
1332         * ircd/jupe.c: update to use send_reply()
1333
1334         * ircd/gline.c: update to use send_reply()
1335
1336         * include/ircd_reply.h: declare send_reply
1337
1338         * ircd/ircd_reply.c (send_reply): send_error_to_client, but for
1339         replies; uses ircd_snprintf
1340
1341         * ircd/send.c: added comments to redirect searchers to appropriate
1342         sendcmdto_* function; moved new functions to end of file; added
1343         explanatory comments; reordered arguments; defined new functions
1344         mentioned below
1345
1346         * ircd/m_jupe.c: reorder arguments to sendcmdto_* functions
1347
1348         * ircd/m_gline.c: reorder arguments to sendcmdto_* functions
1349
1350         * ircd/jupe.c: reorder arguments to sendcmdto_* functions
1351
1352         * ircd/gline.c: reorder arguments to sendcmdto_* functions
1353
1354         * include/send.h: reorder arguments, add explanatory comments,
1355         declare new functions sendcmdto_flag_butone, sendto_opmask_butone,
1356         and vsendto_opmask_butone
1357
1358 2000-04-19  Kevin L. Mitchell  <klmitch@mit.edu>
1359
1360         * ircd/send.c: define sendcmdto_channel_butone, wrote a simplified
1361         vsendto_op_mask that uses '*' instead of the receiving client
1362         nickname
1363
1364         * include/send.h: declare sendcmdto_channel_butone; takes a skip
1365         argument that allows you to skip (or not to skip) deaf users,
1366         users behind bursting servers, and non channel operators
1367
1368 2000-04-17  Kevin L. Mitchell  <klmitch@mit.edu>
1369
1370         * ircd/send.c: new sendcmdto_channel_butserv -- note that old
1371         sendto_channel_butserv has a subtle bug; also wrote
1372         sendcmdto_common_channels.
1373
1374         * include/send.h: declare new sendcmdto_* functions
1375
1376         * ircd/jupe.c: support local deactivations of jupes
1377
1378         * ircd/gline.c: support local deactivations of glines
1379
1380         * include/jupe.h: JUPE_LDEACT allows jupes to be locally
1381         deactivated; if they aren't locally deactivated, then it slaves to
1382         the net-wide activation status; JupeIsRemActive() tests only
1383         whether the jupe is active everywhere else
1384
1385         * include/gline.h: GLINE_LDEACT allows glines to be locally
1386         deactivated; if they aren't locally deactivated, then it slaves to
1387         the net-wide activation status; GlineIsRemActive() tests only
1388         whether the gline is active everywhere else
1389
1390         * ircd/gline.c: detect overlapping G-lines; if an existing, wider
1391         gline expires after the new one will, we drop the new one,
1392         otherwise we add the G-line after that one (so the wide one will
1393         apply first); if the new one contains an existing G-line and if it
1394         will expire after the existing one, we drop the existing one to
1395         save memory
1396
1397         * ircd/m_gline.c (mo_gline): opers could issue remote local
1398         glines when CONFIG_OPERCMDS was off; fixed
1399
1400 2000-04-16  Kevin L. Mitchell  <klmitch@mit.edu>
1401
1402         * ircd/m_jupe.c (mo_jupe): allow target argument to be dropped if
1403         this is a local JUPE
1404
1405         * ircd/gline.c: add flags argument to gline_activate and
1406         gline_deactivate for future expansion
1407
1408         * ircd/m_gline.c: pass flags to gline_activate and
1409         gline_deactivate
1410
1411         * include/gline.h: add flags argument to gline_activate and
1412         gline_deactivate
1413
1414         * ircd/jupe.c: add flags argument to jupe_activate and
1415         jupe_deactivate for future expansion
1416
1417         * include/jupe.h: add flags argument to jupe_activate and
1418         jupe_deactivate
1419
1420         * ircd/m_jupe.c: pass a flags argument to jupe_add instead of
1421         local, active; pass flags to jupe_activate and jupe_deactivate
1422
1423         * include/gline.h: remove dead code
1424
1425         * ircd/gline.c: make gline expire times relative to CurrentTime,
1426         since that should be monotonically increasing, instead of
1427         TStime(), which can be set backwards, and which can therefore
1428         cause an expire time to increase; make local glines be removed
1429         instead of just deactivated; don't let gline_find() look for
1430         user@host glines if the mask being looked up is a channel mask
1431
1432         * ircd/send.c (vsendcmdto_one): forgot to account for the case
1433         where origin is a server and destination is a user
1434
1435         * ircd/jupe.c: make jupe expire times relative to CurrentTime,
1436         since that should be monotonically increasing, instead of
1437         TStime(), which can be set backwards, and which can therefore
1438         cause an expire time to increase; make local jupes be removed
1439         instead of just deactivated
1440
1441         * ircd/ircd_snprintf.c: d'oh, thanks for catching that; short for
1442         limit is fine.  any other warnings I should know about?
1443
1444 2000-04-15  Thomas Helvey <tomh@inxpress.net>
1445
1446         * ircd/*.c: const correctness and type safety cleanups to
1447         get code to compile with C++ compiler. Still has
1448         signed/unsigned comparison warnings.
1449
1450 2000-04-15  Greg Sikorski <gte@atomicrevs.demon.co.uk>
1451
1452         * ircd/userload.c: change <sys/time.h> include to <time.h> for
1453           portability.
1454
1455 2000-04-14  Kevin L. Mitchell  <klmitch@mit.edu>
1456
1457         * ircd/m_gline.c (mo_gline): d'oh, target isn't a numeric; use %C
1458         and convert acptr...
1459
1460         * ircd/s_user.c: move gline_lookup function call into
1461         register_user, where it'll have a username to lookup!
1462
1463         * ircd/m_gline.c: modify to utilize new sendcmdto_* series of
1464         functions; also stuff send_error_to_client into return clauses
1465
1466         * ircd/m_jupe.c: modify to utilize new sendcmdto_* series of
1467         functions; also use send_error_to_client where that makes sense
1468
1469         * ircd/jupe.c: modify to utilize new sendcmdto_* series of
1470         functions; also use send_error_to_client where that makes sense
1471
1472         * ircd/gline.c: modify to utilize new sendcmdto_* series of
1473         functions; also fix gline_lookup() to deal properly with remote
1474         clients--boy, do struct Client and struct User need to be cleaned
1475         up!
1476
1477         * ircd/ircd_snprintf.c (doprintf): a dest of &me is a server,
1478         too...
1479
1480         * ircd/send.c: wrote sendcmdto_one(), vsendcmdto_one(), and
1481         sendcmdto_serv_butone(), all utilizing the %v conversion of
1482         ircd_snprintf()
1483
1484         * include/send.h: define IRC_BUFSIZE, max size of a message;
1485         declare sendcmdto_one(), vsendcmdto_one(), and
1486         sendcmdto_serv_butone()
1487
1488         * include/msg.h: define all the CMD_* constants needed to utilize
1489         the new sendcmdto_* series of functions
1490
1491         * ircd/Makefile.in (SRC): list ircd_snprintf.c; run make depend
1492
1493         * ircd/gline.c: remove old, dead code.
1494
1495         * ircd/m_gline.c (mo_gline): disallow setting of global G-lines
1496         unless CONFIG_OPERCMDS is enabled; disallow listing of all G-lines
1497         (don't advertise proxies); remove dead code
1498
1499         * ircd/parse.c: oper handler for JUPE only lists jupes unless
1500         CONFIG_OPERCMDS is enabled
1501
1502         * ircd/m_jupe.c (mo_jupe): don't compile mo_jupe() if
1503         CONFIG_OPERCMDS is not enabled; we'll disable it in parse.c
1504
1505         * ircd/m_opmode.c (mo_opmode): if CONFIG_OPERCMDS is not enabled,
1506         always return ERR_DISABLED
1507
1508         * ircd/m_clearmode.c (mo_clearmode): if CONFIG_OPERCMDS is not
1509         enabled, always return ERR_DISABLED
1510
1511         * ircd/s_err.c: add error message to indicate disabled commands
1512
1513         * include/numeric.h (ERR_DISABLED): to indicate disabled commands
1514
1515         * doc/Configure.help: add documentation for CONFIG_OPERCMDS
1516
1517         * config/config-sh.in: add CONFIG_OPERCMDS, default both it and
1518         CONFIG_NEW_MODE to 'y' for now
1519
1520         * ircd/gline.c (gline_list): fix a minor formatting bogon
1521
1522         * BUGS: since I fixed that bug, might as well mark it fixed.
1523
1524         * ircd/m_join.c: look up badchans with GLINE_EXACT
1525
1526         * ircd/m_gline.c: fix parc count problems; look up existing
1527         G-lines with GLINE_EXACT; only set new lastmod when
1528         activating/deactivating existing glines if old lastmod was not 0
1529
1530         * ircd/gline.c: forgot to copy the gline reason over; don't
1531         propagate a gline with 0 lastmod if origin is user; add
1532         GLINE_EXACT to force exact matching of gline mask
1533
1534         * ircd/ircd_snprintf.c (doprintf): forgot to deal with the zero
1535         flag properly
1536
1537         * ircd/s_conf.c (find_kill): gline_find() takes a char *userhost,
1538         but gline_lookup() actually takes a client--d'oh.
1539
1540 2000-04-13  Thomas Helvey <tomh@inxpress.net>
1541         * ircd/IPcheck.c: Back port BLMet's bugfix from 2.10.10
1542
1543 2000-04-13  Greg Sikorski <gte@atomicrevs.demon.co.uk>
1544
1545         * ircd/whocmds.c: Don't make idle flag default in /who, to prevent:
1546           "/who * x"
1547           "Gte3 H*iwg Gte@212.49.240.217 :1 :0 I am the one that was."
1548           (Found by Plexus).
1549
1550         * ircd/whocmds.c: Change idle time calc from socket idle to user
1551           idle.
1552
1553 2000-04-13  Kevin L. Mitchell  <klmitch@mit.edu>
1554
1555         * config/aclocal.m4 (unet_CHECK_TYPE_SIZES): check size of void *,
1556         too, for ircd_snprintf.c
1557
1558         * include/ircd_snprintf.h: documentation for ircd_(v)snprintf, in
1559         comments; mostly descended from the Linux manpage for printf, but
1560         also documenting the extensions.
1561
1562         * ircd/ircd_snprintf.c: NULL dest is equivalent to going to a
1563         client; make 'q' be the same as 'L'; remove __inline__; only
1564         define EXTENSION if HAVE_LONG_LONG is defined
1565
1566         * include/handlers.h: declare m_gline()
1567
1568         * ircd/parse.c: gline can be called by users, but it only lists
1569         the glines.
1570
1571         * ircd/s_user.c (set_nick_name): resend gline if a remote server
1572         introduces a glined client
1573
1574         * ircd/s_serv.c (server_estab): burst glines, too
1575
1576         * ircd/gline.c: fix up all the expire times to be offsets;
1577         simplify gline_resend()
1578
1579         * ircd/m_gline.c: begin coding replacements for ms_gline(),
1580         mo_gline(), and m_gline()
1581
1582         * ircd/gline.c (gline_add): allow *@#channel to work correctly;
1583         also, prohibit local BADCHANs if LOCAL_BADCHAN not defined
1584
1585 2000-04-13  Greg Sikorski <gte@atomicrevs.demon.co.uk>
1586
1587         * tools/Bouncer/*: Add comments/documentation/tags.
1588         * tools/Bouncer/*: Add debug defines, make task fork().
1589
1590 2000-04-12  Thomas Helvey <tomh@inxpress.net>
1591         * ircd/s_err.c: Cleanup s_err.c make one table so we
1592         don't have to do anything tricky to get an error string.
1593
1594 2000-04-12  Greg Sikorski <gte@atomicrevs.demon.co.uk>
1595         * Add port bouncer for http (x/w)
1596
1597 2000-04-12  Kevin L. Mitchell  <klmitch@mit.edu>
1598
1599         * ircd/s_conf.c (find_kill): replaced call to find_gline() with a
1600         call to gline_find(); also used GlineReason() instead of direct
1601         reference to structure member
1602
1603         * ircd/m_join.c (m_join): replace bad_channel() calls with calls
1604         to gline_find(name, GLINE_BADCHAN), and also check to see if gline
1605         is active
1606
1607         * ircd/channel.c: nothing seems to be called anywhere...
1608
1609         * ircd/s_err.c: update a couple of replies to dovetail with new
1610         semantics
1611
1612         * ircd/gline.c: begin complete re-implementation of gline.c along
1613         the lines of the final design of jupe.c
1614
1615         * include/gline.h: begin complete re-implementation of gline.c
1616         along the lines of the final design of jupe.c
1617
1618         * ircd/channel.c (mode_process_clients): fix "Deop of +k user on
1619         %s by %s" message...
1620
1621         * ircd/ircd_snprintf.c: my new snprintf()-like functions
1622
1623         * include/ircd_snprintf.h: my new snprintf()-like functions
1624
1625 2000-04-11  Thomas Helvey <tomh@inxpress.net>
1626         * ircd/IPcheck.c: removed old dead code
1627         * ircd/s_user.c (send_user_info): removed non-standard
1628           user not found message for userhost/userip
1629
1630 2000-04-11  Greg Sikorski <gte@atomicrevs.demon.co.uk>
1631
1632         * ircd/s_err.c: Added missing quotes to ERR_DONTCHEAT numeric.
1633         * doc/p10.html: Work on chapter 4.
1634
1635 2000-04-10  Kevin L. Mitchell  <klmitch@mit.edu>
1636
1637         * ircd/channel.c (mode_parse_client): fix coredump on /mode
1638         #foobar +o nosuchnick
1639
1640 2000-04-10  Perry Lorier  <Isomer@coders.net>
1641         * BUGS: Added bug.
1642
1643 2000-04-09  Thomas Helvey <tomh@inxpress.net>
1644         * include/IPcheck.h: fix prototype
1645         * ircd/s_user.c: fix usage of IPcheck_remote_connect
1646         * ircd/IPcheck.c: removed unused args
1647
1648 2000-04-09  Thomas Helvey <tomh@inxpress.net>
1649         * include/IPcheck.h: add proto for IPcheck_expire
1650
1651         * ircd/IPcheck.c: Rewrote
1652
1653         * ircd/ircd.c: Add IPcheck_expire to main message loop
1654
1655         * ircd/s_user.c: Redo target hashing, refactor target code
1656
1657         * include/numeric.h: Cleaned up numerics, added which ones are
1658         in use by other networks and what they are in use for.
1659
1660         * ircd/channel.c: cleaned can_join(), allow anyone through anything
1661         if /invited, simplified the function.  Opers overusing OPEROVERRIDE
1662         will get a message explaining to them not to cheat.
1663
1664         * ircd/m_join.c: cleaned up the various join functions, should be
1665         a lot more efficient.  Still needs work.  Now assumes that s<->s
1666         won't send it a JOIN 0.  Service coders - note this and tread with
1667         care.
1668
1669         * ircd/m_stats.c: added Gte-'s stats doc patch.
1670
1671         * ircd/m_version.c: /version now returns the 005 numeric as well.
1672         as requested by Liandrin.
1673
1674
1675 2000-04-07  Kevin L. Mitchell  <klmitch@mit.edu>
1676
1677         * ircd/m_clearmode.c: add include for support.h for write_log()
1678
1679         * configure: move ircd/crypt/* to tools/*
1680
1681 2000-04-06  Thomas Helvey <tomh@inxpress.net>
1682         * ircd/s_auth.c: Shorten auth connect timeout to 60 seconds
1683           set client host to server alias if connection from localhost
1684
1685 2000-04-06  Perry Lorier <isomer@coders.net>
1686         * ircd/ircd.c: Fix core during pinging (oops)
1687         
1688 2000-04-06  Perry Lorier <isomer@coders.net>
1689         * ircd/send.c: fixed wrong ident being sent to channels bug.
1690         * include/numerics.h: Updated some of the numerics from other
1691         networks.  Flagged some as 'unused' by undernet.
1692
1693 2000-03-30  Perry Lorier <isomer@coders.net>
1694         * ircd/ircd.c: Lets see if this helps the ping problem at all.
1695         * ircd/whocmds.c, /doc/readme.who: Added %l specifier to get idle
1696         time for local clients. (as requested), extended who now returns all
1697         the flags (@+!) so you can tell the complete state of a client.
1698
1699 2000-03-30  Thomas Helvey <tomh@inxpress.net>
1700         * m_rping.c m_rpong.c: add Gte's rping/rpong fixes
1701
1702 2000-03-30  Perry Lorier <isomer@coders.net>
1703         * ircd/parse.c: oops, missed opers.
1704
1705 2000-03-30  Perry Lorier <isomer@coders.net>
1706         * ircd/parse.c: fixed mystifying ping bug thats been plaguing us
1707         for so long.  Remember: m_ping MUST be in the parse array. :)
1708
1709 2000-03-30  Perry Lorier <isomer@coders.net>
1710         * ircd/ircd.c: test in check_pings was wrong.  I move that we
1711         disallow cvs commit after 10pm localtime....
1712
1713 2000-03-30  Perry Lorier <isomer@coders.net>
1714         * ircd/m_pong.c: Fix it for servers too.
1715
1716 2000-03-30  Perry Lorier <isomer@coders.net>
1717         * ircd/m_pong.c: Fix ping timeout bugs
1718
1719 2000-03-30  Perry Lorier <isomer@coders.net>
1720         * ircd/channel.c: Bans had CurrentTime in their when field instead
1721         of TStime()
1722
1723 2000-03-31  Thomas Helvey <tomh@ixpress.net>
1724         * ircd/numnicks.c (SetXYYCapacity): fix for extended
1725         numerics.
1726
1727 2000-03-30  Perry Lorier <isomer@coders.net>
1728         * ircd/m_nick.c: send kills both ways so when we add nick change
1729         on collision we don't desync the network.
1730
1731         * ircd/map.c: Fixup the map a bit more.
1732
1733 2000-03-31  Kevin L. Mitchell  <klmitch@mit.edu>
1734
1735         * ircd/m_clearmode.c (do_clearmode): Log the CLEARMODE to OPATH
1736
1737         * ircd/m_opmode.c: Log the mode changes to OPATH
1738
1739         * ircd/channel.c (modebuf_flush_int): Log the mode changes to
1740         OPATH
1741
1742         * include/channel.h (MODEBUF_DEST_LOG): Log the mode changes to
1743         OPATH
1744
1745         * doc/Configure.help: help text for CONFIG_LOG_OPMODE / OPATH
1746
1747         * config/config-sh.in: added OPATH for opmode log file
1748
1749         * ircd/m_clearmode.c (do_clearmode): updated uses of
1750         modebuf_mode_string() for the new usage
1751
1752         * ircd/channel.c: added flag MODE_FREE and an int argument to
1753         modebuf_mode_string() to indicate that the string must be free'd;
1754         updated calls to modebuf_mode_string() for the new usage; called
1755         collapse(pretty_mask()) on the ban string and use allocated memory
1756         for it; added ban list length accounting; fixed a number of small
1757         bugs in ban processing
1758
1759         * include/channel.h: added flag MODE_FREE and an int argument to
1760         modebuf_mode_string() to indicate that the string must be free'd
1761
1762         * ircd/m_clearmode.c (do_clearmode): made sure clearmode removed
1763         keys and limits that are set
1764
1765 2000-03-30  Perry Lorier <isomer@coders.net>
1766         * ircd/ircd.c: rewrote check_pings() for maintainability
1767         and speed.  Also changed quit msg's so they don't have
1768         redundant nick[host] info in them.
1769
1770         * ircd/send.c: Changed write errors to report what error
1771         occured (if possible).
1772
1773         * ircd/gline.c: added gline comment to the quit.
1774
1775         * ircd/m_server.c: Added suggestions to server quits mentioning
1776         what went wrong so the admin can fix it earlier instead of asking
1777         questions...
1778
1779         * ircd/map.c: Changed m_map() to hide numerics, show a * beside
1780         servers that aren't fully burst yet.  And show '(--s)' for servers
1781         where its not sure.
1782
1783         * doc/example.conf: Fixed wrapped U:
1784
1785 2000-03-30  Kevin L. Mitchell  <klmitch@mit.edu>
1786
1787         * ircd/m_mode.c (ms_mode): implemented a new m_mode in terms of
1788         mode_parse() (version selectable at compile time)
1789
1790         * ircd/m_clearmode.c (mo_clearmode): clean_channelname(parv[1])
1791
1792         * ircd/m_opmode.c (mo_opmode): clean_channelname(parv[1])
1793
1794         * config/config-sh.in: add new config option to enable new m_mode
1795         implementation
1796
1797         * doc/Configure.help: add documentation for new config option
1798         CONFIG_NEW_MODE
1799
1800         * ircd/channel.c (mode_parse_client): /opmode #foobar -o -- 461
1801         MODE -v : Not enough parameters
1802
1803         * ircd/m_clearmode.c (do_clearmode): do_clearmode() would remove
1804         +k and +l even if they weren't set...
1805
1806         * ircd/m_opmode.c: implement the OPMODE command using mode_parse()
1807
1808         * ircd/channel.c: make mode_process_clients() clear the DEOPPED
1809         flag; fix +s+p exclusivity; add MODE_ADD/MODE_DEL to flag list
1810         for; test the 0-th member, not the i-th member, of the client
1811         change state stuff
1812
1813         * ircd/m_clearmode.c (do_clearmode): use the new
1814         mode_invite_clear() function
1815
1816         * ircd/channel.c: cleared up all the compile-time warnings and
1817         errors
1818
1819         * include/channel.h: added declarations for mode_ban_invalidate()
1820         and mode_invite_clear()
1821
1822         * ircd/channel.c: finished mode_parse(), then broke it up into a
1823         dozen or so helper functions to make the code easier to read
1824
1825 2000-03-29  Thomas Helvey <tomh@inxpress.net>
1826         * ircd/ircd.c: refactor server initialization a bit, use
1827         getopt for parsing command line, refactor init_sys, main,
1828         and other bits.
1829
1830         * ircd/s_bsd.c: add functions for initialization to clean
1831         up logic a bit and remove duplicated code.
1832
1833         * include/ircd.h: add struct for server process related
1834         variables.
1835
1836 2000-03-29  Kevin L. Mitchell  <klmitch@mit.edu>
1837
1838         * ircd/channel.c: initial definition of mode_parse(); flags to
1839         prevent doing the same thing multiple times; helper method
1840         send_notoper() to send a "Not oper"/"Not on channel" notice
1841
1842         * include/channel.h: declare mode_parse() and helper flags
1843
1844         * ircd/channel.c (modebuf_flush_int): fiddled with timestamp
1845         sending to match the current action of set_mode() closely enough
1846         that hopefully there won't be major conflicts
1847
1848         * ircd/channel.c (modebuf_flush_int): consolidated the mode string
1849         building logic, reversed the order of the arguments to mode
1850         commands to have '-' preceed '+'
1851
1852 2000-03-29  Thomas Helvey <tomh@inxpress.net>
1853         * ircd/s_bsd.c (add_connection): don't disable socket options
1854         let OS tune itself and allow important performance tweaks to 
1855         work.
1856
1857 2000-03-28  Kevin L. Mitchell  <klmitch@mit.edu>
1858
1859         * ircd/channel.c (modebuf_flush_int): use %d, not %-15d; I got
1860         confused by set_mode, which is doing some really weird logic;
1861         guess what I'm going to rewrite next?  ;)
1862
1863 2000-03-28  Kevin L. Mitchell  <klmitch@emc.com>
1864
1865         * include/channel.h: added MODE_SAVE for the bounds checking stuff
1866         in modebuf_flush
1867
1868         * ircd/channel.c: make modebuf_flush into modebuf_flush_int and
1869         make it do bounds checking on the buffer; all modes are sent only
1870         if the all parameter is 1; modebuf_flush is the exported wrapper
1871
1872         * include/channel.h: add BOUNCE, renumber flags to get a little
1873         more space
1874
1875         * ircd/channel.c (modebuf_flush): don't overload HACK2, add
1876         BOUNCE; send DESYNCH message
1877
1878 2000-03-27  Kevin L. Mitchell  <klmitch@emc.com>
1879
1880         * ircd/m_clearmode.c (do_clearmode): only mark the modes the
1881         channel actually has in effect for deletion
1882
1883         * ircd/channel.c: added explanatory comments to all added
1884         functions; made flushing take place at the correct place even if
1885         the MODEBUF_DEST_DEOP flag is set; rewrote build_string() helper
1886         to bash some stupid bugs; made modebuf_flush() return if ModeBuf
1887         is empty, fixed the apparent source, removed some bogus string
1888         termination code, properly terminate the mode strings, add support
1889         for HACK2 and HACK3, made limit strings not be sent if the limit
1890         is being removed, changed where '+' and '-' come from in sent
1891         strings, added support for DEOP flag, set up bouncing code for
1892         HACK2
1893
1894         * ircd/Makefile.in: ran make depend
1895
1896         * include/channel.h: added new defines for future functionality,
1897         made modebuf_flush() return int so I can use tail recursion
1898
1899         * ircd/m_clearmode.c: add msg.h to includes; other misc cleanups
1900         to make it all compile
1901
1902         * ircd/m_opmode.c: add msg.h to includes...
1903
1904         * ircd/m_clearmode.c: implemented mo_clearchan()/ms_clearchan()
1905
1906         * ircd/channel.c (modebuf_flush): realized I forgot to
1907         nul-terminate addbuf/rembuf properly...
1908
1909         * ircd/m_clearmode.c (do_clearmode): wrote do_clearmode()...
1910
1911         * ircd/channel.c (modebuf_flush): correct sendto_server_butone to
1912         sendto_serv_butone--blah^2
1913
1914         * ircd/send.c (sendto_serv_butone): stupid comments confused me
1915
1916         * ircd/channel.c (modebuf_flush): if there are no mode changes to
1917         propagate, we're done...
1918
1919         * ircd/channel.c (modebuf_flush): duh; it's sendto_server_butone,
1920         not sendto_all_butone
1921
1922         * ircd/m_clearmode.c: define skeleton for m{o,s}_clearmode
1923
1924         * ircd/m_opmode.c: define skeleton for m{o,s}_opmode
1925
1926         * ircd/Makefile.in (SRC): added m_opmode() and m_clearmode() to
1927         the list
1928
1929         * ircd/parse.c: added messages for opmode and clearmode
1930
1931         * include/handlers.h: added declarations for mo_opmode(),
1932         ms_opmode(), mo_clearmode(), and ms_clearmode()
1933
1934         * include/msg.h: define MSG_OPMODE, TOK_OPMODE, MSG_CLEARMODE, and
1935         TOK_CLEARMODE
1936
1937         * include/channel.h (MODEBUF_DEST_OPMODE): Define the
1938         MODEBUF_DEST_OPMODE flag
1939
1940         * ircd/channel.c (modebuf_flush): added new flag,
1941         MODEBUF_DEST_OPMODE; causes channel MODE/HACK(4) notice to appear
1942         to originate from source's server (or source itself, if
1943         IsServer(source)); also causes a server-level MODE to be sent as
1944         OPMODE instead
1945
1946         * include/channel.h: defined MODEBUF_DEST_SERVER,
1947         MODEBUF_DEST_HACK4
1948
1949         * ircd/channel.c: Add another argument to build_string() to handle
1950         numeric nicks; implemented MODEBUF_DEST_SERVER to send MODEs to
1951         servers; implemented MODEBUF_DEST_HACK4 to cause HACK(4) notices
1952         to be sent out
1953
1954 2000-03-27  Perry Lorier <isomer@coders.net>
1955
1956         * ircd/s_bsd.c: fixed missing 'u' typo.
1957
1958 2000-03-26  Kevin L. Mitchell  <klmitch@emc.com>
1959
1960         * ircd/channel.c: implement modebuf_init(), _mode(), _mode_uint(),
1961         _mode_string(), _mode_client(), _flush(); also implemented a
1962         simple build_string()
1963
1964         * include/channel.h: added definition of ModeBuf, modebuf_*
1965         manipulation functions, and a couple of helper macros
1966
1967 2000-03-24 Thomas Helvey <tomh@inxpress.net>
1968   * numicks.c: convert extended numerics to use original mask version
1969   * numnicks.h: ""
1970   * s_user.c:
1971 2000-03-23 Thomas Helvey <tomh@inxpress.net>
1972   * Merge in changes from production
1973 2000-03-22 Thomas Helvey <tomh@inxpress.net>
1974   * numicks.c: Tweak to numnick generator to reduce possibility of duplicates.
1975   * rfc1459.unet: Add Maniac's documentation for /names 0
1976 * Fix misc. jupe bugs that somehow made it into the tree
1977 * Escape /names 0 to mean /names --Maniac
1978 * Don't core when server asks for info --Maniac 
1979 * Add Kev's jupe patch --Bleep
1980 * Add Maniacs squit patch --Bleep
1981 * Merge in u2_10_10_beta07 changes --Bleep
1982 * Merge in u2_10_10_beta06 changes --Bleep
1983 * Start ircu2.10.11 development, beta branch u2_10_10 --Bleep
1984 #-----------------------------------------------------------------------------