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