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