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