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