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