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