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