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