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