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