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