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