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