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