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