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