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