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