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