1 2001-01-18 Kevin L. Mitchell <klmitch@mit.edu>
3 * ircd/s_user.c (set_nick_name): call client_set_privs() after
6 2001-01-17 Kevin L. Mitchell <klmitch@mit.edu>
8 * ircd/s_bsd.c (read_message): fix a typo in the select version of
11 * ircd/whowas.c (whowas_free): MyFree() is a macro that expects
12 its argument to be an lvalue, which means we can't use
13 whowas_clean()'s handy-dandy "return ww" feature
15 * ircd/ircd_features.c: default LOCOP_KILL to TRUE--oops...
17 2001-01-15 Kevin L. Mitchell <klmitch@mit.edu>
19 * ircd/client.c: fixed feattab; basically, when I changed features
20 to use small integers specifying bit positions, instead of the
21 bits themselves, I forgot to update feattab to not | these
22 privileges together; also fixed a bug in the antiprivs masking
23 loop in client_set_privs()--last index wouldn't get parsed
25 2001-01-03 Kevin L. Mitchell <klmitch@mit.edu>
27 * ircd/whowas.c: Completely re-did the old allocation scheme by
28 turning it into a linked list, permitting the
29 NICKNAMEHISTORYLENGTH feature to be changed on the fly
31 * ircd/s_debug.c (count_memory): use FEAT_NICKNAMEHISTORYLENGTH
32 feature instead of old #define
34 * ircd/ircd_features.c: add NICKNAMEHISTORYLENGTH feature as an
35 integer feature with a notify callback (whowas_realloc)
37 * ircd/client.c (client_set_privs): second memset was supposed to
38 be over antiprivs, not privs; thanks, Chris Behrens
39 <cbehrens@xo.com> for pointing that out...
41 * include/whowas.h: new elements for an extra linked list in
42 struct Whowas; a notify function for feature value changes
44 * include/ircd_features.h: new feature--FEAT_NICKNAMEHISTORYLENGTH
46 * config/config-sh.in: NICKNAMEHISTORYLENGTH is now a feature
48 2001-01-02 Kevin L. Mitchell <klmitch@mit.edu>
50 * config/config-sh.in: get rid of DEFAULT_LIST_PARAMETER
51 compile-time option--now in features subsystem
53 * ircd/motd.c (motd_init): rework motd_init() to be called as the
54 notify function for MPATH and RPATH features (should probably
55 split it up a bit, though...)
57 * ircd/m_privs.c (mo_privs): if called with no parameters, return
58 privs of the caller, rather than an error
60 * ircd/m_list.c: pull usage message into its own function; pull
61 list parameter processing into its own function that does not
62 modify the contents of the parameter; add list_set_default() to
63 set the default list parameter (uses the notify hook); rework
64 m_list() to make use of these functions; removed dead code
66 * ircd/ircd_log.c (log_feature_mark): make sure to return 0, since
67 we have no notify handler
69 * ircd/ircd_features.c: add notify callback for notification of
70 value changes; give mark callback an int return value to indicate
71 whether or not to call the notify callback; fix up feature macros
72 for new notify callback; add DEFAULT_LIST_PARAM feature; rewrite
73 string handling in feature_set() to deal with def_str being a null
74 pointer; wrote feature_init() to set up all defaults appropriately
76 * ircd/ircd.c (main): call feature_init() instead of
77 feature_mark(), to avoid calling notify functions while setting up
80 * ircd/client.c: updated to deal with new privileges structure
82 * ircd/class.c: updated so init_class() can be called should one
83 of PINGFREQUENCY, CONNECTFREQUENCY, MAXIMUM_LINKS, or
84 DEFAULTMAXSENDQLENGTH be changed
86 * include/ircd_log.h: log_feature_mark() updated to fit with new
89 * include/ircd_features.h: added DEFAULT_LIST_PARAM feature and
90 feature_init() function (found necessary since adding the notify
91 stuff and notifying motd.c during start-up...before we defined
94 * include/client.h: move privs around to enable addition of more
95 bits if necessary; based on the FD_* macros
97 * include/channel.h: declare list_set_default (actually located in
100 * ircd/s_user.c: retrieve MAXSILES and MAXSILELENGTH (now
101 AVBANLEN*MAXSILES) from features subsystem
103 * ircd/s_debug.c (debug_serveropts): CMDLINE_CONFIG doesn't go to
106 * ircd/s_bsd.c: retrieve HANGONGOODLINK and HANGONRETRYDELAY from
107 the features subsystem
109 * ircd/s_auth.c (start_auth): NODNS migrated to the features
112 * ircd/random.c: created random_seed_set() function to set seed
113 value, along with some stuff to make ircrandom() a little more
114 random--state preserving, xor of time instead of direct usage,
115 etc.; it's still a pseudo-random number generator, though, and
116 hopefully I haven't broken the randomness
118 * ircd/m_version.c: FEATUREVALUES makes use of feature_int() calls
120 * ircd/m_join.c: use features interface to retrieve
123 * ircd/ircd_features.c: add NODISP flag for super-secret features;
124 add a whole bunch of new features migrated over from make config
126 * ircd/ircd.c: use features interface to retrieve PINGFREQUENCY,
127 CONNECTTIMEOUT, and TIMESEC
129 * ircd/client.c (client_get_ping): use features interface to
130 retrieve PINGFREQUENCY
132 * ircd/class.c: use features interface to retrieve PINGFREQUENCY,
133 CONNECTFREQUENCY, MAXIMUM_LINKS, and DEFAULTMAXSENDQLENGTH
135 * ircd/chkconf.c (DEFAULTMAXSENDQLENGTH): since it's now in the
136 features subsystem, we have to add something explicit
138 * ircd/channel.c: use features interface to retrieve
139 KILLCHASETIMELIMIT, MAXBANLENGTH, MAXBANS, and MAXCHANNELSPERUSER;
140 note that MAXBANLENGTH is now calculated dynamically from MAXBANS
143 * ircd/Makefile.in: run make depend
145 * include/supported.h (FEATURESVALUES): update to reference
148 * include/random.h: add prototype for random_seed_set
150 * include/ircd_features.h: add several more features
152 * include/channel.h: move MAXBANS and MAXBANLENGTH into feature
155 * config/config-sh.in: feature-ized some more stuff
157 * include/motd.h: some new elements in motd.h for motd.c changes
159 * ircd/motd.c: motd_cache() now searches a list of already cached
160 MOTD files; saves us from having duplicate caches in memory if
161 there are two identical T-lines for two different sites...
163 2001-01-02 Perry Lorier <isomer@coders.net>
164 * ircd/motd.c: don't core if the motd isn't found. Bug found by
167 2001-01-02 Perry Lorier <isomer@coders.net>
168 * ircd/s_err.c: Added third param to 004 - the channel modes that tage params. Used by hybrid/epic.
169 * ircd/s_channels.c: Added fix for msg'ing a -n+m channel - thanks
170 to guppy for noticing, and hektik for providing the fix.
171 * misc others: Minor cleanups, added more protocol_violations, ripped
172 out more P09 stuffs, bit more protocol neg stuff.
174 2000-12-19 Kevin L. Mitchell <klmitch@mit.edu>
176 * ircd/m_ison.c (m_ison): Dianora says that ISON has to end with a
177 space (*sigh* stupid clients...)
179 * ircd/s_user.c: make WALLOPS_OPER_ONLY a feature managed through
182 * ircd/s_err.c: get rid of GODMODE conditionals
184 * ircd/s_debug.c (debug_serveropts): switch to using appropriate
185 calls into the features subsystem for various serveropts
188 * ircd/s_conf.c (find_conf_entry): get rid of USEONE conditional
190 * ircd/s_bsd.c: remove GODMODE conditional; use features subsystem
191 to get value of VIRTUAL_HOST and CLIENT_FLOOD; remove
192 NOFLOWCONTROL conditional
194 * ircd/s_auth.c: use features subsystem to determine value of
197 * ircd/parse.c: get rid of NOOPER and GODMODE conditionals; use
198 features subsystem to determine the setting of IDLE_FROM_MSG
200 * ircd/numnicks.c: get rid of EXTENDED_NUMERICS conditionals
202 * ircd/motd.c: get value of NODEFAULTMOTD from features subsystem;
203 use features subsystem to get motd file names
205 * ircd/m_settime.c: get value of RELIABLE_CLOCK from features
208 * ircd/m_server.c: get rid of CRYPT_LINK_PASSWORD, since it does
209 us no good; use features subsystem to figure out if we need to do
210 HUB-type stuff; make TESTNET debugging sendto_opmask_butone's use
211 the Debug(()) macro instead; get value of RELIABLE_CLOCK from
214 * ircd/m_privmsg.c: get IDLE_FROM_MSG from the features subsystem
216 * ircd/m_oper.c: get CRYPT_OPER_PASSWORD from the features
219 * ircd/m_connect.c: get SERVER_PORT from the features subsystem
221 * ircd/ircd_log.c (log_set_file): fix a bug that kept log files
222 from getting marked if they were already set to something...
224 * ircd/ircd_features.c: add a flag to indicates read-only access;
225 add several new features that used to be compile-time selected
227 * ircd/ircd.c: grab pidfile out of feature subsystem; don't check
228 access to motd files (what the heck?); make sure to initialize the
229 feature subsystem before trying to write the config file
231 * ircd/dbuf.c: use feature_int() to retrieve BUFFERPOOL settings;
232 use feature_bool() to figure out if we're using the FERGUSON
235 * ircd/Makefile.in: MPATH and RPATH are now done differently, so
236 remove the clause that creates empty files of that name; also ran
239 * include/sys.h: CLIENT_FLOOD is now a feature; unfortunately,
240 there is no easy way to bounds-check it at present
242 * include/querycmds.h: make sure ircd_features.h is included; use
243 feature_str(FEAT_DOMAINNAME) in calls to match()
245 * include/ircd_features.h: many new features that used to be
246 compile-time selected
248 * config/config-sh.in: add * to DOMAINNAME; try also using first
249 argument to search in /etc/resolv.conf; removed many compile-time
250 options that now can be configured through the features system
252 2000-12-18 Kevin L. Mitchell <klmitch@mit.edu>
254 * doc/api/log.txt: how to use the logging API
256 * doc/api/features.txt: how to use the features API
258 * doc/api/api.txt: how to write API documentation
260 * include/ircd_features.h: rearranged a couple of features for
263 * ircd/ircd_features.c: cleaned up the macros some; rearranged
264 some code to all go into the switch; rearranged a couple of
265 features for neatness purposes
267 2000-12-16 Greg Sikorski <gte@atomicrevs.demon.co.uk>
268 * ircd/os_bsd.c: Added os_set_tos for BSD users.
270 2000-12-16 Kevin L. Mitchell <klmitch@mit.edu>
272 * ircd/ircd_features.c: Isomer almost got it right; you need to
273 use F_I(), since it's an integer value, not a boolean value. The
274 asserts in feature_int would catch you out... Also made the F_*
277 * ircd/s_err.c: define RPL_PRIVS reply
279 * ircd/parse.c: put new PRIVS command into command table
281 * ircd/m_privs.c (mo_privs): message handler to report operator
284 * ircd/ircd_features.c: declare new features OPER_SET and
285 LOCOP_SET; redo boolean testing routine to accept TRUE, YES, and
286 ON for boolean TRUE, and FALSE, NO, and OFF for boolean FALSE
288 * ircd/client.c: simplify client_set_privs() with a table that
289 defines what features to test for; add new client_report_privs()
291 * ircd/Makefile.in: compile new m_privs.c; run make depend
293 * include/numeric.h (RPL_PRIVS): new reply numeric for displaying
294 an operator's privileges
296 * include/msg.h: define new command: PRIVS
298 * include/ircd_features.h: create new features OPER_SET and
299 LOCOP_SET for controlling access to /set
301 * include/handlers.h (mo_privs): declare message handler for
302 reporting oper privileges
304 * include/client.h (client_report_privs): declare function to
305 report what privileges an oper has
307 * ircd/m_whois.c (do_whois): fix a bug that caused /whois to
308 report that a user is an oper if the oper doing the /whois had
311 2000-12-17 Isomer <Isomer@coders.net>
312 * ircd/listener.c: added support for TOS twiddling as a 'feature'.
314 2000-12-17 Isomer <Isomer@coders.net>
315 * ircd/os_linux.c: add TOS stuffs
317 * ircd/listener.c: add TOS stuffs
319 2000-12-16 Kevin L. Mitchell <klmitch@mit.edu>
321 * ircd/whocmds.c (do_who): use HasPriv to determine whether or not
322 to indicate a user is an oper
324 * ircd/s_user.c: clear privileges setting when deopping; don't
325 propagate +o unless user has PRIV_PROPAGATE privilege
327 * ircd/s_debug.c (debug_serveropts): created debug_serveropts()
328 function and replaced how the server option string is generated
330 * ircd/parse.c: remove conditional on CONFIG_OPERCMDS
332 * ircd/m_whois.c (do_whois): use HasPriv to determine whether or
333 not to indicate the user is an operator
335 * ircd/m_who.c: use HasPriv to determine whether or not a user
336 should be displayed in the list of opers
338 * ircd/m_version.c: call debug_serveropts() to get server option
341 * ircd/m_userip.c (userip_formatter): use HasPriv to determine
342 whether or not to show oper status
344 * ircd/m_userhost.c (userhost_formatter): use HasPriv to determine
345 whether or not to show oper status
347 * ircd/m_restart.c (mo_restart): replace ugly #ifdef conditional
348 checks with HasPriv check; remove dead code
350 * ircd/m_rehash.c (mo_rehash): replace ugly #ifdef conditional
351 checks with HasPriv check
353 * ircd/m_opmode.c (mo_opmode): use HasPriv to check permissions;
354 use feature_bool to check if disabled
356 * ircd/m_oper.c (m_oper): set oper priviliges
358 * ircd/m_mode.c (m_mode): replace #ifdef conditional with HasPriv
361 * ircd/m_kill.c (mo_kill): use HasPriv checks to determine if we
364 * ircd/m_kick.c (m_kick): replace #ifdef conditional with HasPriv
367 * ircd/m_jupe.c (mo_jupe): rework permissions checking structure;
368 use feature_bool to check if disabled
370 * ircd/m_join.c (m_join): remove BADCHAN conditional; replace
371 #ifdef conditional with a HasPriv check
373 * ircd/m_gline.c (mo_gline): rework permissions checking
374 structure; use feature_bool to check if any part is disabled
376 * ircd/m_die.c: replace ugly #ifdef conditionals with HasPriv
377 check; remove dead code
379 * ircd/m_clearmode.c: use feature_bool() to detect if we're
380 disabled; use HasPriv to figure out what we're permitted to do;
381 only allow clearmode on moded channels
383 * ircd/ircd_features.c: define various features; use HasPriv to
384 verify permissions to set/reset
386 * ircd/gline.c (gline_add): use HasPriv instead of #ifdef
389 * ircd/client.c (client_set_privs): function to set an oper's
392 * ircd/channel.c: use HasPriv calls instead of #ifdef conditionals
394 * include/whocmds.h: deconditionalize several macros and
395 substitute appropriate calls to HasPriv()
397 * include/s_debug.h: get rid of global serveropts[]; define new
398 function debug_serveropts() to build that string on the fly
400 * include/ircd_features.h: define some features
402 * include/client.h: add privs member to struct Connection; define
405 * include/channel.h: no longer using IsOperOnLocalChannel; remove
406 conditional of MAGIC_OPER_OVERRIDE on OPER_WALK_THROUGH_LMODES
408 * doc/Configure.help: remove help information for deprecated
411 * config/config-sh.in: remove certain deprecated options having to
412 do with what opers can and cannot do--first stage in moving
413 compile-time constants into the .conf
415 2000-12-16 Isomer <Isomer@coders.net>
416 * ircd/parse.c: detect if the prefix is missing and try and recover
419 2000-12-15 Kevin L. Mitchell <klmitch@mit.edu>
421 * ircd/ircd_log.c: found and fixed some bugs in the debug logging
422 code that would sometimes result in the log file not being
423 reopened--which meant that a user could connect and get the
426 * ircd/Makefile.in: run make depend...
428 * ircd/s_stats.c: get rid of report_feature_list()
430 * ircd/s_err.c: add the 'bad value' error message, shift error
431 messages over somewhat
433 * ircd/s_debug.c (debug_init): call log_debug_init with the
436 * ircd/s_conf.c (read_configuration_file): unmark features before
437 reading the config file, then reset unmarked features after
438 reading the config file
440 * ircd/m_stats.c: use feature_report() instead of
441 report_feature_list()
443 * ircd/ircd_log.c: fix log_debug_file (bogus assertion); add
444 special 'mark' flags and use them; add the stuff needed by the
447 * ircd/ircd_features.c: rework the features API and add gobs of
448 comments to try to explain what some of these complex functions
451 * include/s_stats.h: get rid of report_feature_list(); use
452 feature_report() instead
454 * include/numeric.h: added a new error message and shifted old
455 values over some--this is, after all, an alpha
457 * include/ircd_log.h: log_debug_init now takes an integer to tell
458 it if it should be using the tty; added a couple of functions
459 required by the features API
461 * include/ircd_features.h: add an enum and some more functions to
462 flesh out the feature API--it should now be possible to put all
463 those compile-time constants in the config file!
465 * ircd/send.c: got the direction of the assert incorrect...
467 * ircd/send.c: implement the efficiency of flush_connections by
468 creating a linked list of struct Connection's with queued data;
469 also get rid of flush_sendq_except and make sure to yank
470 connections out of the list when their sendQs become empty (notice
471 the assertion in flush_connections!)
473 * ircd/s_bsd.c (close_connection): must yank the Connection out of
476 * ircd/list.c (dealloc_connection): must yank the Connection out
479 * ircd/dbuf.c (dbuf_put): call flush_connections instead of the
480 deprecated flush_sendq_except
482 * ircd/client.c: define a couple new helper functions for sendq
483 threading--this will make the flush_connections function in send.c
484 considerably more efficient by creating a linked list of
485 Connections that have queued data to send
487 * include/send.h: remove flush_sendq_except, as it's not used
490 * include/client.h: declare a couple new helper functions for the
491 sendq threading system
493 2000-12-14 Kevin L. Mitchell <klmitch@mit.edu>
495 * ircd/m_ison.c (m_ison): Apply Diane Bruce's patch to make ISON
498 * ircd/s_debug.c (count_memory): modify to report for clients and
499 connections, not local clients and remote clients
501 * ircd/list.c: fiddle with the client-fiddling functions to take
502 into account the divorce of struct Connection from struct Client
504 * ircd/ircd.c: define a struct Connection for me, initialize it,
505 and link it into the right place (ewww, globals!)
507 * include/client.h: remove CLIENT_{LOCAL,REMOTE}_SIZE; split
508 struct Client into struct Client and struct Connection; redefine
509 local-portion accessor macros to go through struct Client to the
510 struct Connection; define struct Connection accessor macros
512 2000-12-13 Kevin L. Mitchell <klmitch@mit.edu>
514 * ircd/whowas.c: missed a couple of accesses to a struct Client
516 * ircd/uping.c: missed a couple of accesses to a struct Client
518 * ircd/send.c: missed a couple of accesses to a struct Client
520 * ircd/s_user.c: missed a couple of accesses to a struct Client
522 * ircd/s_misc.c: missed a couple of accesses to a struct Client
524 * ircd/s_conf.c: missed a couple of accesses to a struct Client
526 * ircd/s_bsd.c: missed a couple of accesses to a struct Client
528 * ircd/s_auth.c: missed a couple of accesses to a struct Client
530 * ircd/res.c: missed a couple of accesses to a struct Client
532 * ircd/parse.c: missed a couple of accesses to a struct Client
534 * ircd/m_whois.c: use new accessor macros for struct Client
536 * ircd/m_who.c: use new accessor macros for struct Client
538 * ircd/m_wallchops.c: use new accessor macros for struct Client
540 * ircd/m_version.c: use new accessor macros for struct Client
542 * ircd/m_userip.c: use new accessor macros for struct Client
544 * ircd/m_userhost.c: use new accessor macros for struct Client
546 * ircd/m_user.c: use new accessor macros for struct Client
548 * ircd/m_uping.c: use new accessor macros for struct Client
550 * ircd/m_trace.c: use new accessor macros for struct Client
552 * ircd/m_topic.c: use new accessor macros for struct Client
554 * ircd/m_time.c: use new accessor macros for struct Client
556 * ircd/m_stats.c: use new accessor macros for struct Client
558 * ircd/m_squit.c: use new accessor macros for struct Client
560 * ircd/m_silence.c: use new accessor macros for struct Client
562 * ircd/m_server.c: use new accessor macros for struct Client;
565 * ircd/m_rpong.c: use new accessor macros for struct Client
567 * ircd/m_rping.c: use new accessor macros for struct Client
569 * ircd/m_quit.c: use new accessor macros for struct Client
571 * ircd/m_privmsg.c: use new accessor macros for struct Client
573 * ircd/m_pong.c: use new accessor macros for struct Client; remove
576 * ircd/m_ping.c: use new accessor macros for struct Client
578 * ircd/m_pass.c: use new accessor macros for struct Client
580 * ircd/m_part.c: use new accessor macros for struct Client
582 * ircd/m_oper.c: use new accessor macros for struct Client
584 * ircd/m_notice.c: use new accessor macros for struct Client
586 * ircd/m_nick.c: use new accessor macros for struct Client
588 * ircd/m_names.c: use new accessor macros for struct Client
590 * ircd/m_mode.c: use new accessor macros for struct Client
592 * ircd/m_map.c: use new accessor macros for struct Client
594 * ircd/m_list.c: use new accessor macros for struct Client
596 * ircd/m_links.c: use new accessor macros for struct Client;
597 remove some dead code
599 * ircd/m_kill.c: use new accessor macros for struct Client; remove
602 * ircd/m_kick.c: use new accessor macros for struct Client
604 * ircd/m_join.c: use new accessor macros for struct Client; remove
607 * ircd/m_ison.c: use new accessor macros for struct Client
609 * ircd/m_invite.c: use new accessor macros for struct Client
611 * ircd/m_info.c: use new accessor macros for struct Client
613 * ircd/m_gline.c: use new accessor macros for struct Client
615 * ircd/m_error.c: use new accessor macros for struct Client
617 * ircd/m_create.c: use new accessor macros for struct Client
619 * ircd/m_connect.c: use new accessor macros for struct Client;
620 removed some dead code
622 * ircd/m_burst.c: use new accessor macros for struct Client
624 * ircd/m_away.c: use new accessor macros for struct Client
626 * ircd/m_admin.c: use new accessor macros for struct Client
628 * ircd/hash.c: missed a couple of accesses to a struct Client
630 * ircd/gline.c: missed a couple of accesses to a struct Client
632 * ircd/crule.c: missed a couple of accesses to a struct Client
634 * ircd/class.c: missed an access to a struct Client
636 * ircd/channel.c: missed a couple of accesses to a struct Client
638 * ircd/IPcheck.c: missed an access to a struct Client
640 * include/querycmds.h: fix a couple of stats macros to use
641 structure accessor macros
643 * include/client.h: change structure member names to highlight any
644 places in the code I've missed
646 2000-12-12 Kevin L. Mitchell <klmitch@mit.edu>
648 * ircd/whowas.c: use new struct Client accessor macros
650 * ircd/whocmds.c: use new struct Client accessor macros
652 * ircd/send.c: use new struct Client accessor macros
654 * ircd/s_user.c: use new struct Client accessor macros; removed
657 * ircd/s_serv.c: use new struct Client accessor macros; removed
660 * ircd/s_numeric.c: use new struct Client accessor macros
662 * ircd/s_misc.c: use new struct Client accessor macros
664 * ircd/s_debug.c: use new struct Client accessor macros
666 * ircd/s_conf.c: use new struct Client accessor macros
668 * ircd/s_bsd.c: use new struct Client accessor macros
670 * ircd/s_auth.c: use new struct Client accessor macros
672 * ircd/parse.c: use new struct Client accessor macros
674 * ircd/packet.c: use new struct Client accessor macros
676 * ircd/numnicks.c: use new struct Client accessor macros
678 * ircd/motd.c: use new struct Client accessor macros
680 * ircd/listener.c: use new struct Client accessor macros
682 * ircd/list.c: use new struct Client accessor macros
684 * ircd/jupe.c: use new struct Client accessor macros
686 * ircd/ircd_snprintf.c: use new struct Client accessor macros
688 * ircd/ircd_reply.c: use new struct Client accessor macros
690 * ircd/ircd_relay.c: use new struct Client accessor macros
692 * ircd/ircd.c: use new struct Client accessor macros
694 * ircd/gline.c: catch some instances of me.<stuff> I missed
697 * ircd/client.c: use cli_ instead of con_
699 * ircd/class.c: use cli_ instead of con_
701 * ircd/channel.c: use cli_ instead of con_
703 * ircd/IPcheck.c: use cli_ instead of con_; catch some instances
704 of me.<stuff> I missed previously
706 * include/client.h: use cli_ instead of con_...seemed like a good
707 idea at the time *shrug*
709 2000-12-11 Kevin L. Mitchell <klmitch@mit.edu>
711 * ircd/hash.c: use struct Client accessor macros
713 * ircd/gline.c: use struct Client accessor macros
715 * ircd/crule.c: use struct Client accessor macros
717 * ircd/client.c: use struct Client accessor macros; remove some
720 * ircd/class.c: use struct Client accessor macros
722 * ircd/channel.c: use struct Client accessor macros; remove some
725 * ircd/IPcheck.c: use struct Client accessor macros
727 * include/numnicks.h: use struct Client accessor macros
729 * include/client.h: first step to divorcing struct Client and
730 struct Connection--define accessor macros and use them
732 * ircd/gline.c: When Uworld removed Uworld-set G-lines, only the
733 uplink would remove them. This is because the removal protocol
734 message wasn't being sent to the uplinks. This is fixed by fixing
735 propagate_gline() to send the proper number of arguments depending
736 on whether or not we're adding or deleting the Uworld gline, and
737 by having gline_deactivate() make sure to turn off the active bit
738 and call propagate_gline() if it's a Uworld gline
740 2000-12-10 Kevin L. Mitchell <klmitch@mit.edu>
742 * ircd/os_generic.c: make sure IOV_MAX gets defined, just in case
744 * ircd/os_bsd.c: apparently BSD doesn't have IOV_MAX defined
745 anywhere intelligent...
747 2000-12-09 Kevin L. Mitchell <klmitch@mit.edu>
749 * ircd/send.c (send_queued): call deliver_it with appropriate
752 * ircd/s_serv.c: reorder a couple of headers--cosmetic
754 * ircd/s_bsd.c (deliver_it): make deliver_it work with a struct
757 * ircd/os_solaris.c (os_sendv_nonb): function for calling writev
758 with appropriate iovec
760 * ircd/os_linux.c (os_sendv_nonb): function for calling writev
761 with appropriate iovec
763 * ircd/os_generic.c (os_sendv_nonb): function for calling writev
764 with appropriate iovec
766 * ircd/os_bsd.c (os_sendv_nonb): function for calling writev with
769 * ircd/msgq.c (msgq_mapiov): add a len_p argument for totalling up
770 exactly how much we're trying to write out to the fd
772 * include/s_bsd.h: make deliver_it take a struct MsgQ
774 * include/msgq.h: add a len_p argument to msgq_mapiov to help
775 detect short writes that indicate possible socket blocking
777 * include/ircd_osdep.h: declare os_sendv_nonb()
779 * ircd/channel.c (modebuf_mode): don't add empty modes...
781 2000-12-08 Kevin L. Mitchell <klmitch@mit.edu>
783 * include/send.h: add prio argument to send_buffer to select
784 between normal and priority queues
786 * ircd/s_user.c (send_user_info): add prio argument to send_buffer
789 * ircd/m_ison.c (m_ison): add prio argument to send_buffer call
791 * ircd/ircd_reply.c (send_reply): add prio argument to send_buffer
794 * ircd/channel.c (send_channel_modes): add prio argument to
797 * ircd/send.c (send_buffer): add a prio argument to select the
798 priority queue; update send.c functions to use it
800 * ircd/msgq.c (msgq_add): remove msgq_prio; fold msgq_link and
801 msgq_add; add a prio argument to msgq_add to select the priority
804 * include/msgq.h: remove msgq_prio; add a prio argument to
807 * ircd/send.c: remove sendbuf; remove GODMODE code; switch to
808 using msgq functions instead of dbuf functions; remove old, dead
809 sendto_* functions; redo send_buffer to take a struct MsgBuf;
810 rework sendcmdto_* functions to make use of the new struct MsgBuf
812 * ircd/s_user.c: remove hunt_server; restructure send_user_info to
813 make appropriate use of struct MsgBuf
815 * ircd/s_debug.c (count_memory): count memory used by the MsgQ
818 * ircd/s_conf.c (read_configuration_file): use
819 sendto_opmask_butone instead of the now dead sendto_op_mask
821 * ircd/s_bsd.c: switch to using appropriate MsgQLength and other
824 * ircd/parse.c (parse_server): get rid of a piece of GODMODE code
826 * ircd/msgq.c: add msgq_append and msgq_bufleft; fix a bug in
829 * ircd/m_version.c: fix spelling in comments marking dead code
831 * ircd/m_userip.c (userip_formatter): restructure to make use of
834 * ircd/m_userhost.c (userhost_formatter): restructure to make use
837 * ircd/m_stats.c: use MsgQLength on a sendQ
839 * ircd/m_settime.c: use MsgQLength instead of DBufLength on a
840 sendQ; mark a piece of dead code
842 * ircd/m_names.c: use send_reply instead of sendto_one
844 * ircd/m_mode.c: use new mode; remove old dead code
846 * ircd/m_ison.c (m_ison): restructure to make use of struct MsgBuf
848 * ircd/m_burst.c: use BUFSIZE instead of IRC_BUFSIZE; remove old
851 * ircd/listener.c (accept_connection): use sendto_opmask_butone
852 instead of sendto_op_mask
854 * ircd/list.c (free_client): use MsgQClear to clear sendQ
856 * ircd/ircd_reply.c: remove send_error_to_client; restructure
857 send_reply to make use of struct MsgBuf
859 * ircd/dbuf.c (dbuf_put): remove argument to flush_sendq_except,
860 since its no longer used (at least currently)
862 * ircd/channel.c: restructure send_channel_modes to make use of
863 struct MsgBuf; remove set_mode, add_token_to_sendbuf, cancel_mode,
864 and send_hack_notice; use BUFSIZE instead of IRC_BUFSIZE
866 * ircd/Makefile.in: add msgq.c to list of sources; run make depend
868 * ircd/IPcheck.c: use sendcmdto_one instead of sendto_one
870 * include/send.h: send_buffer now takes a struct MsgBuf * instead
871 of a char *; flush_sendq_except now takes no arguments, as sendq
872 flushing currently only happens in dbuf.h and sendQ is a struct
873 MsgQ; remove prototypes for a lot of old sendto_* functions that
874 aren't used anymore; remove sendbuf and IRC_BUFSIZE--the former is
875 no longer needed, and the latter is identical to BUFSIZE in
878 * include/s_user.h: make InfoFormatter take a struct MsgBuf*
879 instead of a char *; also make it return void, instead of char *
881 * include/msgq.h: add msgq_append and msgq_bufleft functions
883 * include/client.h: use a struct MsgQ instead of a struct DBuf for
886 * doc/Configure.help: Remove help for compile-time options that
889 * config/config-sh.in: remove CONFIG_NEWMODE
891 * ircd/m_server.c (mr_server): don't send server IPs in any server
894 * ircd/msgq.c (msgq_vmake): add \r\n to messages
896 2000-12-07 Kevin L. Mitchell <klmitch@mit.edu>
898 * include/msgq.h: declare the MsgQ API
900 * ircd/msgq.c: implementation of new MsgQ system
902 2000-12-06 Kevin L. Mitchell <klmitch@mit.edu>
904 * ircd/ircd_features.c: #include was supposed to be for
905 ircd_features.h, not features.h--missed when I had to do a
906 rename because of namespace collision
908 2000-12-05 Greg Sikorski <gte@atomicrevs.demon.co.uk>
909 * ircd/m_topic.c: Added missing braces that caused all remote
910 topics to be ignored.
912 2000-12-04 Kevin L. Mitchell <klmitch@mit.edu>
914 * ircd/m_create.c: I'm tired of the exit_client warning :)
915 (ms_create): discovered that exit_client() was being called with
918 * ircd/s_misc.c (exit_client): remove all dependance on
919 FNAME_USERLOG, since that's now gone; log only to LS_USER
921 * ircd/s_debug.c: USE_SYSLOG no longer means anything
923 * ircd/m_oper.c (m_oper): no longer log to LS_OPERLOG--we already
926 * ircd/m_kill.c: no longer conditionalize on SYSLOG_KILL
928 * ircd/ircd_log.c: remove LS_OPERLOG, LS_USERLOG
930 * include/ircd_log.h: remove LS_OPERLOG, LS_USERLOG--they serve
931 the same purpose as LS_USER and LS_OPER
933 * config/config-sh.in: remove no longer relevant log config
936 * ircd/uping.c (uping_init): use log_write instead of ircd_log
938 * ircd/s_misc.c (exit_client): use log_write instead of ircd_log
940 * ircd/s_conf.c: use log_write instead of ircd_log
942 * ircd/s_bsd.c (report_error): use log_write instead of ircd_log
944 * ircd/s_auth.c (timeout_auth_queries): use log_write instead of
947 * ircd/res.c (send_res_msg): use log_write instead of ircd_log
949 * ircd/m_who.c: use log_write instead of write_log; no longer
950 conditionalize on WPATH; mark dead ircd_log calls
952 * ircd/m_uping.c: mark dead ircd_log call
954 * ircd/m_server.c (mr_server): use log_write instead of ircd_log
956 * ircd/m_restart.c: use log_write instead of ircd_log; mark dead
959 * ircd/m_rehash.c (mo_rehash): use log_write instead of ircd_log
961 * ircd/m_oper.c: use log_write instead of ircd_log; no longer
962 conditionalize on FNAME_OPERLOG; mark dead ircd_log calls
964 * ircd/m_kill.c: mark dead ircd_log calls
966 * ircd/m_connect.c: use log_write instead of ircd_log; mark dead
969 * ircd/m_clearmode.c: use log_write instead of write_log; no
970 longer conditionalize on OPATH
972 * ircd/jupe.c: use log_write instead of write_log; no longer
973 conditionalize on JPATH
975 * ircd/ircd_log.c: add USER subsystem; remove ircd_log() compat
976 function; fix a couple of bugs
978 * ircd/ircd_alloc.c: fixed a comment
980 * ircd/ircd.c: use log_write instead of ircd_log; fold server
981 notice generation in a couple of cases
983 * ircd/gline.c: use log_write instead of write_log; no longer
984 conditionalize on GPATH
986 * ircd/channel.c (modebuf_flush_int): use log_write instead of
987 write_log; no longer conditionalize on OPATH
989 * ircd/Makefile.in: run make depend, since dependencies have
992 * doc/example.conf: add system USER to documentation
994 * include/ircd_log.h: add system USER; remove old ircd_log()
997 2000-12-04 Isomer <isomer@coders.net>
998 * ircd/m_names.c: Add NAMES_EON to do_names to say add a
999 'end_of_names' reply when done.
1000 * ircd/m_join.c: use NAMES_EON as mentioned above
1002 2000-12-01 net <simms@LUCIDA.QC.CA>
1004 * ircd/motd.c: add a freelist for struct Motds
1006 2000-11-30 Kevin L. Mitchell <klmitch@mit.edu>
1008 * ircd/s_stats.c (report_feature_list): report features--only
1009 local opers can see logging configuration, since it doesn't really
1010 mean anything to users
1012 * ircd/s_err.c: add reply messages for new feature subsystem
1014 * ircd/s_conf.c: add F lines to .conf
1016 * ircd/parse.c: add the message descriptions for /set, /reset, and
1019 * ircd/m_stats.c: add /stats f
1021 * ircd/m_set.c (mo_set): implement /set
1023 * ircd/m_reset.c (mo_reset): implement /reset
1025 * ircd/m_rehash.c: /rehash m now flushes MOTD cache, and /rehash l
1026 reopens log files (for log file rotation)
1028 * ircd/m_get.c (mo_get): implement /get
1030 * ircd/ircd_log.c: use int instead of void return value; add
1031 log_report_features() and log_canon(); fix a function that
1032 disappears if DEBUGMODE not #define'd
1034 * ircd/ircd_features.c: functions to manipulate feature settings
1035 either from the config file or with the new /set, /reset, and /get
1038 * ircd/Makefile.in: add new .c files, run make depend
1040 * include/s_stats.h: declare report_feature_list() (/stats f
1043 * include/numeric.h: add RPL_STATSFLINE, RPL_FEATURE,
1044 ERR_NOFEATURE, ERR_BADLOGTYPE, ERR_BADLOGSYS, and ERR_BADLOGVALUE
1047 * include/msg.h: add defines for SET, RESET, and GET
1049 * include/ircd_log.h: add a function to canonicalize subsystem
1050 names; change some void return values to int
1052 * include/ircd_features.h: new features subsystem handles all the
1053 manipulation of special features, like log files
1055 * include/handlers.h: declare new mo_{s,res,g}et message handlers
1056 for fiddling with features run-time
1058 * include/client.h (SNO_DEFAULT): don't set SNO_DEBUG by default;
1059 seemed like a good idea at the time...
1061 * doc/example.conf: document new F lines
1063 2000-11-29 Kevin L. Mitchell <klmitch@mit.edu>
1065 * ircd/s_debug.c: rewrite debug_init() and vdebug() in terms of
1066 new logging functions, which have special support for the debug
1067 log; added loop detection to vdebug(), so that I can
1068 sendto_opmask_butone() from log_vwrite() without incurring another
1071 * ircd/s_conf.c (rehash): call log_reopen() from rehash routine;
1072 this allows log file rotations
1074 * ircd/m_kill.c: call log_write_kill() instead of ircd_log_kill()
1076 * ircd/ircd_log.c: much more work fleshing out the interface;
1077 removed old interface; included backwards-compat ircd_log()
1078 function that logs to subsystem LS_OLDLOG
1080 * ircd/ircd.c: switch to new log_init()/log_close()/log_reopen()
1083 * include/ircd_log.h: include stdarg.h for va_list; move ordering
1084 warning to top of file; fill out LogSys enum; declare new
1085 log_debug_init(), log_vwrite(), log_write_kill(), and
1086 log_[sg]et_*() functions; add flags argument to log_write();
1087 defined flags to inhibit various logging actions
1089 * include/client.h: added support for new SNO_DEBUG, enabled only
1090 if DEBUGMODE is defined
1092 2000-11-28 Kevin L. Mitchell <klmitch@mit.edu>
1094 * ircd/ircd_log.c: make sure the various LOG_* constants are
1095 defined (probably not needed, since #include <syslog.h> isn't
1096 conditional); various static data needed for the new logging
1097 functions; definitions of new logging functions
1099 * include/ircd_log.h: new LogSys enum, declarations for part of
1102 * ircd/motd.c: we were setting type to MOTD_CLASS unconditionally,
1103 which was of course stupid; switched to using switch/case in
1104 initialization in motd_create(); zero the MotdList.other pointer
1107 * ircd/ircd.c (main): motd_init() has to come before init_conf(),
1108 or we overwrite init_conf()'s hard work with respect to T-lines
1110 2000-11-27 Kevin L. Mitchell <klmitch@mit.edu>
1112 * ircd/s_stats.c: comment out report_motd_list and include a
1113 reference to motd_report()
1115 * ircd/s_conf.c: rip out the old MOTD manipulation functions; call
1116 motd_add() from the conf parser; call motd_clear() from the rehash
1117 routine; remove the no longer needed memory clearing and reloading
1118 stuff from the rehash service routine
1120 * ircd/motd.c: loads new API, including static internal functions
1121 to do allocation/deallocation, etc.
1123 * ircd/m_stats.c: use new motd_report() instead of
1126 * ircd/m_motd.c: use new syntax for motd_send()
1128 * ircd/ircd.c: use new motd_init() function
1130 * ircd/Makefile.in (SRC): forgot to add motd.c to SRC in
1131 Makefile.(in); also ran make depend
1133 * include/motd.h: don't need config.h, but now do need time.h;
1134 define new structures and constants; redefine old API and define
1137 2000-11-22 Kevin L. Mitchell <klmitch@mit.edu>
1139 * ircd/s_user.c (register_user): use motd_signon() instead of
1140 calling m_motd; much cleaner this way
1142 * ircd/motd.c: write the new motd_* stuff to make MOTD handling
1145 * ircd/m_motd.c: rewrite m{,s}_motd to call out to new motd_*
1148 * include/motd.h: define new MOTD API stuff
1150 2000-11-20 Kevin L. Mitchell <klmitch@mit.edu>
1152 * ircd/ircd_reply.c (protocol_violation): rewrite
1153 protocol_violation so it'll actually work
1155 oh, yeah, use %s -> cptr->name, instead of %c -> cptr, so we get
1156 the client's real name in there.
1158 * ircd/m_motd.c (m_motd): Iso's addition of get_client_class(sptr)
1159 resulted in core dumps if NODEFAULTMOTD is defined, because m_motd
1160 gets called from register_user with a NULL sptr. This is probably
1161 a design problem, but this bandaid will do for now...
1163 2000-11-19 Isomer <isomer@coders.net>
1164 * ircd/ircd_reply.c: added 'protocol_violation', thus alerting us
1165 to problems in the server<->server protocol.
1167 * ircd/m_connect.c: allow remote connects with a port of '0'
1168 meaning to use the port in the config file.
1170 * ircd/m_create.c: Enable hacking protection, lets see how far we
1173 * ircd/m_error.c: The RFC says never accept ERROR from unreg'd
1174 clients, so we don't any more.
1176 * ircd/m_kill.c: The kill path is now made up of numnicks of servers,
1177 and the user@host is displayed of the victim.
1179 * ircd/m_map.c: reloaded 'dump_map'.
1181 * ircd/m_trace.c: allow per class T:
1183 * ircd/m_stats.c: allow local opers /remote stats anywhere on the 'net.
1185 2000-11-17 Isomer <isomer@coders.net>
1187 * ircd/m_topic.c: Fixed bug where we'd only send to clients topics
1188 that were the *same* instead of different. Oh the embarrasment!
1190 * ircd/IPcheck.c: Merged net's fix.
1192 2000-11-02 Kevin L. Mitchell <klmitch@mit.edu>
1194 * ircd/m_whois.c: remove compiler warning by adding a newline to
1197 * ircd/m_names.c: moved the flags up to s_user.h
1199 * ircd/m_join.c: call do_names instead of m_names; restructure
1200 ms_join to never transmute a JOIN into a CREATE, but use the TS in
1201 the JOIN (if present) to timestamp the channel
1203 * ircd/channel.c: send JOINs individually, instead of grouping
1204 them, so that we can send the channel's creation time
1206 * include/s_user.h: declare do_names()
1208 2000-10-30 Isomer <isomer@coders.net>
1209 * ircd/m_oper.c: Fixed warning
1211 2000-10-30 Isomer <isomer@coders.net>
1212 * ircd/m_oper.c: Fixed over agressive cut and no paste
1214 2000-10-30 Isomer <isomer@coders.net>
1216 * ircd/m_topic.c: Restructured, fixed bug where topics on local
1217 channels are propergated (I forget who pointed this out to me, but
1218 thanks anyway). Also to save bandwidth don't send the topic to
1219 users if the topic is already the same on the server (but still
1220 propergate to other servers). X/W's "autotopic" feature must
1221 chew a lot of bandwidth, hopefully this will help reduce this.
1223 * doc/rfc1459.rfc: Updated documentation on /topic.
1225 * ircd/listener.c: snotice warnings about failed accept()'s
1226 potentially warning admins that they're running out of fd's.
1228 * ircd/stats.c, ircd/class.c: Removed /stats v, added number of
1229 people in a class in /stats y
1231 * ircd/m_create.c: Checks for timewarp hacking and squit's
1232 evil servers. (currently disabled)
1235 2000-10-30 net <simms@lucida.qc.ca>
1237 * ircd/gline.c: Fixed various bugs Isomer left behind.
1239 2000-10-26 Kevin L. Mitchell <klmitch@mit.edu>
1241 * ircd/m_join.c (m_join): reply on attempt to join a BADCHANed
1242 channel is now ERR_BANNEDFROMCHAN instead of ERR_BADCHANNAME
1244 2000-10-24 Kevin L. Mitchell <klmitch@mit.edu>
1246 * ircd/channel.c: ok, now last mode rules; mode +ps will always
1247 result in +s (and won't send a mode if the channel is already +s);
1248 mode +sp will always result in +p; -n+n on a +n channel results in
1249 no mode change; -n+n on a -n channel results in a +n mode change;
1252 2000-10-23 Kevin L. Mitchell <klmitch@mit.edu>
1254 * ircd/channel.c: add "add" and "del" elements to ParseState to
1255 avoid not-too-pretty -p+s when +s is sufficient; fix a bug in
1256 mode_parse_limit that caused it to clear all channel modes
1257 prematurely; restructure mode_parse_mode to avoid calling
1258 modebuf_mode too early (ties in with first mentioned change);
1259 better logic for +p/+s mutual exclusivity; initialize "add" and
1260 "del" elements in mode_parse; send simple modes down to
1261 modebuf_mode after the loop in mode_parse
1263 2000-09-28 Greg Sikorski <gte@atomicrevs.demon.co.uk>
1264 * ircd/m_names.c: Fixed a non-lethal logic error that
1265 triggers an assert() in find_member_link while debugging.
1266 (Spotted by Maniac-).
1267 2000-09-19 Thomas Helvey <helveytw@home.com>
1268 * ircd/s_conf.c: move K:lines to their own list and data
1269 structures, add supporting code.
1270 * ircd/m_stats.c: cleanup stats processing a bit move
1271 kline listing code to a new function, haven't figured
1272 out where it goes yet tho'
1273 * ircd/s_stats.c: added K:line bulk lister
1274 * include/s_conf.h: added new DenyConf struct
1275 * *[ch]: fixeup code that depended on changes
1277 2000-09-17 Thomas Helvey <helveytw@home.com>
1278 * ircd/class.c: encapsulate class list
1279 * include/class.h: clean up classes
1280 * * fixup code that depended on changes
1282 2000-09-17 Thomas Helvey <helveytw@home.com>
1283 * ircd/s_conf.c: add me to local conf
1284 * include/s_conf.h: move CONF_ME macro to chkconf.c
1285 * ircd/s_bsd.c: cleanup initialization, allow virtual host
1286 to be changed by rehash
1288 2000-09-17 Thomas Helvey <helveytw@home.com>
1289 * include/class.h: add missing prototype
1290 * ircd/class.c: make argument to get_conf_class const
1292 2000-09-17 Thomas Helvey <helveytw@home.com>
1293 * ircd/*.c: merged in changes from 2.10.10.pl12, cleanup
1295 * ircd/*.h: merged in changes from 2.10.10.pl12, cleanup
1298 2000-09-16 Thomas Helvey <helveytw@home.com>
1299 * ircd/s_conf.c: add code for server struct
1300 * ircd/client.c: copy of class.c sort of, new file for client
1301 specific operations, will move things here as appropriate,
1302 currently only one function is exported from here.
1303 * ircd/*.c: general logic cleanups, convert negatives to
1304 positives in places.
1306 2000-09-16 Thomas Helvey <helveytw@home.com>
1307 * ircd/s_conf.c: add code for new crule data structs, strip quotes
1308 * ircd/crule.c: clean up scary casting a bit, type safety stuff
1309 * include/s_conf.h: add CRuleConf struct and support, remove
1311 * include/crule.h: type safety cleanups
1312 * ircd/*.c: fixup code that depended on stuff I changed
1314 2000-09-15 Thomas Helvey <helveytw@home.com>
1315 * ircd/s_conf.c: start adding code for new conf data structs, changed
1316 listeners, admin line, motd lines, class lines. Move validate_hostent
1317 to resolver. General mayhem.
1318 * include/s_conf.h: new data structs and accessors
1319 * ircd/res.c: move validate_hostent here, rewrite, use regular
1320 expression for validation.
1321 * doc/example.conf: update docs for port
1323 2000-09-14 Thomas Helvey <helveytw@home.com>
1324 * ircd/s_conf.c (conf_init): rewrite conf file parser, start to break
1325 up conf_init into managable chunks.
1326 * ircd/listener.c (set_listener_mask): fix logic bug core dump.
1327 * include/s_conf.h: add new data struct for local info (unwinding the mess).
1329 2000-09-13 Thomas Helvey <helveytw@home.com>
1330 * ircd/list.c: put Clients in free lists, pre-allocate MAXCONNECTIONS
1332 * ircd/list.c: put SLinks in free lists
1333 * ircd/channel.c: put Memberships in free lists
1334 * ircd/ircd.c: rearrange initializations a bit in main
1335 Note: With these changes, ircd NEVER frees Clients, SLinks or
1336 Memberships. It will also rarely need to allocate new
1337 ones during net bursts and other disruptions. This should
1338 cut down on memory fragmentation a bit as well.
1340 2000-08-30 Kevin L. Mitchell <klmitch@mit.edu>
1342 * ircd/m_names.c (do_names): pull-up from do_names fix in
1345 2000-07-15 Perry Lorier <Isomer@coders.net>
1346 * various: IP only k:'s and G:'s now do bit tests instead of two(!)
1347 match()'s. Major Major cpu savings. Also speed up the
1348 other case slightly. As a side effect you can now
1349 k/Gline *@10.0.0.0/8. I'll do bans tomorrow, it's nearing
1352 2000-07-15 Perry Lorier <Isomer@coders.net>
1353 * various: Fixed warnings after compiling on an alpha.
1354 2000-07-09 Perry Lorier <Isomer@coders.net>
1355 * doc/ircd.8: Applied grammitical changes by Liandrin, applied
1356 changes suggested by various other people.
1357 * ircd/IPcheck.c: More bug fixes. Current problem appears to be
1358 that it gets a corrupt entry somehow.
1359 2000-07-09 Greg Sikorski <gte@atomicrevs.demon.co.uk>
1360 * ircd/m_oper.c: Clean up compiler warning.
1362 2000-07-08 Perry Lorier <Isomer@coders.net>
1363 * doc/ircd.8: Updated the documentation, it was slightly out of date
1364 being updated around 1989.
1365 * ircd/m_whois.c: Rewrote for clarity, and probably a bit more speed.
1366 fixed a few minor glitches.
1367 * doc/rfc1459.unet: Updated.
1368 * ircd/IPcheck.c: Fixed more bugs.
1369 * ircd/s_bsd.c: We now keep track of servers we've conected.
1371 2000-07-02 Perry Lorier <Isomer@coders.net>
1372 * ircd/s_misc.c: Fixed remote IPcheck bug. Ok, I'm a moron, so sue
1373 me. Thanks to Hektik, thanks thanks thanks thanks
1374 thanks thanks thanks thanks thank thanks thank thanks
1376 2000-07-01 Perry Lorier <Isomer@coders.net>
1377 * ircd/s_conf.c: "Fixed" the "bug" where people would "evade" K:'s.
1378 * ircd/s_conf.c, include/IPcheck.h: Fixed compile warnings.
1380 2000-06-22 Perry Lorier <Isomer@coders.net>
1381 * ircd/IPcheck.c: Large chunks redone.
1382 * ircd/s_conf.c: Changes due to IPcheck - ONE nolonger supported,
1383 single AND double digit limits are allowed now.
1384 * misc other: Changes to IPcheck.
1386 2000-06-30 Perry Lorier <Isomer@coders.net>
1387 * ircd/ircd.c: Fix command line parameter bugs.
1389 2000-06-30 Perry Lorier <Isomer@coders.net>
1390 * ircd/m_kill.c: Fixed bug with LOCAL_KILL_ONLY
1391 * ircd/m_nick.c: Tidied things up.
1393 2000-06-12 Joseph Bongaarts <foxxe@trms.com>
1394 * ircd/m_stats.c: Iso forgot mo_stats when he added /stats v
1396 2000-05-29 Perry Lorier <Isomer@coders.net>
1397 * ircd/m_stats.c: add /stats v to do only the last part of the /trace
1398 * ircd/IPcheck.c: Cosmetic change, if we meddle with it enough do
1399 you think it'll get bored and fix itself?
1401 2000-06-09 Greg Sikorski <gte@atomicrevs.demon.co.uk>
1403 * ircd/m_names.c: Clean up compiler warnings.
1405 2000-06-09 Kevin L. Mitchell <klmitch@mit.edu>
1407 * ircd/channel.c (mode_parse_client): don't send warning if
1408 there's not enough arguments for a +/-o/v; means the habit of
1409 doing "/mode #channel +oooooo bob" doesn't result in a bunch of
1412 2000-06-04 Greg Sikorski <gte@atomicrevs.demon.co.uk>
1414 * ircd/m_names.c: Re-factor code to remove unneccessary
1415 GlobalChannelList iteration every time someone joins a channel.
1417 2000-06-02 Kevin L. Mitchell <klmitch@mit.edu>
1419 * ircd/s_user.c: add struct Gline * argument to register_user;
1420 look up global glines and repropagate them if necessary; send
1421 acknowledgement of gline to remote servers when registering users
1423 * ircd/s_serv.c (server_estab): don't send acknowledgement of
1424 local glines to remote servers; do send gline acknowledgement of
1427 * ircd/m_user.c (m_user): pass new struct Gline * argument to
1430 * ircd/m_pong.c: pass new struct Gline * argument to register_user
1432 * ircd/m_nick.c (ms_nick): document protocol change
1434 * ircd/gline.c: support GLINE_LASTMOD
1436 * include/s_user.h: add struct Gline * argument to register_user
1438 * include/gline.h: add GLINE_LASTMOD to look up non-zero lastmods
1440 * ircd/s_conf.c (find_kill): add unsigned int argument to
1443 * ircd/gline.c: add GLINE_GLOBAL to lookup or find only global
1444 glines; add unsigned int argument to gline_lookup()
1446 * include/gline.h: add GLINE_GLOBAL flag; add unsigned int
1447 argument to gline_lookup()
1449 * ircd/m_server.c: Resend jupe only when there is no %<lastmod>
1450 parameter, or when it falls out of bounds: see comments prior to
1451 call to jupe_resend(); call server_estab with struct Jupe
1452 parameter, so that we place the appropriate %<lastmod> in the
1455 * ircd/s_serv.c (server_estab): send %<lastmod> for introduced
1456 server, as well as for servers when we're sending the BURST
1458 * include/s_serv.h: add a struct Jupe * to the arguments for
1459 server_estab() so that we can send the appropriate lastmod
1462 * ircd/m_gline.c (ms_gline): actually, this should be the
1463 slightest bit more efficient...
1465 * ircd/m_jupe.c (ms_jupe): actually, this should be the slightest
1466 bit more efficient...
1468 * ircd/m_gline.c (ms_gline): inhibit GLINE processing resends
1471 * ircd/m_jupe.c (ms_jupe): inhibit JUPE processing resends during
1474 * ircd/channel.c (joinbuf_join): really remove user from local
1477 2000-05-29 Perry Lorier <Isomer@coders.net>
1478 * ircd/m_names.c: Removed redundant space.
1479 * ircd/s_bsd.c: Fixed incorrect syntax on ERROR line.
1481 2000-05-18 Kevin L. Mitchell <klmitch@mit.edu>
1483 * ircd/m_burst.c (ms_burst): er...that should have been a ",", not
1486 2000-05-04 Kevin L. Mitchell <klmitch@mit.edu>
1488 * ircd/channel.c: replace bogus assertions with returns, which is
1489 logically correct; only wipe out limit/key if they were originally
1490 set in the first place; remove user from channel when doing a
1491 PARTALL; only send MODE +o for user CREATEing channel if user is
1492 not MyUser--CREATE will only be used if the channel did not
1493 originally exist, therefore we can assume no one local is on the
1494 channel anyway, and we don't exactly need for the user to see an
1495 explicit +o for themselves
1497 * doc/readme.gline: describe the syntax of the GLINE command
1499 * doc/readme.jupe: update to reflect a couple of changes to JUPE
1501 * ircd/gline.c: don't propagate local changes
1503 * ircd/jupe.c: don't propagate local changes
1505 * ircd/m_gline.c (mo_gline): force local flag when deactivating
1506 glines with 0 lastmod
1508 * ircd/gline.c (gline_deactivate): G-lines with zero lastmod time
1509 are now removed instead of being deactivated
1511 * ircd/m_gline.c (ms_gline): make G-lines of the form "GLINE *
1512 -<mask>" be accepted
1514 * ircd/channel.c (send_channel_modes): deal with one of the last
1517 * ircd/m_burst.c (ms_burst): debugged ban processing; removed
1520 * ircd/channel.c (modebuf_extract): remove debugging
1521 sendto_opmask_butone calls
1523 2000-05-03 Kevin L. Mitchell <klmitch@mit.edu>
1525 * ircd/channel.c: support a couple of new flags to support using
1526 mode_parse; fix some bugs with 0 struct ModeBuf *; implementation
1527 of modebuf_extract to extract added flags for use by ms_burst
1529 * include/channel.h: a couple of new flags to support using
1530 mode_parse inside ms_burst
1532 * ircd/m_burst.c (ms_burst): brand new implementation of BURST
1534 * ircd/m_endburst.c: add loop to processing of end_of_burst to
1535 free empty channels after the BURST is over.
1537 * ircd/m_server.c: convert to use new send.c functions--I wanted
1538 to rewrite it from scratch, but the logic's pretty complex; I may
1539 still rewrite it, though...
1541 2000-05-02 Thomas Helvey <tomh@inxpress.net>
1543 * ircd/ircd.c: fix broken header include ordering
1545 2000-05-02 Thomas Helvey <tomh@inxpress.net>
1547 * ircd/IPcheck.c: cleanups for ZenShadow's cleanups
1548 review emailed privately
1550 * include/IPcheck.h: removed unneeded include
1552 2000-05-02 Kevin L. Mitchell <klmitch@mit.edu>
1554 * ircd/s_user.c (hunt_server): throw in a comment so I know what
1555 the sendto_one is for
1557 * include/querycmds.h (Count_unknownbecomesclient): convert to
1558 sendto_opmask_butone
1560 * ircd/send.c: start removing dead code
1562 * include/send.h: start removing dead code
1564 * ircd/m_rping.c: convert to sendcmdto_one / send_reply /
1567 * ircd/m_rpong.c: convert to sendcmdto_one / send_reply
1569 2000-05-01 Kevin L. Mitchell <klmitch@mit.edu>
1571 * ircd/m_stats.c: convert to sendcmdto_one / send_reply
1573 * ircd/m_kick.c: Completely reimplement m_kick
1575 * ircd/channel.c: send_user_joins removed; it was dead code,
1578 2000-05-01 Perry Lorier <isomer@coders.net>
1579 * ircd/m_invite.c: Fix for the rest of m_invite.c, and again.
1580 * ircd/channels.c: My fix for the part problem. Untested, probably
1581 won't work. Can't be much worse than the current problem.
1582 it'll either work or core, take your pick.
1585 2000-04-30 Perry Lorier <isomer@coders.net>
1586 * config/config-sh.in: Fix for CONNEXIT
1587 * ircd/s_{user,misc}.c: Fix for CONNEXIT
1588 * ircd/m_invite.c: Fix for incorrectly numnickified invite.
1589 (Kev: Want to come talk to me about this?)
1591 2000-04-30 Steven M. Doyle <steven@doyle.net>
1593 - general cleanups and readability enhancements
1594 - rewrite of setuid/chroot code.
1595 - server will no longer run as root
1596 - -DPROFIL compile option removed
1597 - Fixed IPcheck API calls
1599 * config/config-sh.in
1600 - Fixed up chroot compile options
1601 - Added options for debug and profile compiles
1603 * config/gen.ircd.Makefile
1604 - Support for new debug/profile options
1607 - Support for new debug/profile options
1609 * ircd/ircd_signal.c
1613 - Removed old API prototypes, added new ones
1616 - Readability cleanups (well, I -think-...)
1617 - Changed IPRegistryEntry.last_connect to a time_t. The previously
1618 used unsigned short was probably causing interesting things after
1619 a client had been connected longer than about 65,535 seconds...
1620 - Removed old API functions.
1623 - Removed IPcheck.h include
1625 * Additionally modified IPcheck API calls in:
1635 2000-04-30 Perry Lorier <isomer@coders.net>
1636 * ircd/s_bsd.c: Sigh. :)
1637 * ircd/m_mode.c: fix for modeless channels by poptix.
1639 2000-04-29 Kevin L. Mitchell <klmitch@mit.edu>
1641 * ircd/m_join.c: reimplement JOIN in terms of struct JoinBuf
1643 * ircd/channel.c (clean_channelname): make clean_channelname also
1644 truncate long channel names
1646 2000-04-28 Kevin L. Mitchell <klmitch@mit.edu>
1648 * ircd/m_create.c: reimplement CREATE in terms of struct JoinBuf
1650 * ircd/channel.c: implemented joinbuf_init, joinbuf_join,
1653 * include/channel.h: definitions and declarations for the struct
1656 2000-04-29 Perry Lorier <isomer@coders.net>
1657 * ircd/s_bsd.c: Ok, so I thought I compiled and tested this...
1659 2000-04-29 Perry Lorier <isomer@coders.net>
1660 * ircd/s_bsd.c: Add debugging code to IPcheck
1662 2000-04-28 Kevin L. Mitchell <klmitch@mit.edu>
1664 * include/ircd_reply.h (SND_EXPLICIT): use instead of RPL_EXPLICIT
1666 * ircd/ircd_reply.c (send_reply): use SND_EXPLICIT instead of
1669 * ircd/m_userhost.c (m_userhost): add a dead code comment
1671 * ircd/m_desynch.c: forgot one...
1673 * ircd/m_rehash.c (mo_rehash): er, duplicates :)
1675 * ircd/m_proto.c (proto_send_supported): just change a comment so
1676 it doesn't show up in my scans
1678 * ircd/ircd_reply.c (send_reply): fix a slight bug...
1680 * ircd/s_numeric.c (do_numeric): use new sendcmdto_* functions,
1683 * ircd/parse.c (parse_server): argument wrangling to make
1684 processing in do_numeric a little easier to deal with
1686 * ircd/s_serv.c (server_estab): SERVER should come from
1687 acptr->serv->up, not &me
1689 * ircd/m_lusers.c: accidentally left out sptr for a %C
1691 * ircd/send.c: hack to support doing wallchops...
1693 * ircd/m_whowas.c: convert to new send functions
1695 * ircd/m_whois.c: convert to new send functions
1697 * ircd/m_who.c: convert to new send functions
1699 * ircd/m_wallops.c: convert to new send functions
1701 * ircd/m_wallchops.c: convert to new send functions
1703 * ircd/m_version.c: convert to new send functions
1705 * ircd/m_userip.c: convert to new send functions
1707 * ircd/m_userhost.c: convert to new send functions
1709 * ircd/m_uping.c: convert to new send functions
1711 * ircd/m_trace.c: convert to new send functions
1713 * ircd/m_topic.c: convert to new send functions
1715 * ircd/m_time.c: convert to new send functions
1717 * ircd/m_squit.c: convert to new send functions
1719 * ircd/m_silence.c: convert to new send functions
1721 * ircd/m_settime.c: convert to new send functions
1723 * ircd/m_restart.c: convert to new send functions
1725 * ircd/m_rehash.c: convert to new send functions
1727 * ircd/m_privmsg.c: convert to new send functions
1729 * ircd/m_pong.c: convert to new send functions
1731 * ircd/m_ping.c: convert to new send functions
1733 * ircd/m_pass.c: convert to new send functions
1735 * ircd/m_opmode.c: convert to new send functions
1737 * ircd/m_oper.c: convert to new send functions
1739 * ircd/m_notice.c: convert to new send functions
1741 * ircd/m_nick.c: convert to new send functions
1743 * ircd/m_names.c: convert to new send functions
1745 * ircd/m_motd.c: convert to new send functions
1747 * ircd/m_mode.c: convert to new send functions
1749 * ircd/m_map.c: convert to new send functions
1751 * ircd/m_lusers.c: convert to new send functions
1753 * ircd/m_list.c: convert to new send functions
1755 * ircd/m_links.c: convert to new send functions
1757 * ircd/m_kill.c: convert to new send functions
1759 * ircd/m_jupe.c: convert to new send functions
1761 * ircd/m_invite.c: convert to new send functions
1763 * ircd/m_info.c: convert to new send functions
1765 * ircd/m_help.c: convert to new send functions
1767 * ircd/m_gline.c: convert to new send functions
1769 * ircd/m_error.c: convert to new send functions
1771 * ircd/m_endburst.c: convert to new send functions
1773 * ircd/m_die.c: convert to new send functions
1775 * ircd/m_destruct.c: convert to new send functions
1777 * ircd/m_defaults.c: convert to new send functions
1779 * ircd/m_connect.c: convert to new send functions
1781 2000-04-28 Perry Lorier <isomer@coders.net>
1782 * RELEASE.NOTES: Describe a few more undocumented features.
1783 * config/config-sh.in: change the default paths for logging
1784 and the recommended number of channels.
1785 * include/supported.h: Rearrange slightly, added CHANTYPE's
1787 2000-04-27 Kevin L. Mitchell <klmitch@mit.edu>
1789 * ircd/m_close.c: convert to send_reply
1791 * ircd/m_clearmode.c: convert to send_reply, sendcmdto_serv_butone
1793 * ircd/m_away.c: convert to send_reply and sendcmdto_serv_butone
1795 * ircd/m_admin.c: convert to send_reply and hunt_server_cmd
1797 * ircd/s_user.c (hunt_server_cmd): new hunt_server replacement
1798 that takes cmd and tok arguments, etc. NOTE: THIS IMPLEMENTATION
1799 HAS A MAJOR HACK!!! The whole hunt_server architecture should be
1800 carefully rethought...
1802 * ircd/s_stats.c (hunt_stats): use new hunt_server_cmd
1804 * include/s_user.h: hunt_server_cmd -- replacement for hunt_server
1806 * ircd/s_misc.c: *sigh* 2.10.10 doesn't support squitting by
1807 numeric nick; therefore, we have to use the server name
1809 * ircd/m_squit.c (ms_squit): allow to squit by server numeric nick
1811 * ircd/send.c: fix minor bugs
1813 * ircd/s_user.c (check_target_limit): mark dead code so I filter
1816 * ircd/s_serv.c (exit_new_server): mark dead code so I filter it
1819 * ircd/parse.c: mark dead code so I filter it when I grep
1821 * ircd/map.c: mark dead code so I filter it when I grep
1823 * ircd/ircd.c: mark dead code so I filter it when I grep
1825 * ircd/ircd_relay.c: convert over to new sendcmdto_*, send_reply
1828 * ircd/channel.c: mark dead code so I filter it when I grep
1830 * ircd/s_stats.c: use send_reply instead of sendto_one w/rpl_str;
1831 hope I'm not stepping on toes...
1833 * ircd/s_conf.c: more sendto_opmask_butone / send_reply
1834 conversions; use ircd_snprintf in a couple of cases to negate the
1835 possibility of buffer overflow
1837 2000-04-26 Kevin L. Mitchell <klmitch@mit.edu>
1839 * ircd/channel.c: convert as much as possible to new send
1842 * ircd/send.c (sendcmdto_common_channels): fix a subtle bug --
1843 test member->user->from->fd, not from->fd
1845 * ircd/gline.c (gline_add): go ahead and add badchans; we just
1846 won't look for them in m_gline; this way, they always work...
1848 * ircd/jupe.c: use ircd_vsnprintf conversion specifiers
1850 * ircd/gline.c: since write_log now uses ircd_vsnprintf, use
1851 ircd_vsnprintf conversion specifiers
1853 * ircd/support.c (write_log): use ircd_vsnprintf for write_log, so
1854 I have my conversion specifiers
1856 * ircd/gline.c (do_gline): use send_reply for ERR_YOUREBANNEDCREEP
1858 * ircd/send.c (sendcmdto_flag_butone): explicitly send WALLOPS to
1861 * ircd/s_serv.c (exit_new_server): rewrite exit_new_server to be a
1862 little less brain-dead
1864 * ircd/s_misc.c: use sendcmdto_one, sendrawto_one, and send_reply
1866 * ircd/s_debug.c: use send_reply with RPL_EXPLICIT for
1869 * ircd/res.c (cres_mem): use send_reply with RPL_EXPLICIT for
1872 * ircd/list.c (send_listinfo): use send_reply with RPL_EXPLICIT
1875 * ircd/m_pong.c: use RPL_EXPLICIT for ERR_BADPING
1877 * ircd/ircd.c: use RPL_EXPLICIT for ERR_BADPING
1879 * ircd/s_user.c (register_user): use RPL_EXPLICIT for
1882 * ircd/ircd_reply.c (send_reply): support RPL_EXPLICIT
1884 * include/ircd_reply.h (RPL_EXPLICIT): somewhat of a hack to mark
1885 a numeric as needing to use an explicit pattern, which will be the
1886 first argument in the variable argument list
1888 * ircd/s_user.c: use sendrawto_one instead of sendto_one to send
1889 non-prefixed nospoof PING
1891 * ircd/s_bsd.c: use sendrawto_one instead of sendto_one to send
1892 non-prefixed SERVER login
1894 * ircd/ircd.c (check_pings): fix last sendto_one calls (except for
1895 a numeric usage further up)
1897 * include/send.h: declare sendrawto_one
1899 * ircd/send.c (sendrawto_one): new function to use ONLY for
1900 non-prefixed commands, like PING to client, or PASS/SERVER on
1903 2000-04-25 Kevin L. Mitchell <klmitch@mit.edu>
1905 * ircd/ircd_snprintf.c (doprintf): implement %H for possible
1906 future expansion (channel numerics?)
1908 * include/ircd_snprintf.h: added documentation to # to explain use
1909 with %C; added documentation for : to explain use with %C; added
1910 documentation for %H for channels
1912 * ircd/whocmds.c: use send_reply
1914 * ircd/userload.c: use sendcmdto_one
1916 * ircd/uping.c: use sendcmdto_one
1918 * ircd/send.c: use new flags to %C format string; ':' prefixes
1919 client name with a colon for local connects, '#' uses
1920 nick!user@host form for local connects
1922 * ircd/s_user.c: use send_reply, sendto_opmask_butone,
1923 sendcmdto_one, sendcmdto_serv_butone, sendcmdto_flag_butone
1925 * ircd/s_serv.c: use sendcmdto_one, sendto_opmask_butone
1927 * ircd/s_bsd.c: use sendto_opmask_butone, send_reply,
1930 * ircd/s_auth.c: use sendto_opmask_butone
1932 * ircd/res.c: use sendcmdto_one
1934 * ircd/ircd_snprintf.c (doprintf): minor bug fixes and some
1935 debugging assertions
1937 2000-04-24 Kevin L. Mitchell <klmitch@mit.edu>
1939 * ircd/support.c: dumpcore is no longer used, so get rid of it
1941 * ircd/parse.c: use send_reply, sendcmdto_one
1943 * ircd/map.c: use send_reply
1945 * ircd/listener.c: use send_reply
1947 * ircd/jupe.c: use sendto_opmask_butone, send_reply
1949 * ircd/ircd_reply.c: use send_reply
1951 * ircd/ircd.c: use sendto_opmask_butone
1953 * ircd/gline.c: use sendto_opmask_butone, send_reply
1955 * ircd/ircd_snprintf.c (doprintf): make it deal with incompletely
1956 registered clients; make FLAG_ALT print nick!user@host; make
1957 FLAG_COLON print :blah
1959 * ircd/class.c (report_classes): use send_reply instead of
1962 * ircd/hash.c (m_hash): replace sendto_one with sendcmdto_one
1964 * ircd/IPcheck.c (ip_registry_connect_succeeded): replace
1965 sendto_one with sendcmdto_one
1967 2000-04-21 Kevin L. Mitchell <klmitch@mit.edu>
1969 * ircd/send.c: clean up logic in sendcmdto_channel_butone; use
1970 MyConnect() instead of IsServer() in sendcmdto_flag_butone; define
1971 sendcmdto_match_butone
1973 * include/send.h: declare sendcmdto_match_butone
1975 2000-04-20 Kevin L. Mitchell <klmitch@mit.edu>
1977 * ircd/jupe.c: update to use send_reply()
1979 * ircd/gline.c: update to use send_reply()
1981 * include/ircd_reply.h: declare send_reply
1983 * ircd/ircd_reply.c (send_reply): send_error_to_client, but for
1984 replies; uses ircd_snprintf
1986 * ircd/send.c: added comments to redirect searchers to appropriate
1987 sendcmdto_* function; moved new functions to end of file; added
1988 explanatory comments; reordered arguments; defined new functions
1991 * ircd/m_jupe.c: reorder arguments to sendcmdto_* functions
1993 * ircd/m_gline.c: reorder arguments to sendcmdto_* functions
1995 * ircd/jupe.c: reorder arguments to sendcmdto_* functions
1997 * ircd/gline.c: reorder arguments to sendcmdto_* functions
1999 * include/send.h: reorder arguments, add explanatory comments,
2000 declare new functions sendcmdto_flag_butone, sendto_opmask_butone,
2001 and vsendto_opmask_butone
2003 2000-04-19 Kevin L. Mitchell <klmitch@mit.edu>
2005 * ircd/send.c: define sendcmdto_channel_butone, wrote a simplified
2006 vsendto_op_mask that uses '*' instead of the receiving client
2009 * include/send.h: declare sendcmdto_channel_butone; takes a skip
2010 argument that allows you to skip (or not to skip) deaf users,
2011 users behind bursting servers, and non channel operators
2013 2000-04-17 Kevin L. Mitchell <klmitch@mit.edu>
2015 * ircd/send.c: new sendcmdto_channel_butserv -- note that old
2016 sendto_channel_butserv has a subtle bug; also wrote
2017 sendcmdto_common_channels.
2019 * include/send.h: declare new sendcmdto_* functions
2021 * ircd/jupe.c: support local deactivations of jupes
2023 * ircd/gline.c: support local deactivations of glines
2025 * include/jupe.h: JUPE_LDEACT allows jupes to be locally
2026 deactivated; if they aren't locally deactivated, then it slaves to
2027 the net-wide activation status; JupeIsRemActive() tests only
2028 whether the jupe is active everywhere else
2030 * include/gline.h: GLINE_LDEACT allows glines to be locally
2031 deactivated; if they aren't locally deactivated, then it slaves to
2032 the net-wide activation status; GlineIsRemActive() tests only
2033 whether the gline is active everywhere else
2035 * ircd/gline.c: detect overlapping G-lines; if an existing, wider
2036 gline expires after the new one will, we drop the new one,
2037 otherwise we add the G-line after that one (so the wide one will
2038 apply first); if the new one contains an existing G-line and if it
2039 will expire after the existing one, we drop the existing one to
2042 * ircd/m_gline.c (mo_gline): opers could issue remote local
2043 glines when CONFIG_OPERCMDS was off; fixed
2045 2000-04-16 Kevin L. Mitchell <klmitch@mit.edu>
2047 * ircd/m_jupe.c (mo_jupe): allow target argument to be dropped if
2048 this is a local JUPE
2050 * ircd/gline.c: add flags argument to gline_activate and
2051 gline_deactivate for future expansion
2053 * ircd/m_gline.c: pass flags to gline_activate and
2056 * include/gline.h: add flags argument to gline_activate and
2059 * ircd/jupe.c: add flags argument to jupe_activate and
2060 jupe_deactivate for future expansion
2062 * include/jupe.h: add flags argument to jupe_activate and
2065 * ircd/m_jupe.c: pass a flags argument to jupe_add instead of
2066 local, active; pass flags to jupe_activate and jupe_deactivate
2068 * include/gline.h: remove dead code
2070 * ircd/gline.c: make gline expire times relative to CurrentTime,
2071 since that should be monotonically increasing, instead of
2072 TStime(), which can be set backwards, and which can therefore
2073 cause an expire time to increase; make local glines be removed
2074 instead of just deactivated; don't let gline_find() look for
2075 user@host glines if the mask being looked up is a channel mask
2077 * ircd/send.c (vsendcmdto_one): forgot to account for the case
2078 where origin is a server and destination is a user
2080 * ircd/jupe.c: make jupe expire times relative to CurrentTime,
2081 since that should be monotonically increasing, instead of
2082 TStime(), which can be set backwards, and which can therefore
2083 cause an expire time to increase; make local jupes be removed
2084 instead of just deactivated
2086 * ircd/ircd_snprintf.c: d'oh, thanks for catching that; short for
2087 limit is fine. any other warnings I should know about?
2089 2000-04-15 Thomas Helvey <tomh@inxpress.net>
2091 * ircd/*.c: const correctness and type safety cleanups to
2092 get code to compile with C++ compiler. Still has
2093 signed/unsigned comparison warnings.
2095 2000-04-15 Greg Sikorski <gte@atomicrevs.demon.co.uk>
2097 * ircd/userload.c: change <sys/time.h> include to <time.h> for
2100 2000-04-14 Kevin L. Mitchell <klmitch@mit.edu>
2102 * ircd/m_gline.c (mo_gline): d'oh, target isn't a numeric; use %C
2103 and convert acptr...
2105 * ircd/s_user.c: move gline_lookup function call into
2106 register_user, where it'll have a username to lookup!
2108 * ircd/m_gline.c: modify to utilize new sendcmdto_* series of
2109 functions; also stuff send_error_to_client into return clauses
2111 * ircd/m_jupe.c: modify to utilize new sendcmdto_* series of
2112 functions; also use send_error_to_client where that makes sense
2114 * ircd/jupe.c: modify to utilize new sendcmdto_* series of
2115 functions; also use send_error_to_client where that makes sense
2117 * ircd/gline.c: modify to utilize new sendcmdto_* series of
2118 functions; also fix gline_lookup() to deal properly with remote
2119 clients--boy, do struct Client and struct User need to be cleaned
2122 * ircd/ircd_snprintf.c (doprintf): a dest of &me is a server,
2125 * ircd/send.c: wrote sendcmdto_one(), vsendcmdto_one(), and
2126 sendcmdto_serv_butone(), all utilizing the %v conversion of
2129 * include/send.h: define IRC_BUFSIZE, max size of a message;
2130 declare sendcmdto_one(), vsendcmdto_one(), and
2131 sendcmdto_serv_butone()
2133 * include/msg.h: define all the CMD_* constants needed to utilize
2134 the new sendcmdto_* series of functions
2136 * ircd/Makefile.in (SRC): list ircd_snprintf.c; run make depend
2138 * ircd/gline.c: remove old, dead code.
2140 * ircd/m_gline.c (mo_gline): disallow setting of global G-lines
2141 unless CONFIG_OPERCMDS is enabled; disallow listing of all G-lines
2142 (don't advertise proxies); remove dead code
2144 * ircd/parse.c: oper handler for JUPE only lists jupes unless
2145 CONFIG_OPERCMDS is enabled
2147 * ircd/m_jupe.c (mo_jupe): don't compile mo_jupe() if
2148 CONFIG_OPERCMDS is not enabled; we'll disable it in parse.c
2150 * ircd/m_opmode.c (mo_opmode): if CONFIG_OPERCMDS is not enabled,
2151 always return ERR_DISABLED
2153 * ircd/m_clearmode.c (mo_clearmode): if CONFIG_OPERCMDS is not
2154 enabled, always return ERR_DISABLED
2156 * ircd/s_err.c: add error message to indicate disabled commands
2158 * include/numeric.h (ERR_DISABLED): to indicate disabled commands
2160 * doc/Configure.help: add documentation for CONFIG_OPERCMDS
2162 * config/config-sh.in: add CONFIG_OPERCMDS, default both it and
2163 CONFIG_NEW_MODE to 'y' for now
2165 * ircd/gline.c (gline_list): fix a minor formatting bogon
2167 * BUGS: since I fixed that bug, might as well mark it fixed.
2169 * ircd/m_join.c: look up badchans with GLINE_EXACT
2171 * ircd/m_gline.c: fix parc count problems; look up existing
2172 G-lines with GLINE_EXACT; only set new lastmod when
2173 activating/deactivating existing glines if old lastmod was not 0
2175 * ircd/gline.c: forgot to copy the gline reason over; don't
2176 propagate a gline with 0 lastmod if origin is user; add
2177 GLINE_EXACT to force exact matching of gline mask
2179 * ircd/ircd_snprintf.c (doprintf): forgot to deal with the zero
2182 * ircd/s_conf.c (find_kill): gline_find() takes a char *userhost,
2183 but gline_lookup() actually takes a client--d'oh.
2185 2000-04-13 Thomas Helvey <tomh@inxpress.net>
2186 * ircd/IPcheck.c: Back port BLMet's bugfix from 2.10.10
2188 2000-04-13 Greg Sikorski <gte@atomicrevs.demon.co.uk>
2190 * ircd/whocmds.c: Don't make idle flag default in /who, to prevent:
2192 "Gte3 H*iwg Gte@212.49.240.217 :1 :0 I am the one that was."
2195 * ircd/whocmds.c: Change idle time calc from socket idle to user
2198 2000-04-13 Kevin L. Mitchell <klmitch@mit.edu>
2200 * config/aclocal.m4 (unet_CHECK_TYPE_SIZES): check size of void *,
2201 too, for ircd_snprintf.c
2203 * include/ircd_snprintf.h: documentation for ircd_(v)snprintf, in
2204 comments; mostly descended from the Linux manpage for printf, but
2205 also documenting the extensions.
2207 * ircd/ircd_snprintf.c: NULL dest is equivalent to going to a
2208 client; make 'q' be the same as 'L'; remove __inline__; only
2209 define EXTENSION if HAVE_LONG_LONG is defined
2211 * include/handlers.h: declare m_gline()
2213 * ircd/parse.c: gline can be called by users, but it only lists
2216 * ircd/s_user.c (set_nick_name): resend gline if a remote server
2217 introduces a glined client
2219 * ircd/s_serv.c (server_estab): burst glines, too
2221 * ircd/gline.c: fix up all the expire times to be offsets;
2222 simplify gline_resend()
2224 * ircd/m_gline.c: begin coding replacements for ms_gline(),
2225 mo_gline(), and m_gline()
2227 * ircd/gline.c (gline_add): allow *@#channel to work correctly;
2228 also, prohibit local BADCHANs if LOCAL_BADCHAN not defined
2230 2000-04-13 Greg Sikorski <gte@atomicrevs.demon.co.uk>
2232 * tools/Bouncer/*: Add comments/documentation/tags.
2233 * tools/Bouncer/*: Add debug defines, make task fork().
2235 2000-04-12 Thomas Helvey <tomh@inxpress.net>
2236 * ircd/s_err.c: Cleanup s_err.c make one table so we
2237 don't have to do anything tricky to get an error string.
2239 2000-04-12 Greg Sikorski <gte@atomicrevs.demon.co.uk>
2240 * Add port bouncer for http (x/w)
2242 2000-04-12 Kevin L. Mitchell <klmitch@mit.edu>
2244 * ircd/s_conf.c (find_kill): replaced call to find_gline() with a
2245 call to gline_find(); also used GlineReason() instead of direct
2246 reference to structure member
2248 * ircd/m_join.c (m_join): replace bad_channel() calls with calls
2249 to gline_find(name, GLINE_BADCHAN), and also check to see if gline
2252 * ircd/channel.c: nothing seems to be called anywhere...
2254 * ircd/s_err.c: update a couple of replies to dovetail with new
2257 * ircd/gline.c: begin complete re-implementation of gline.c along
2258 the lines of the final design of jupe.c
2260 * include/gline.h: begin complete re-implementation of gline.c
2261 along the lines of the final design of jupe.c
2263 * ircd/channel.c (mode_process_clients): fix "Deop of +k user on
2264 %s by %s" message...
2266 * ircd/ircd_snprintf.c: my new snprintf()-like functions
2268 * include/ircd_snprintf.h: my new snprintf()-like functions
2270 2000-04-11 Thomas Helvey <tomh@inxpress.net>
2271 * ircd/IPcheck.c: removed old dead code
2272 * ircd/s_user.c (send_user_info): removed non-standard
2273 user not found message for userhost/userip
2275 2000-04-11 Greg Sikorski <gte@atomicrevs.demon.co.uk>
2277 * ircd/s_err.c: Added missing quotes to ERR_DONTCHEAT numeric.
2278 * doc/p10.html: Work on chapter 4.
2280 2000-04-10 Kevin L. Mitchell <klmitch@mit.edu>
2282 * ircd/channel.c (mode_parse_client): fix coredump on /mode
2283 #foobar +o nosuchnick
2285 2000-04-10 Perry Lorier <Isomer@coders.net>
2288 2000-04-09 Thomas Helvey <tomh@inxpress.net>
2289 * include/IPcheck.h: fix prototype
2290 * ircd/s_user.c: fix usage of IPcheck_remote_connect
2291 * ircd/IPcheck.c: removed unused args
2293 2000-04-09 Thomas Helvey <tomh@inxpress.net>
2294 * include/IPcheck.h: add proto for IPcheck_expire
2296 * ircd/IPcheck.c: Rewrote
2298 * ircd/ircd.c: Add IPcheck_expire to main message loop
2300 * ircd/s_user.c: Redo target hashing, refactor target code
2302 * include/numeric.h: Cleaned up numerics, added which ones are
2303 in use by other networks and what they are in use for.
2305 * ircd/channel.c: cleaned can_join(), allow anyone through anything
2306 if /invited, simplified the function. Opers overusing OPEROVERRIDE
2307 will get a message explaining to them not to cheat.
2309 * ircd/m_join.c: cleaned up the various join functions, should be
2310 a lot more efficient. Still needs work. Now assumes that s<->s
2311 won't send it a JOIN 0. Service coders - note this and tread with
2314 * ircd/m_stats.c: added Gte-'s stats doc patch.
2316 * ircd/m_version.c: /version now returns the 005 numeric as well.
2317 as requested by Liandrin.
2320 2000-04-07 Kevin L. Mitchell <klmitch@mit.edu>
2322 * ircd/m_clearmode.c: add include for support.h for write_log()
2324 * configure: move ircd/crypt/* to tools/*
2326 2000-04-06 Thomas Helvey <tomh@inxpress.net>
2327 * ircd/s_auth.c: Shorten auth connect timeout to 60 seconds
2328 set client host to server alias if connection from localhost
2330 2000-04-06 Perry Lorier <isomer@coders.net>
2331 * ircd/ircd.c: Fix core during pinging (oops)
2333 2000-04-06 Perry Lorier <isomer@coders.net>
2334 * ircd/send.c: fixed wrong ident being sent to channels bug.
2335 * include/numerics.h: Updated some of the numerics from other
2336 networks. Flagged some as 'unused' by undernet.
2338 2000-03-30 Perry Lorier <isomer@coders.net>
2339 * ircd/ircd.c: Lets see if this helps the ping problem at all.
2340 * ircd/whocmds.c, /doc/readme.who: Added %l specifier to get idle
2341 time for local clients. (as requested), extended who now returns all
2342 the flags (@+!) so you can tell the complete state of a client.
2344 2000-03-30 Thomas Helvey <tomh@inxpress.net>
2345 * m_rping.c m_rpong.c: add Gte's rping/rpong fixes
2347 2000-03-30 Perry Lorier <isomer@coders.net>
2348 * ircd/parse.c: oops, missed opers.
2350 2000-03-30 Perry Lorier <isomer@coders.net>
2351 * ircd/parse.c: fixed mystifying ping bug thats been plaguing us
2352 for so long. Remember: m_ping MUST be in the parse array. :)
2354 2000-03-30 Perry Lorier <isomer@coders.net>
2355 * ircd/ircd.c: test in check_pings was wrong. I move that we
2356 disallow cvs commit after 10pm localtime....
2358 2000-03-30 Perry Lorier <isomer@coders.net>
2359 * ircd/m_pong.c: Fix it for servers too.
2361 2000-03-30 Perry Lorier <isomer@coders.net>
2362 * ircd/m_pong.c: Fix ping timeout bugs
2364 2000-03-30 Perry Lorier <isomer@coders.net>
2365 * ircd/channel.c: Bans had CurrentTime in their when field instead
2368 2000-03-31 Thomas Helvey <tomh@ixpress.net>
2369 * ircd/numnicks.c (SetXYYCapacity): fix for extended
2372 2000-03-30 Perry Lorier <isomer@coders.net>
2373 * ircd/m_nick.c: send kills both ways so when we add nick change
2374 on collision we don't desync the network.
2376 * ircd/map.c: Fixup the map a bit more.
2378 2000-03-31 Kevin L. Mitchell <klmitch@mit.edu>
2380 * ircd/m_clearmode.c (do_clearmode): Log the CLEARMODE to OPATH
2382 * ircd/m_opmode.c: Log the mode changes to OPATH
2384 * ircd/channel.c (modebuf_flush_int): Log the mode changes to
2387 * include/channel.h (MODEBUF_DEST_LOG): Log the mode changes to
2390 * doc/Configure.help: help text for CONFIG_LOG_OPMODE / OPATH
2392 * config/config-sh.in: added OPATH for opmode log file
2394 * ircd/m_clearmode.c (do_clearmode): updated uses of
2395 modebuf_mode_string() for the new usage
2397 * ircd/channel.c: added flag MODE_FREE and an int argument to
2398 modebuf_mode_string() to indicate that the string must be free'd;
2399 updated calls to modebuf_mode_string() for the new usage; called
2400 collapse(pretty_mask()) on the ban string and use allocated memory
2401 for it; added ban list length accounting; fixed a number of small
2402 bugs in ban processing
2404 * include/channel.h: added flag MODE_FREE and an int argument to
2405 modebuf_mode_string() to indicate that the string must be free'd
2407 * ircd/m_clearmode.c (do_clearmode): made sure clearmode removed
2408 keys and limits that are set
2410 2000-03-30 Perry Lorier <isomer@coders.net>
2411 * ircd/ircd.c: rewrote check_pings() for maintainability
2412 and speed. Also changed quit msg's so they don't have
2413 redundant nick[host] info in them.
2415 * ircd/send.c: Changed write errors to report what error
2416 occured (if possible).
2418 * ircd/gline.c: added gline comment to the quit.
2420 * ircd/m_server.c: Added suggestions to server quits mentioning
2421 what went wrong so the admin can fix it earlier instead of asking
2424 * ircd/map.c: Changed m_map() to hide numerics, show a * beside
2425 servers that aren't fully burst yet. And show '(--s)' for servers
2428 * doc/example.conf: Fixed wrapped U:
2430 2000-03-30 Kevin L. Mitchell <klmitch@mit.edu>
2432 * ircd/m_mode.c (ms_mode): implemented a new m_mode in terms of
2433 mode_parse() (version selectable at compile time)
2435 * ircd/m_clearmode.c (mo_clearmode): clean_channelname(parv[1])
2437 * ircd/m_opmode.c (mo_opmode): clean_channelname(parv[1])
2439 * config/config-sh.in: add new config option to enable new m_mode
2442 * doc/Configure.help: add documentation for new config option
2445 * ircd/channel.c (mode_parse_client): /opmode #foobar -o -- 461
2446 MODE -v : Not enough parameters
2448 * ircd/m_clearmode.c (do_clearmode): do_clearmode() would remove
2449 +k and +l even if they weren't set...
2451 * ircd/m_opmode.c: implement the OPMODE command using mode_parse()
2453 * ircd/channel.c: make mode_process_clients() clear the DEOPPED
2454 flag; fix +s+p exclusivity; add MODE_ADD/MODE_DEL to flag list
2455 for; test the 0-th member, not the i-th member, of the client
2458 * ircd/m_clearmode.c (do_clearmode): use the new
2459 mode_invite_clear() function
2461 * ircd/channel.c: cleared up all the compile-time warnings and
2464 * include/channel.h: added declarations for mode_ban_invalidate()
2465 and mode_invite_clear()
2467 * ircd/channel.c: finished mode_parse(), then broke it up into a
2468 dozen or so helper functions to make the code easier to read
2470 2000-03-29 Thomas Helvey <tomh@inxpress.net>
2471 * ircd/ircd.c: refactor server initialization a bit, use
2472 getopt for parsing command line, refactor init_sys, main,
2475 * ircd/s_bsd.c: add functions for initialization to clean
2476 up logic a bit and remove duplicated code.
2478 * include/ircd.h: add struct for server process related
2481 2000-03-29 Kevin L. Mitchell <klmitch@mit.edu>
2483 * ircd/channel.c: initial definition of mode_parse(); flags to
2484 prevent doing the same thing multiple times; helper method
2485 send_notoper() to send a "Not oper"/"Not on channel" notice
2487 * include/channel.h: declare mode_parse() and helper flags
2489 * ircd/channel.c (modebuf_flush_int): fiddled with timestamp
2490 sending to match the current action of set_mode() closely enough
2491 that hopefully there won't be major conflicts
2493 * ircd/channel.c (modebuf_flush_int): consolidated the mode string
2494 building logic, reversed the order of the arguments to mode
2495 commands to have '-' preceed '+'
2497 2000-03-29 Thomas Helvey <tomh@inxpress.net>
2498 * ircd/s_bsd.c (add_connection): don't disable socket options
2499 let OS tune itself and allow important performance tweaks to
2502 2000-03-28 Kevin L. Mitchell <klmitch@mit.edu>
2504 * ircd/channel.c (modebuf_flush_int): use %d, not %-15d; I got
2505 confused by set_mode, which is doing some really weird logic;
2506 guess what I'm going to rewrite next? ;)
2508 2000-03-28 Kevin L. Mitchell <klmitch@emc.com>
2510 * include/channel.h: added MODE_SAVE for the bounds checking stuff
2513 * ircd/channel.c: make modebuf_flush into modebuf_flush_int and
2514 make it do bounds checking on the buffer; all modes are sent only
2515 if the all parameter is 1; modebuf_flush is the exported wrapper
2517 * include/channel.h: add BOUNCE, renumber flags to get a little
2520 * ircd/channel.c (modebuf_flush): don't overload HACK2, add
2521 BOUNCE; send DESYNCH message
2523 2000-03-27 Kevin L. Mitchell <klmitch@emc.com>
2525 * ircd/m_clearmode.c (do_clearmode): only mark the modes the
2526 channel actually has in effect for deletion
2528 * ircd/channel.c: added explanatory comments to all added
2529 functions; made flushing take place at the correct place even if
2530 the MODEBUF_DEST_DEOP flag is set; rewrote build_string() helper
2531 to bash some stupid bugs; made modebuf_flush() return if ModeBuf
2532 is empty, fixed the apparent source, removed some bogus string
2533 termination code, properly terminate the mode strings, add support
2534 for HACK2 and HACK3, made limit strings not be sent if the limit
2535 is being removed, changed where '+' and '-' come from in sent
2536 strings, added support for DEOP flag, set up bouncing code for
2539 * ircd/Makefile.in: ran make depend
2541 * include/channel.h: added new defines for future functionality,
2542 made modebuf_flush() return int so I can use tail recursion
2544 * ircd/m_clearmode.c: add msg.h to includes; other misc cleanups
2545 to make it all compile
2547 * ircd/m_opmode.c: add msg.h to includes...
2549 * ircd/m_clearmode.c: implemented mo_clearchan()/ms_clearchan()
2551 * ircd/channel.c (modebuf_flush): realized I forgot to
2552 nul-terminate addbuf/rembuf properly...
2554 * ircd/m_clearmode.c (do_clearmode): wrote do_clearmode()...
2556 * ircd/channel.c (modebuf_flush): correct sendto_server_butone to
2557 sendto_serv_butone--blah^2
2559 * ircd/send.c (sendto_serv_butone): stupid comments confused me
2561 * ircd/channel.c (modebuf_flush): if there are no mode changes to
2562 propagate, we're done...
2564 * ircd/channel.c (modebuf_flush): duh; it's sendto_server_butone,
2565 not sendto_all_butone
2567 * ircd/m_clearmode.c: define skeleton for m{o,s}_clearmode
2569 * ircd/m_opmode.c: define skeleton for m{o,s}_opmode
2571 * ircd/Makefile.in (SRC): added m_opmode() and m_clearmode() to
2574 * ircd/parse.c: added messages for opmode and clearmode
2576 * include/handlers.h: added declarations for mo_opmode(),
2577 ms_opmode(), mo_clearmode(), and ms_clearmode()
2579 * include/msg.h: define MSG_OPMODE, TOK_OPMODE, MSG_CLEARMODE, and
2582 * include/channel.h (MODEBUF_DEST_OPMODE): Define the
2583 MODEBUF_DEST_OPMODE flag
2585 * ircd/channel.c (modebuf_flush): added new flag,
2586 MODEBUF_DEST_OPMODE; causes channel MODE/HACK(4) notice to appear
2587 to originate from source's server (or source itself, if
2588 IsServer(source)); also causes a server-level MODE to be sent as
2591 * include/channel.h: defined MODEBUF_DEST_SERVER,
2594 * ircd/channel.c: Add another argument to build_string() to handle
2595 numeric nicks; implemented MODEBUF_DEST_SERVER to send MODEs to
2596 servers; implemented MODEBUF_DEST_HACK4 to cause HACK(4) notices
2599 2000-03-27 Perry Lorier <isomer@coders.net>
2601 * ircd/s_bsd.c: fixed missing 'u' typo.
2603 2000-03-26 Kevin L. Mitchell <klmitch@emc.com>
2605 * ircd/channel.c: implement modebuf_init(), _mode(), _mode_uint(),
2606 _mode_string(), _mode_client(), _flush(); also implemented a
2607 simple build_string()
2609 * include/channel.h: added definition of ModeBuf, modebuf_*
2610 manipulation functions, and a couple of helper macros
2612 2000-03-24 Thomas Helvey <tomh@inxpress.net>
2613 * numicks.c: convert extended numerics to use original mask version
2616 2000-03-23 Thomas Helvey <tomh@inxpress.net>
2617 * Merge in changes from production
2618 2000-03-22 Thomas Helvey <tomh@inxpress.net>
2619 * numicks.c: Tweak to numnick generator to reduce possibility of duplicates.
2620 * rfc1459.unet: Add Maniac's documentation for /names 0
2621 * Fix misc. jupe bugs that somehow made it into the tree
2622 * Escape /names 0 to mean /names --Maniac
2623 * Don't core when server asks for info --Maniac
2624 * Add Kev's jupe patch --Bleep
2625 * Add Maniacs squit patch --Bleep
2626 * Merge in u2_10_10_beta07 changes --Bleep
2627 * Merge in u2_10_10_beta06 changes --Bleep
2628 * Start ircu2.10.11 development, beta branch u2_10_10 --Bleep
2629 #-----------------------------------------------------------------------------