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