12.11.2p3 2 32010-08-12 Piotr Kucharski 4 5 * channel.c/can_send(): bans and exceptions set with cidr work only 6 on local server. side-effect of this was if you set non-cidr ban 7 (say *@*) plus a cidr exception, you were no longer heard outside 8 your server (you matched the ban, but cidr exception was not even 9 checked). allow remote clients to talk without checking for bans 10 and exceptions. (reported by BR). 11 * s_err.c, s_serv.c, s_user.c: fix various format string errors 12 visible on amd64 (patch from jilles). 13 * parse.c/cancel_clients(), s_user.c/register_user(): fix all kills 14 that sent a nick to send a UID, except the impossible nick collision 15 kill (patch from jilles). 16 172010-08-11 Piotr Kucharski 18 19 * s_conf.c/prep_kline(): reject all not fully specified u@h masks and 20 also *@* one. 21 * ircd.c/s_die(): clean up unix socket. 22 * s_service.c/m_service(): send SERVICE also to dist matching SID. 23 242010-03-09 Piotr Kucharski 25 26 * s_conf.c/prep_kline(): match_ipmask() was getting host with '@' char 27 prepended, that did not work at all. 28 292009-12-11 Piotr Kucharski 30 31 * s_conf.c/prep_kline(): oper can crash his local ircd by issuing 32 tkline with wrong parameters (reported by AsmPro). 33 342.11.2p2 35 362009-11-13 Piotr Kucharski 37 38 * channel.c/set_mode(): don't swap keys and limits on netjoin. 39 * s_misc.c/initruntimeconf(), config.h.dist: default and min. values 40 of SPLIT vars; lower defaults to better match IRCnet status. 41 * struct_def.h, ircd.c/try_connections(), s_misc.c/check_split(), 42 s_serv.c/m_set(): add "SET ACONNECT ND" to disable autoconnect 43 after nickdelay expires (requested by BR); with nice sideeffect 44 of showing in "stats d" when server entered split mode. 45 * s_conf.c/oline_flags_parse(), s_debug/serveropts[], config.h.dist: 46 add OPER_SQUIT_REMOTE define and use it in version string (requested 47 by BR to do V:line on it). 48 492009-04-30 Piotr Kucharski 50 51 * s_conf.c/prep_kline(): check for erroneous netmasks in tkline. 52 532009-03-15 Piotr Kucharski 54 55 * support.c/strtoken(): mysterious wallops from JP fix (kudos to jilles). 56 * list.c/free_class(), patricia.c, patricia_ext.h, s_externs.h: tidy up. 57 * s_conf.c/find_Oline(), s_user.c/m_oper(): better error msg for OPER 58 failed due to class limits. 59 * s_user.c/register_user(): tiny fix for sunCC compiler. 60 * res.c: fix compilation with DEBUG problem. 61 * s_conf.c/find_Oline(): use user->sip. 62 * list.c/make_client(), s_misc.c/read_motd(): MyMalloc() does outofmemory 63 on its own, no need to do that again. 64 * channel.c/jp_chname(), support.c/strtoken(): if cn[1] is null, cn[2] 65 may access rubbish, reverse conditions to not allow it. 66 * channel.c/clean_channelname(): if japanese channel name is incorrect, 67 return -1 to allow callee function to react; fix all functions that 68 call clean_channelname() to deal with erroneous channel names. 69 702.11.2p1 71 722008-06-24 Piotr Kucharski 73 74 * res.c/proc_answer(), update_list(): fix incorrect caching of ips looked 75 up for C/N-lines (patch from fiction). 76 * res.c/m_dns(): show flags for cache entries. 77 * initconf(): allow '*' in username part of user@host field of C/N/S line 78 (reported by BR). 79 * chkconf.c/openconf(), s_conf.c/openconf(): pass INET6 to m4, if defined 80 (patch from peder). 81 * configure.in, configure, setup.h.in: check for GNU m4. 82 * chkconf.c/openconf(), s_conf.c/openconf(): pass -I includedir to GNU m4 83 allowing easier configs (patch from peder). 84 * chkconf.c/openconf(), s_conf.c/openconf(), setup.h.dist: define to use 85 "-P" flag for GNU m4 (courtesy to peder). 86 * s_conf.c/check_split(): set default caccept value after first netjoin. 87 882008-06-23 Piotr Kucharski 89 90 * res.c: more cleanup, so no v6 related code is in there for #undef INET6. 91 922008-06-22 Piotr Kucharski 93 94 * class.c/add_class(), initclass(): don't set MaxBSendq if not explicitly 95 set in Y-line (client classes have no need for it anyway). 96 * class.c/get_sendq(): don't use MaxBSendq if not set. 97 * res.c/gethost_byname_type(), proc_answer(), update_list(), make_cache(), 98 find_cache_name(): add "valid" flags to cache entries, so we use cached 99 entry only when it was ok in both directions; this fixes problems with 100 dual v4/v6 names in dns and also some possible spoofs (patch from fiction). 101 * res.c: while at it, little cleanup. 102 1032008-06-21 Piotr Kucharski 104 105 * s_err.c, s_serv.c/m_etrace(): turns out that more fields was granted 106 different numeric in ratbox, so we change to match theirs; etrace now 107 behave always like ratbox "etrace -full". 108 * s_serv.c/m_sidtrace(): for local clients provide extra fields as well. 109 * s_serv.c/m_etrace(): extend oper check to IsAnOper, like sidtrace has. 110 1112008-06-20 Piotr Kucharski 112 113 * s_err.c, s_serv.c/m_etrace(): add additional user fields to output. 114 1152008-06-18 Piotr Kucharski 116 117 * class.c/initclass(): add missing init for maxbsendq for class 0. 118 1192008-06-15 Piotr Kucharski 120 121 * hash.c/hash_find_ip(): stupid bug making iphash unusable (report by tlund). 122 * s_serv.c/m_stats(): guard stats f with ACL_TRACE. 123 1242.11.2 125 1262008-06-13 Piotr Kucharski 127 128 * s_err.c: change RPL_ETRACEEND numeric to 759. 129 1302008-06-11 Piotr Kucharski 131 132 * channel.c/m_njoin(): fix negative history count in stats z (by fiction). 133 * s_serv.c/m_stats(), m_trace(): show unknown connections only to +w opers. 134 * s_err.c, s_serv.c/m_etrace(), m_sidtracce(): use new RPL_ETRACEEND. 135 1362008-06-10 Piotr Kucharski 137 138 * channel.c/set_mode(): change every unset key to '*', so in a case of 139 desynch it will not get exposed on &CHANNEL. 140 * struct_def.h: add EXITC_TKLINE. 141 * s_conf.c/do_kline(): set properly EXITC_(T)KLINE (reported by BR). 142 * s_conf.c/attach_conf(), config.h.dist: allow reverting to previous 143 behaviour of Y-line host limits with #undef YLINE_LIMITS_IPHASH. 144 * parse.c, hash.c, hash_def.h, hash_ext.h, ircd.c, s_user.c, s_misc.c, 145 config.h.dist: if ip hash or hostname hash is not needed, do not compile 146 it in (by the power of #ifdefs). 147 1482.11.2b1 149 1502008-06-09 Piotr Kucharski 151 152 * configure.in, setup.h.in, os.h: check if strings.h can be included 153 along with string.h 154 1552008-06-09 Jakub Vlasek 156 157 * struct_def.h: add iphashv and iphnext used by the IP hash table. 158 * hash.c, hash_def.h, hash_ext.h: add IP hash. 159 * s_conf/attach_conf(): use hash_find_ip() to check for local and 160 global user limits. 161 * s_user.c/register_client(): Add user to the IP hash. 162 * s_misc.c/exit_one_client(): Remove user from the IP hash. 163 1642008-06-08 Piotr Kucharski 165 166 * channel.c/can_join(): if channel is opless, allow people matching 167 reoplist to join channel overriding channel limit. 168 * s_misc.c, s_serv.c, s_service.c, s_service_ext.h, s_user.c: change 169 "server" argument of check_services_butone from char to aServer. 170 * s_user.c/m_message(): allow services to send notices to uids. 171 * s_service.c/check_services_butone(), m_service(), m_servset(), 172 s_misc.c/exit_one_client(), s_serv.c/m_server_estab(), 173 s_user.c/hunt_server(): allow distribution to be based on SID, 174 not only server name. 175 * s_misc.c/get_client_host(): show IP, not hostname, in all those &LOCAL 176 notices about unauthorized access. 177 * struct_def.h: increased TOPICLEN, MAXBANS and MAXBANLENGHT. 178 * s_user.c/who_one(): show SID between hopcount and user info. 179 * s_serv.c/m_stats(): allow multichar stats. 180 * s_serv.c/m_stats(), s_debug.c/send_defines(): stats d5 return 005 as well. 181 * s_user.c/m_oper(): different message for failed oper attempt if 182 attach_conf() failed with correct password (reported by MJRider). 183 * s_user.c/attach_conf(): move checks around to save some cpu cycles. 184 * services_def.h, send.c/sendto_flag(): add SERVICE_WANT_CLIENTS. 185 * s_err.c: extend replies[] up to 1000 entries. 186 * numeric_def.h, parse.c, struct_def.h, s_conf.c, s_err.c, s_serv_ext.h, 187 s_serv.c, config.h.dist: added ETRACE and SIDTRACE commands (from anfl). 188 1892008-06-07 Piotr Kucharski 190 191 * s_user.c/who_find(): service can request who as well and it does not have 192 user struct allocated => instant segv (reported by BR). 193 * service_def.h: add SERVICE_WANT_KLINE; unfortunately I had to change value 194 of SERVICE_WANT_TKLINE, otherwise I'd have to rewrite a lot more for 195 strtol() to work. 196 * s_user.c/is_allowed(): add kline acl for service. 197 * parse.c/parse(): tell service if command is unknown. 198 * struct_def.h: another field for aConf when XLINE (to keep hostmask/ip 199 to match against). 200 * list.c/make_conf(), free_conf(): add new field. 201 * list.c/free_conf(): source_ip stats confmem stats were not updated. 202 * s_conf.c/initconf(): read new field if X-line conf (and change where 203 they end up to be a bit more logical). 204 * s_user.c/register_user(): update changed fields and match on ip or 205 host of the user. 206 * s_serv.c/report_x_lines(): update and add new field. 207 2082.11.2a2 209 2102008-06-06 Piotr Kucharski 211 212 * patricia.c, patricia_ext.h: new files to do CIDR limits (from anfl). 213 * class_def.h: new fields in class and macros for them (from anfl). 214 * class_ext.h, class.c/add_class(): adding and changing limits (from anfl). 215 * list.c/free_class(): freeing patricia (from anfl). 216 * s_conf.c/add_cidr_limit(), remove_cidr_limit(): functions to maintain 217 proper count for each CIDR subnet (from anfl). 218 * s_conf.c/detach_conf(), attach_conf(): use above two functions in proper 219 places (from anfl). 220 * s_conf.c/initconf(): read one more field for conf line and pass it to 221 add_class() (from anfl). 222 * Makefile.in, config.h.dist: make it work (from anfl). 223 * INSTALL.*: documentation for CIDR limits. 224 * class.c/report_classes(): show CIDR limits if they exist. 225 * s_err.c: change RPL_STATSYLINE format to output CIDR limits too. 226 2272008-06-04 Piotr Kucharski 228 229 * s_user.c/register_user(): improve CCL_CONNINFO to show all fields of 230 connecting USER. 231 2322.11.2a1 233 2342008-06-03 Piotr Kucharski 235 236 * send.c, struct_def.h, support.c, channel.c, channel_ext.h, s_bsd.c, 237 s_debug.c, s_serv.c, config.h.dist: added JP patch (huge!). 238 2392007-12-16 Piotr Kucharski 240 241 * s_conf.c/prep_kline(): tiny bug squashed, added more checks. 242 * os.h, send.c, struct_def.h, support.c, support_ext.h, res.c, s_auth.c, 243 s_bsd.c, s_conf.c, s_misc.c, s_serv.c, s_user.c: clean mydummy stuff, 244 use better descriptive name ipv6string and standard name and length for 245 INET6_ADDRSTRLEN (patch from fiction). 246 * s_serv.c/m_server_estab(), s_bsd.c/completed_connection(): make 247 sending additional options in PASS more compact. 248 * channel_ext.h: define get_channelmask to rindex-find ':' in name. 249 * send.c/sendto_match_servs(), send.c/sendto_match_servs_v(), 250 send.c/sendto_match_servs_notv(), channel.c/check_channelmask(), 251 channel.c/m_join(), channel.c/m_part(), s_send.c/esendto_match_servs(): 252 use get_channelmask() instead of rindex() where appropriate. 253 * channel.c: change name or parv to chptr->chname where appropriate; 254 tiny sideffect: clients will see channel names cased as created, 255 not as they issued. 256 2572007-10-28 Jakub Vlasek 258 259 * s_misc.c/exit_one_client(): Send QUITs of killed users to services 260 with SERVICE_WANTS_QUIT. 261 2622007-04-10 Jakub Vlasek 263 264 * struct_def.h: Added is_rreop to struct stats. 265 * channel.c/set_mode(): Count number of remote reops. 266 * s_misc.c/tstats(): Report number of remote reops seen. 267 2682007-03-30 Jakub Vlasek 269 270 * struct_def.h: Added is_reop to struct stats. 271 * channel.c/reop_channel(): Keep count of local reops made. 272 * s_misc.c/tstats(): Report number of local reops made. 273 2742007-03-15 Kurt Roeckx 275 276 * common/os.h: Define _GNU_SOURCE on all systems making use 277 of glibc. This should fix build problems on *BSD systems 278 using glibc. Patch from Cyril Brulebois. 279 2802006-08-30 Piotr Kucharski 281 282 * ircd.c/try_connections(): maxlinks of 0 would incorrectly, even if only 283 temporarily, disable calling try_connections (noted by fiction). 284 2852006-06-17 Piotr Kucharski 286 287 * s_serv.c, s_serv_ext.h, ircd.c/main(): be a bit more verbose about 288 startup errors about server name. 289 * s_serv.c/m_server_estab(): show "from my.server.name" in directly 290 received SERVER message, so it is the same as remote SERVER. 291 * s_conf.c/attach_conf(), config.h.dist: new behaviour of Y-line limits. 292 2932006-05-03 Piotr Kucharski 294 295 * struct_def.h: extend ConfItem to have another text field. 296 * struct_def.h: add UnregItem for temp storage of USER params. 297 * s_conf.c/initconf(): read 5th field (ie. nick) of X-line. 298 * s_user.c: remember 2nd and 3rd USER param in unregList. 299 * s_user.c: move X-line check from m_user to register_user, use 300 unregList for it; also move exit_client for X-line up. 301 * s_misc.c/exit_client(): remove client data from unregList. 302 * list.c/make_conf(), free_conf(): update for name2 field. 303 * struct_def.h, s_user.c: get rid of unregList and remember 2nd and 3rd 304 USER param directly in aClient struct, so it is accessible also after 305 register_user(). 306 * list.c/make_client(), free_client(): update for user2, user3 fields. 307 * s_misc.c/exit_client(): get rid of unregList. 308 * s_serv.c/report_x_lines(): show 5th field. 309 3102006-04-30 Kurt Roeckx 311 312 * s_bsd.c/CHECK_PFD(): Initialise revents to 0 too. 313 3142006-04-28 Piotr Kucharski 315 316 * ircd.c/main(): show IRCDCONF_DELIMITER in 'ircd -v'. 317 3182006-04-26 Piotr Kucharski 319 320 * channel.c/remove_user_from_channel(), set_mode(): make reop a bit random, 321 so not always one server wins. 322 * struct_def.h, ircd.c/main(), try_connections(), s_misc.c/check_split(), 323 initruntimeconf(), s_serv.c/m_server(), m_connect(): standalone mode. 324 * s_bsd.c/start_iauth(), s_conf.c/rehash(): "rehash a" restarts iauth 325 (no other way to reread iauth.conf currently). 326 * s_conf.c/rehash(): "rehash d" reinitializes dns (rereads resolv.conf). 327 * ircd.c/s_rehash(), io_loop(): deal with consecutive SIGHUPs properly. 328 3292006-04-25 Piotr Kucharski 330 331 * configure, configure.in: detect Solaris 10 properly. 332 * mod_pipe.c/pipe_start(): pass chars, not integers (from Zobo). 333 * s_debug.c/show_defines(): show compiled in SPLIT_SERVERS and SPLIT_USERS. 334 * s_serv.c/m_eoback(): clear byuid so it won't notice oper later. 335 3362005-12-27 Piotr Kucharski 337 338 * list.c/free_client(): MyConnect is not a valid check in free_client() 339 (noticed by fiction). 340 * bsd.c/deliver_it(): return correct errno eagain. (noticed by fiction). 341 3422005-12-06 Piotr Kucharski 343 344 * s_user.c/do_nick_name(), config.h.dist: MINLOCALNICKLEN allows 345 enforcing minimum length of nickname for local clients. 346 * s_debug.c/send_defines(): show MINLOCALNICKLEN (as N0). 347 3482005-12-05 Piotr Kucharski 349 350 * bsd.c/deliver_it(): return correct errno (not always EPERM) also when 351 not in debug mode (noticed by fiction). 352 3532005-11-17 Piotr Kucharski 354 355 * s_conf.c, s_conf_ext.h: added m_kline(). 356 * s_conf.c/prep_kline(), do_kline(): updated for kline cmd. 357 * parse.c: add KLINE cmd. 358 * struct_def.h: add ACL_KLINE. 359 * s_conf.c/oline_flags_to_string(), oline_flags_parse(): add ACL_KLINE. 360 * Makefile.in: add KLINE_PATH define. 361 * config.h.dist: add KLINE (default off) and OPER_KLINE defines. 362 * s_conf.c/prep_kline(): u@h length checks. 363 * s_conf.c/prep_kline(): writing klines to kline file. 364 3652005-11-15 Piotr Kucharski 366 367 * chkconf.c: compile warnings about redefining MyMalloc. 368 * service.c/m_squery(): use UID as source if service wants UIDs. 369 * s_conf.c: renamed do_tkline to do_kline, renamed m_tkline to 370 prep_kline, added small m_tkline calling prep_kline. 371 3722005-09-02 Piotr Kucharski 373 374 * s_serv.c/m_squit(): find_server() before searching among clients. 375 3762005-07-10 Piotr Kucharski 377 378 * channel.c/m_njoin(): get rid of ^V in mbuf, we never use it. 379 * hash.c/bigger_hash_table(): don't add ME to uid hash. 380 * s_bsd.c/connect_inet(): don't parse empty source ip (reported by 381 fantomas). 382 * s_bsd.c/inetport(): do not sscanf null ipmask (reported by MJRider). 383 3842005-06-01 Piotr Kucharski 385 386 * s_serv.c/m_set(): manual SET CACCEPT ON activates delayed listeners. 387 * s_bsd.c/init_sys(): set soft limit on core size to its hard value; 388 warn if not unlimited. 389 3902.11.1p1 391 3922005-05-27 Piotr Kucharski 393 394 * channel.c/check_channelmask(): don't bother removing, simply 395 return error, when last char is colon. 396 * channel.c/check_channelmask(): we no longer use \007, remove 397 and simplify. 398 3992.11.1 400 4012005-05-14 Piotr Kucharski 402 403 * s_serv.c/m_server(): add_to_sid_hash must be after register_server. 404 4052005-05-13 Piotr Kucharski 406 407 * channel.c/check_channelmask(): remove all ':' from end of supplied 408 channelname, not only one. 409 * INSTALL, ircd.8, 2.11-New, ircd.conf.example, RELEASE_LOG, 410 RELEASE_NOTES: doc updates. 411 * configure, configure.in, setup.h.in: try to find strlcpy(). 412 * config_read.c: as fileio.c uses strlcpy, define it to strncpyzt if 413 system does not have it. 414 4152005-04-26 Piotr Kucharski 416 417 * config_read.c/config_read(): use MyMalloc, not malloc (from kinlo). 418 4192.11.1a2 420 4212005-04-13 Piotr Kucharski 422 423 * s_user.c/hunt_server(): aware of sid now. 424 * s_conf.c/initconf(), config.h.dist: define to speed up rehash at 425 the expense of memory (from anfl). 426 * config.h.dist: increase some defaults to suit IRCnet better. 427 * config.h.dist: increase default LOCALNICKLEN to 15. 428 * configure, configure.in, Makefile.in: add --with-rundir (ircd pid 429 and tune files) option. 430 * s_debug.c/send_defines(): show current istat.is_eobservers in 431 addition to SPLIT_SERVERS value (and similar for users). 432 4332.11.1a1 434 4352005-03-30 Piotr Kucharski 436 437 * s_user.c/m_nick(): prevent (however unlikely) possibility to change 438 user nick to uid of another server. 439 * channel.c/set_mode(): allow mixing +R and other modes. 440 * ircd.c/setup_signals(), s_slave(): ignore (and not die) USR1 if 441 USE_IAUTH is not defined. 442 * s_serv.c/m_links(), s_err.c: show SID after hopcount in LINKS. 443 4442005-03-29 Piotr Kucharski 445 446 * channel.c/m_join, m_part(), m_topic(), s_misc.c/exit_one_client(), 447 s_user.c/m_nick, m_unick(), m_away(), send_umode_out(), save_user(): 448 use sid or uid as source of message, not nick. 449 4502005-02-22 Piotr Kucharski 451 452 * struct_def.h, send.c/setup_svchans(), sendto_flag(), logfiles_open(), 453 logfiles_close(), Makefile.in: possibility to log server channels. 454 * res.c, config.h.dist: drop SIXBONE_HACK. 455 * s_conf.c/m_tkline(): expand ipv6 short form addresses, so they work. 456 * chkconf.c/validate(): use IRCDCONF_DELIMITER, not ':'. 457 4582005-02-21 Piotr Kucharski 459 460 * s_bsd.c/add_connection(): clone rejects were not properly logged. 461 4622005-02-20 Piotr Kucharski 463 464 * s_user.c/m_nick(): drop 2.10 related code (introducing new clients 465 from servers using NICK). 466 * s_user.c/m_user(): drop 2.8 related code (passing new clients info 467 from servers using USER). 468 4692005-02-19 Piotr Kucharski 470 471 * channel.c/set_mode(): do not rebroadcast +lk if they come from server 472 and are already set. 473 4742005-02-17 Piotr Kucharski 475 476 * s_conf.c/do_tkline(), m_tkline(): use time_t, not int. 477 * config.h.dist: limit TKLINE_MAXTIME to 99999999. 478 4792005-02-15 Piotr Kucharski 480 481 * s_conf.c/initconf(): use fdopen again. 482 * fileio.c, fileio.h: new files imported from ircd-ratbox, for use 483 instead of buggy FILE functions on Sun. 484 * config_read.c: redefine fopen() to ratbox fbopen() etc. when being 485 compiled on Sun. 486 * s_user.c/m_oper(): honour LOGFILES_ALWAYS_CREATE for oper log too. 487 * chkconf.c/initconf(): ignore tabs and spaces in flags field. 488 * channel.c/reop_channel(): return 1 only when we did reop. 489 4902005-02-11 Piotr Kucharski 491 492 * s_conf.c/initconf(): do not use buggy fdopen. 493 4942005-02-10 Piotr Kucharski 495 496 * config.h.dist, s_bsd.c, s_debug.c, s_err.c, s_serv.c, s_user.c: 497 changed some define names to avoid confusion. 498 * channel.c/set_mode(): remove not sending +R to old servers. 499 * channel.c/m_join(), m_njoin(), m_kick(): remove calls to 500 sendto_match_servs_notv() (and buffers around them). 501 * send.c: ifdef-out unused pieces of code (sendto*_servs_notv). 502 5032005-02-09 Piotr Kucharski 504 505 * channel.c/m_join(): get rid of ^G hack; simplify, as we don't get 506 JOIN from other servers. 507 * channel.c/m_join(): tiny bug, JOIN 0,#chan did not join #chan. 508 * s_serv.c/get_version(): anything below 2.11.0b12 is too old. 509 * s_serv.c/m_squit(): SV_OLDSQUIT is gone. 510 * s_serv.c/m_server_estab(): drop too old servers. 511 5122005-02-08 Piotr Kucharski 513 514 * struct_def.h: removed ST_UID and ST_NOTUID. 515 * parse.c, send.c, channel.c, s_misc.c, s_send.c, s_serv.c, s_user.c, 516 s_service.c: changed ST_UID to IsServer, changed ST_NOTUID to false. 517 * send.c, send_ext.h: removed unneeded sendto_match_butone_old(). 518 * s_user.c/m_message(): removed sendto_match_butone_old(). 519 * channel.c/send_channel_modes(): no need for special case for +R. 520 * s_misc.c/mark_blind_servers(), exit_client(), exit_one_client(), 521 s_serv.c/m_squit(), send_server(), m_server(), m_server_estab(), 522 m_eob(), s_service/m_service(), s_user.c/register_user(): removed 523 always matching conditions and never matching conditions and code. 524 * parse.c/find_sender(), s_id.c/sid_valid(), s_serv.c/m_server(), 525 m_server_estab(), m_trace(): sid cannot have '$' anymore. 526 * s_user.c/m_kill(): no "old" servers, no sendto_serv_notv() using. 527 5282005-02-07 Piotr Kucharski 529 530 * struct_def.h: removed HasUID macro. 531 * channel.c, hash.c, s_bsd.c, s_misc.c, s_serv.c, s_service.c, s_user.c: 532 change HasUID to (x)->user. 533 5342005-02-06 Piotr Kucharski 535 536 * channel.c/set_mode(): allow -r on all channels. 537 5382005-02-04 Piotr Kucharski 539 540 * struct_def.h et al: change ONICKLEN to LOCALNICKLEN, which is allowed 541 from local clients. 542 * config.h.dist: default LOCALNICKLEN 12. 543 * common_def.h: removed isscandinavian() macro. 544 * s_user.c/do_nick_name(): removed isscandinavian() checks, []{}\| 545 are again in use for nicks. 546 * channel.c: removed convert_scandinavian(), []{}\| are again in 547 use for channel names. 548 * match.c: ~ (tilde) is valid for nicks now. 549 * s_user.c/do_nick_name(): no need for special case of ~ from servers. 550 * channel.c/set_mode(): allow +R from all chanops. 551 5522005-01-30 Piotr Kucharski 553 554 * configure.in, configure: suncc adds space in front thus breaking grep. 555 * s_bsd.c/free_server(): there should be cptr->name, not cptr. 556 * s_serv.c/m_server_estab(): move clearing of burst state to m_eoback(). 557 * class_def.h: add bsendq (burst sendq). 558 * s_err.c, class.c/report_classes(): show bsendq in STATSYLINE. 559 * class_ext.h, class.c/get_sendq(): return bsendq or sendq depending on 560 new param "bursting". 561 * send.c/send_message(), channel.c/m_list(): update get_sendq() call. 562 * class.c/add_class(): new param bsendq (empty equal sendq) 563 * send.c/initconf(): parse sendq.bsendq in conf. 564 * send.c/send_message(): remove ignoring sendq exceeding during burst 565 as we now have burst sendq. 566 * s_serv.c, s_serv_ext.h: remove do_emulated_eob(). 567 * s_user.c/m_pong(), s_numeric.c/do_numeric(): remove do_emulated_eob() 568 calls. 569 * s_serv.c/m_server_estab(): don't PING anymore (EOB emulation). 570 5712005-01-30 Piotr Kucharski, Kurt Roeckx 572 573 * struct_def.h: removed stok, tok, ltok. 574 * parse.c, parse_ext.h: removed find_tokserver(). 575 * hash.c,hash_def.h,hash_ext.h: removed SERVERSIZE (using SIDSIZE 576 on its own), removed serverTable hash, removed hash_find_stoken(), 577 clear_server_hash_table(), add_to_server_hash_table(), 578 del_from_server_hash_table(), functions and updated inithashtables(), 579 bigger_hash_table(), show_hash_bucket(). 580 * ircd.c/ircd_writetune(), ircd_readtune(): store and retrieve _SIDSIZE 581 instead of _SERVERSIZE. 582 * list.c: removed used_tokens[] bit table. 583 * list.c/make_server(): removed tokens. 584 * s_misc.c/exit_one_client(): del_from_server_hash_table() call removed. 585 * s_serv.c/m_server_estab(): removed sending old syntax SERVICE. 586 * s_serv.c/m_server(), m_server_estab(): add_to_server_hash_table() call 587 removed. 588 * s_serv.c/m_squit(), send_server(), m_server(), m_server_estab(), 589 m_smask(), m_eob(): removed sending, parsing and receiving tokens (use 590 sids, if possible) and compatibility sids. 591 * s_serv.c/m_smask(), m_server(): make_server() cannot fail due to lack 592 of tokens, removed if-failure code. 593 * service_def.h: removed SERVICE_WANT_TOKEN, added SERVICE_WANT_SID. 594 * s_service.c/sendnum_toone(), m_service(), m_servset(): removed tokens 595 and 2.10 protocol. 596 * s_user.c/register_user(): NICK introducing new client is no longer 597 used between servers. 598 * s_user.c/m_user(): find_tokserver() call removed. 599 6002005-01-27 Piotr Kucharski 601 602 * mod_webproxy.c/proxy_init(): off-by-one config parse error. 603 6042005-01-03 Kurt Roeckx 605 606 * ircd.c/check_pings(): Initialise the reason variable. It could be 607 used uninitialised when TIMEDKLINES is not defined. 608 * configure, setup.h.in, os.h: Make configure detect the arguments of 609 accept() and use the 3rd argument for SOCK_LEN_TYPE, which should be 610 socklen_t in most cases. 611 * mode_pipe.c/pipe_start(): Properly terminate the call to execlp() 612 with a (char *)NULL. 613 * os.h, support.c, support_ext.h, a_io.c, nameser_def.h, res.c, 614 s_bsd.c: Don't use macro variables as #if VAR but use #ifdef VAR 615 or #if defined(VAR) 616 * s_bsd.c, s_bsd_ext.h, send.c, mkpasswd.c, iauth.c, chkconf.c, 617 class.c, hash.c, ircd.c, list.c, res.c, res_init.c: Give all 618 definitions and declarations of function a proper prototype: 619 add void as parameter if none is used. 620 * parse.c/find_target(): When using $SID, it checked the wrong 621 variable which was always NULL, resulting in it never finding 622 those servers. 623 6242005-01-02 Kurt Roeckx 625 626 * configure.in/configure: Use AC_CHECK_LIB to check if pow needs -lm. 627 * config.guess/config.sub: Update to latest versions. 628 6292.11.0 630 6312004-12-21 Piotr Kucharski 632 633 * README, RELEASE_LOG, RELEASE_NOTES, iauth-internals.txt: update. 634 6352004-12-16 Piotr Kucharski 636 637 * iauth.conf.5: reason is all-module option, move docs around. 638 6392004-12-15 Piotr Kucharski 640 641 * channel.c/check_channelmask(): empty mask matches any, just in case 642 ':' is last char in channel name (problem reported by pigreco). 643 * s_serv.c/m_set(): check for split after doing SET SPLIT (suggested 644 by fiction). 645 6462.11.0b21 647 6482004-12-12 Piotr Kucharski 649 650 * s_user.c/m_nick(), m_user(): call exit_client with cptr, not NULL, 651 so it returns FLUSH_BUFFER to parse(). 652 * s_serv.c/report_myservers(): show version and zip. 653 6542004-12-10 Piotr Kucharski 655 656 * send.c/send_message(): tame notices about maxsendq exceeded, allow 657 for complete disabling via define. 658 * config.h.dist: MAXSENDQ_NOTICES define. 659 * config_read.c/config_error(): add "\n" when printing to stdout. 660 6612.11.0b20 662 6632004-12-06 Piotr Kucharski 664 665 * config_read.c/config_read(): changed interface from mmap to fgets. 666 * chkconf.c/showconf(), initconf(), s_conf.c/initconf(): adjustments 667 to config_read() change. 668 * config.h.dist, configure.in, setup.h.in, os.h: removed mmap(). 669 * config_read.c/config_read(): more safety caps (snprintf and fdn). 670 6712004-11-30 Piotr Kucharski 672 673 * config_read.c/config_read(): add some guardians for border cases. 674 6752.11.0b19 676 6772004-11-29 Piotr Kucharski 678 679 * send.c/send_message(): use to->name, not get_client_name in ¬ices. 680 * s_user.c/m_nick(), config.h.dist: DISABLE_NICK0_REGISTRATION define. 681 6822.11.0b18 683 6842004-11-20 Piotr Kucharski 685 686 * s_serv.c/check_link(): except remote services. 687 * struct_def.h/msgtab[]: allow the same set of commands for services as 688 2.10 allowed. 689 6902004-11-19 Piotr Kucharski 691 692 * send.c/send_queued(): use strerror, not errno. 693 * send.c, channel.c, config_read.c, hash.c, s_user.c, whowas.c: remove 694 some unused variables to get rid of warnings (compilation warnings of 695 today noted by Andreas Ley). 696 * s_bsd.c/read_message(): move write_err declaration out to get rid of 697 some errors. 698 * s_bsd.c: new function add_connection_refuse(). 699 * s_bsd.c/add_connection(): change gotos to inside block to function 700 call (to avoid compiler warnings). 701 * struct_def.h: ConfItem->pref can be -1, so int, not u_int. 702 * list.c/make_conf(): bzero IN_ADDR size for INET6 sake. 703 * s_conf.c/match_ipmask(): badmask for ipv4 masks between 32 and 96 704 when INET6. 705 * s_conf.c/do_tkline(), m_untkline(): send notices to config.h-defined 706 channel. 707 7082004-11-16 Piotr Kucharski 709 710 * send.c/dead_link(): make it va-aware, don't hardcode get_client_name, 711 let caller give all arguments it needs. 712 * send.c: adjust to new dead_link(). 713 * bsd.c/deliver_it(): return errno from send. 714 * send./send_queued(): put errno returned from deliver_it() in notices. 715 * ircd.c/main(): allow -T without filename. 716 * ircd.c/ircd_writetune(): return without error if empty filename. 717 * ircd.c/bad_command(): make it void and update for -T change. 718 7192004-11-15 Piotr Kucharski 720 721 * os.h: typedefs incorrectly written. 722 7232.11.0b17 724 7252004-11-14 Piotr Kucharski 726 727 * s_serv.c/m_server_estab(): send njoin dot for other server to lock 728 empty channel; also send modes for empty !channels. 729 * ircd.c/check_pings(): don't check pings more often than once in 30s. 730 * config.h.dist: default LISTENER_DELAY 1 for undefined SLOW_ACCEPT. 731 7322004-11-13 Piotr Kucharski 733 734 * config.h.dist: move L/DCTL to struct_def.h as they must not be ever 735 changed. 736 * a_conf.c/conf_err(): exit with code 1, not 0. 737 * configure.in, configure, setup.h.in, os.h: use newer AC_CHECK_TYPES 738 autoconf macro and use typedef instead of defines for types. 739 * configure.in: AC_CHECK_TYPES now also includes <sys/bitypes.h> to fix 740 some configure/compilation errors on some platforms (problem noted by 741 Andreas Ley). 742 * channel.c/m_njoin(): move get_channel() out of strtoken loop. 743 * channel.c/m_njoin(): njoin dot hack for locking empty channels. 744 7452004-11-11 Piotr Kucharski 746 747 * send.c/send_message(): default define to allow increasing poolsize 748 all the time, not only during bursts. 749 7502004-11-10 Piotr Kucharski 751 752 * config.h.dist, s_bsd.c/read_listener(), read_message(): speed up 753 accepting new clients tenfold by default; make it configurable. 754 * s_bsd.c/read_message(): keep existing (primary) error on cptr. 755 * s_conf.c/initconf(): make sure sid is uppercase. 756 * send.c/send_message(): no need to increase sendq and poolsize 757 for bursting clients when they exceed their maxsendq. 758 * send.c/send_message(): no need to increase sendq when poolsize 759 is exceeded. 760 7612004-11-09 Piotr Kucharski 762 763 * a_conf.c/conf_err(): print errors to stderr. 764 * configure: fix --disable-ip6. 765 * struct_def.h: add ping to aClient. 766 * ircd.c/check_pings(): use cptr->ping. 767 * s_conf.c/attach_conf(): set cptr->ping. 768 7692004-11-04 Piotr Kucharski 770 771 * send.c/vsendpreprep(): do not use sockhost (breaks I-line 'M' flag). 772 * send.c/vsendpreprep(): overall simplification. 773 * s_misc.c/get_client_name(): use host for registered users, sockhost 774 for others (so make I-line 'M' flag working better); also use sip for 775 registered users. 776 7772.11.0b16 778 7792004-11-03 Piotr Kucharski 780 781 * hash.c/bigger_hash_table(): fix serverTable grow bug. 782 * channel.c/send_mode_list(), send_channel_modes(): use sid, not ME, 783 where appropriate. 784 * ircd.c/setup_me(): set ourself SV_UID. 785 7862004-11-02 Piotr Kucharski 787 788 * s_conf.c/m_tkline(), config.h.dist: TKLINE_MAXTIME define. 789 * s_serv.c/m_stats(), config.h.dist: DISABLE_STATSTKLINE define. 790 * s_conf.c/m_tkline(): show tkline reason in notice. 791 * send.c/svchans[], struct_def.h, channel.c/setup_server_channels(): 792 added &OPER server channel. 793 * s_serv.c/can_join(): make &OPER server channel oper only. 794 * s_conf.c/do_tkline(): send TKLINE notices to &OPER. 795 * res.c/get_res(): do not show nameserver IP in error message. 796 * s_user.c, s_user_ext.h: new function send_away() (idea from fiction). 797 * channel.c/m_invite(), s_user.c/m_message(): use send_away(). 798 * config.h.dist: AWAY_MOREINFO define. 799 * hash.c: add guardians for possible loops in hashes. 800 * s_conf.c/wdhms2sec(): !input there should be. 801 * a_conf.c/conf_read(): fix negation for ip masks. 802 8032004-11-01 Piotr Kucharski 804 805 * Makefile.in: config file define for tkserv (not always ircd.conf). 806 * tkconf.h.dist: use ".bak" suffix for config file backup. 807 * s_conf.c/do_tkline(): show notice only if there were more than four 808 hits for a tkline. 809 * Makefile.in: introduce IRCDCONF_DIR for chkconf and s_conf.o pointing 810 to dir where ircd.conf is located. 811 * chkconf.c/showconf(), config_read.c/config_read(),config_error(): use 812 IRCDCONF_DIR instead of extracting it from IRCDCONF_PATH. 813 * tkserv.c: use IRCDCONF_DELIMITER (from fiction). 814 * tkserv.c/main(): updated registration for ircd 2.11. 815 * s_conf.c: new function wdhms2sec() allowing to use 1w2d3h4m5s format 816 in tkline commands. Default (only number) is minutes. 817 8182004-10-30 Piotr Kucharski 819 820 * s_bsd.c/check_client(): nullify cptr->hostp when IP mismatch, so 821 "Unauthorized" shows IP, not an incorrect hostname (from fiction). 822 * channel.c/m_topic(): simplified a bit. 823 8242004-10-29 Piotr Kucharski 825 826 * res.c/proc_answer(): allow any char in CNAME to allow RFC2317 reverse 827 delegation. 828 8292004-10-27 Piotr Kucharski 830 831 * match.c/match(): return NOMATCH for null masks too. 832 * chkconf.c/initconf(): updated I-line flags, added O-line flags. 833 * s_serv.c: change name of dump_sid_map to dump_map_sid. 834 * s_serv.c/dump_map*(): add "mask" parameter to limit output. 835 8362.11.0b15 837 8382004-10-26 Piotr Kucharski 839 840 * ircd.c/main(): move logfiles_open() below daemonize(), this fixes 841 bug of logs getting to a client (bug reported by dojo and Borys, 842 found by BitKoenig). 843 * s_bsd.c/daemonize(): fclose(stderr), fclose(stdin) additionally; 844 also remove second local[0] setting. 845 * send.c/logfiles_open(): clear local[] too, just to be safe. 846 * s_serv.c/m_motd(): make motd work for unregistered clients. 847 * s_serv.c/m_motd(): bigger penalty for unregistered clients. 848 * config.h.dist, parse.c: add MOTD_UNREG define. 849 * parse.c: require 2 params for ENCAP. 850 * s_serv.c/m_encap(): broadcast ENCAP. 851 * s_user.c/m_kill(): send killed user@host[serv/sid] to syslog too. 852 8532004-10-23 Piotr Kucharski 854 855 * struct_def.h: moved count, rcount, bytes from Message to Cmd struct, 856 also added rbytes. 857 * parse.c/msgtab[], parse(): make stats (count, bytes) per handler, not 858 per command. 859 * s_serv.c/m_stats(), s_err.c/replies[]: show per handler stats. 860 8612004-10-21 Piotr Kucharski 862 863 * configure: remove own checks for stdarg. 864 * setup.h: remove USE_STDARG. 865 * os.h: depend on HAVE_STDARG_H, not USE_STDARG. 866 8672004-10-20 Piotr Kucharski 868 869 * ircd.c/try_connections(): increase hold for best, so other servers 870 will have chance to be tried in next round. 871 8722004-10-13 Piotr Kucharski 873 874 * s_serv.c/m_set(): new "SET SPLIT". 875 * config.h.dist: increased default SPLIT_SERVERS and SPLIT_USERS. 876 * s_serv.c/m_map(): swap SID and usercount. 877 8782004-10-09 Piotr Kucharski 879 880 * send.c/logfiles_close(): set fd to -1 after closing. 881 * s_send.c/esendto_channel_butone(): missing param (though function 882 not yet used). 883 8842004-10-07 Piotr Kucharski 885 886 * s_conf.c/do_tkline(): send a notice how many tklined. 887 * s_user.c/m_ping(): revert removing unnecessary parts of code. Oops. 888 8892.11.0b14 890 8912004-10-06 Piotr Kucharski 892 893 * common/numeric_def.h, config.h.dist, s_err.c, s_serv.c/m_users(): 894 added USERS_RFC1459 define to choose between rfc1459 behaviour of 895 USERS and a new one. 896 * s_serv.c: add send_users() used in LUSERS and new USERS. 897 * s_serv.c/m_users(): new behaviour of USERS command if USERS_RFC1459 898 is not defined. 899 * s_serv.c/m_lusers(): send 265 and 266 only if request was for all 900 clients (either no param or param "*"). 901 * channel.c/m_join(): disable '#' and '!' as first +channel name. 902 * s_serv.c/m_stats(): stats k honours TXT_NOSTATSK define. 903 * s_user.c/m_ping(): local PING is answered with PONG containing text 904 used as argument to PING; removed unnecessary parts of code. 905 9062004-10-05 Piotr Kucharski 907 908 * numeric_def.h, s_err.c, s_serv.c/m_lusers(): revert 251 and 255 909 numerics changes, readd 266 numeric, change format of 265 and 266 910 numerics to be alike 251 (but with numbers in front). 911 9122004-10-04 Piotr Kucharski 913 914 * moved support/iauth.conf to doc/iauth.conf.example and 915 renamed example.conf to ircd.conf.example 916 * Makefile.in: appropriate changes. 917 * struct_def.h: change Zdata->outbuf type to Bytef (as defined 918 in zlib headers). 919 * s_zip.c: add some casts to get rid of warnings. 920 * a_conf.c: add "exit" keyword. 921 * s_serv.c/m_server_estab(), s_bsd.c/report_error(): find_uid() can 922 return NULL, better check before MyConnect(). 923 9242004-10-03 Piotr Kucharski 925 926 * get rid of more warnings. 927 9282.11.0b13 929 9302004-10-01 Piotr Kucharski 931 932 * struct_def.h, s_debug.c/send_defines(), s_misc.c/initruntimeconf(): 933 add caccept to iconf structure. 934 * s_serv.c/m_set(): "SET CACCEPT" with "ON", "OFF" and "SPLIT". 935 * s_bsd.c/read_listener(): do not accept clients on delayed ports if 936 iconf.caccept if OFF or SPLIT when split. 937 * s_serv.c/report_listeners(): when caccept is off (or split), mark 938 such ports "noaccept". 939 * get rid of "rcsid defined but not used" warning. 940 * send.c, send_ext.h: initanonymous() function to get rid of that 941 damn "missing braces around initializer" warning. 942 * ircd.c/main(): run initanonymous(). 943 * a_defines.h: include common_def.h so isalpha/isdigit is consistent 944 with ircd (also gets rid of some warnings). 945 * config.h.dist: SIXBONE_HACK default off. 946 * os.h: include first <syslog.h> and then <sys/syslog.h> (for proper 947 declaration of syslog(), openlog() etc.) 948 * got rid of most warnings. 949 9502004-09-28 Piotr Kucharski 951 952 * a_conf.c/conf_read(): allow rfc913 timeout be smaller (but warn). 953 * configure.in, configure: --with-zlib takes param now, replacing 954 old --with-zlib-prefix (and removing --with-zlib-library and 955 --with-zlib-include). 956 9572004-09-23 Piotr Kucharski 958 959 * channel.c/reop_channel(): clear ->reop only when we did reop. 960 9612004-09-21 Piotr Kucharski 962 963 * mod_webproxy.c, mod_webproxy_ext.h: new files. 964 * new command 'M' in ircd>iauth communication, passing ircd name. 965 * a_conf.c: "port" setting mandatory for webproxy. 966 * support/iauth.conf: more examples. 967 9682004-09-20 Piotr Kucharski 969 970 * a_conf.c: add "port" setting to modules (mandatory for socks). 971 * mod_socks.c: use port from configuration, not hardcoded 1080. 972 9732004-09-16 Piotr Kucharski 974 975 * s_misc.c/exit_one_client(): squit bouncing back to 2.10 with incorrect 976 prefix resulted in "fake prefix" (reported by ZZyZZ). 977 9782004-09-13 Piotr Kucharski 979 980 * mod_socks.c: cleaned and simplified. 981 9822004-09-12 Piotr Kucharski 983 984 * changed LOCAL_KILL_ONLY to OPER_KILL_REMOTE and moved it to other 985 OPER_ defines in config.h. 986 * s_auth.c/read_iauth(): allow iauth to kill clients after registration. 987 * a_conf.c/conf_read(), iauth.conf.5, a_conf_def.h: "delayed" keyword. 988 * a_io.c/next_io(): send fake "done" message to ircd for delayed 989 modules. 990 * mod_socks.c/socks_init(): show in conf line if module is delayed. 991 9922004-09-10 Piotr Kucharski 993 994 * configure.in: logdir defaults to $(localstatedir)/log, not directly 995 PREFIX/var/log/ircd. 996 * Makefile.in: ircd_var_dir (where .pid and .tune are kept) is again 997 $(localstatedir)/run. 998 * Makefile.in: log file names changed from users, rejects, etc to 999 ircd.users, ircd.rejects, ircd.etc (and "ircd" part dependable on 1000 $(IRCD) Makefile variable). 1001 * config_read.c: make quotes around filename in #include optional; also 1002 allow for unlimited amount of whitechars around filename. 1003 10042004-09-08 Piotr Kucharski 1005 1006 * send.c/sendto_flog(): save two function calls each log line written; 1007 also add comments about logfile contents. 1008 * example.conf is installed as ircd.conf.example from now on. 1009 10102004-09-07 Piotr Kucharski 1011 1012 * parse.c: allow HAZH without params to allow sending minihelp (noted 1013 by fiction). 1014 * s_id.c, res_mkquery.c: compilation warnings for strict CC (reported 1015 by Mark Visser). 1016 * Makefile.in: few tiny fixes (suggested by Olafur Osvaldsson). 1017 * config.h.dist: some cleanup (suggested by Core). 1018 10192.11.0b12 1020 10212004-08-31 Piotr Kucharski 1022 1023 * s_serv.c/m_stats(): is_allowed I forgot to negate (caught by Borys). 1024 * struct_def.h: increased MAXBANS to 42. 1025 * support.c/make_isupport(): add R to MAXLIST. 1026 * config.h.dist: moved IRCDCONF_DELIMITER from os.h. 1027 * struct_def.h: increased NICKLEN to 15. 1028 10292004-08-27 Piotr Kucharski 1030 1031 * channel.c/reop_channel(): do not abort reop mechanism if restricted 1032 client is channel operator. 1033 10342004-08-21 Piotr Kucharski 1035 1036 * s_serv.c/m_server(): register_server() must be called before 1037 add_to_sid/server_hash_table (in case of growing hash tables). 1038 * s_user.c/m_nick(): silently cut longer nicks from clients (instead 1039 of rejecting). 1040 * swap return values of is_allowed, 1 for ok, 0 for forbidden now. 1041 * s_serv.c/m_server_estab(): moved sending PASS/SERVER after checking 1042 if server exists. 1043 10442004-08-18 Piotr Kucharski 1045 1046 * s_conf.c/initconf(): o:line (local oper) did not revoke remote rights 1047 like it should (noticed by Hans Engren). 1048 * channel.c/setup_server_channels(): make &CLIENTS invite-only. 1049 * channel.c/can_join(): reverse &CLIENTS join logic: if allowed, let 1050 oper in regardless invite-only status, for all others behave normal. 1051 10522004-08-17 Piotr Kucharski 1053 1054 * channel.c/set_mode(): also allow +R from servers. :) 1055 10562.11.0b11 1057 10582004-08-13 Piotr Kucharski 1059 1060 * channel.c/set_mode(): allow +R from opers. 1061 * config.h.dist: allow undefining both SLOW_ACCEPT and CLONE_CHECK 1062 (may speed server a bit if admin is aware of consequences). 1063 10642004-08-12 Piotr Kucharski 1065 1066 * ircd.c/try_connections(), config.h.dist: DISABLE_DOUBLE_CONNECTS to 1067 overcome problems with two autoconnects to each other. 1068 * ircd.c/main(): better check for tune filename length. 1069 * channel.c/m_invite(): as invite works different for existing and 1070 non-existing channels, try best and search for shortname !channel 1071 (from fiction). 1072 * s_serv.c/m_squit(): don't quit oper trying to squit ME (from fiction). 1073 * ircd.c/s_die(): send SDIE to 2.11 servers. 1074 * s_serv.c/m_sdie(): broadcast received SDIE to 2.11 servers. 1075 10762004-08-10 Piotr Kucharski 1077 1078 * s_bsd.c/check_server(): as trace shows last attached class, attach 1079 H: before C/N. 1080 * ircd.c/main(): check for tune filename length. 1081 10822004-08-10 Jakub Vlasek 1083 1084 * s_bsd.c, s_bsd_ext.h: Moved actual cptr->fd closing code 1085 to newly created close_client_fd(). 1086 * s_bsd.c/close_connection(): Do not send stop to iauth for 1087 outgoing server connections. 1088 * s_bsd.c, s_bsd_ext.h: Added open_listener() and reopen_listeners(). 1089 * s_bsd.c/add_listener(): Moved actual listener fd related code 1090 to open_listener(), do not remove listener if binding to socket fails. 1091 * s_bsd.c/close_listeners(): Close fd as soon as the listener 1092 is marked illegal. 1093 * s_bsd.c/close_client_fd(): Set fd to -1 to allow inetport() work 1094 again on given cptr. 1095 * s_conf.c/rehash(): Call reopen_listeners(). 1096 10972004-08-10 Jakub Vlasek 1098 1099 * s_bsd.c/close_connection(): Do not recurse listeners, remove only 1100 unused listeners from ListenerLL. 1101 * s_conf.c/detach_conf(),rehash(): Check for negative client counts. 1102 11032004-08-04 Piotr Kucharski 1104 1105 * s_user.c/m_quit(): if sptr is server, return at once; also use 1106 MyConnect to surround quit reason with double quotes. 1107 11082004-08-03 Piotr Kucharski 1109 1110 * channel.c/m_join(): empty part comment in JOIN 0. 1111 11122004-08-03 Jakub Vlasek 1113 1114 * s_misc.c/read_motd(): Do not leak FD. 1115 11162004-08-02 Piotr Kucharski 1117 1118 * channel.c/del_modeid(): missing parens (noted by Matyas Koszik). 1119 * channel.c/set_mode(): we change parv directly, so we have to restore 1120 it, so another channel loop in m_mode could use it again (noted by 1121 Matyas Koszik). 1122 11232004-08-02 Jakub Vlasek 1124 1125 * ircd.c/setup_me(), main(): Call register_server. 1126 * list.c/free_server(): Don't change svrtop and take only one 1127 argument. 1128 * list.c/free_user(): Take only one argument. 1129 * s_serv.c, s_serv_ext.h: Added register_server(), unregister_server() 1130 and use it in m_server(), m_smask(). 1131 * s_bsd.c, whowas.c, list_ext.h: free_user() and free_server() take 1132 only one parameter from now on. 1133 * s_bsd.c/close_listeners(): Use ListenerLL. 1134 * config.h.dist: Remove UPHOST. (was used by client) 1135 11362004-07-26 Jakub Vlasek 1137 1138 * list.c/free_user(): Call free_server() with the cptr of the server 1139 itself, not the user we're currently freeing. 1140 11412004-07-15 Piotr Kucharski 1142 1143 * chkconf.c/main(): missing declaration when in debug mode. 1144 * s_conf.c/do_tkline(): always send notice about new tkline. 1145 * s_conf.c/initconf(): fix core on empty ircd.conf. 1146 11472004-07-15 Piotr Kucharski 1148 1149 * chkconf.c: use config_error() instead of fprintf(stderr... and adjust 1150 wherever needed for changed filelist (different definition depending 1151 on compile-time options). 1152 * chkconf.c: allow -d and -s, show filenames and linenumbers when -d1 -s. 1153 * config_read.c/config_read(): added CF_NONE level for printing without 1154 filename:linenum prefix. 1155 * config_read.c, chkconf.c: tidy up. 1156 11572004-07-15 Jakub Vlasek 1158 1159 * s_bsd.c/activate_delayed_listeners(): Use ListenerLL. 1160 11612004-07-14 Piotr Kucharski 1162 1163 * chkconf.c/validate(): make it void. 1164 * chkconf.c: new function showconf() for printing config file as ircd 1165 would see it. 1166 * chkconf.c/main(): new command line option -s. 1167 * config_read.c/config_read(): do not omit bad #include and comments, 1168 put them in config so admin can see problems with `chkconf -s'. 1169 * config_read.c: new function config_error(). 1170 * config_read.c: new struct aFile, changed struct aConfig. 1171 * config_read.c: new function new_config_file(). 1172 * config_read.c/config_read(): keep track of line numbers in config. 1173 * config_read.c/config_read(): new parameter (config file name). 1174 * s_conf.c/initconf(), chkconf/showconf(), initconf(): config_read() 1175 added parameter. 1176 * config_read.c/config_free(): free also config file stack. 1177 * config_read.c/config_read(): set file in each new aConfig. 1178 * config_read.c/config_error(): print traceback for chkconf. 1179 * config_read.c/config_read(): use config_error() for printing errors. 1180 * config_read.c/config_read(): don't print IRCDCONF_PATH if no need. 1181 * config_read.c/config_read(): detect loops. 1182 11832004-07-13 Piotr Kucharski 1184 1185 * s_conf.c: move oper flags config.h restrictions from initconf() to 1186 oline_flags_parse(); make flag 'A' equivalent to what's O: in 2.10. 1187 11882004-07-12 Piotr Kucharski 1189 1190 * config_read.c/config_read(): if included file was empty we got core. 1191 11922004-07-11 Piotr Kucharski 1193 1194 * config_read.c/config_read(): do not proceed if error occured, go to 1195 next line instead (could be fatal with too long filename). 1196 11972004-07-11 Jakub Vlasek 1198 1199 * ircd.c, ircd_ext.h: Define ListenerLL. 1200 * s_bsd.c/add_listener(), close_connection(): Use ListenerLL. 1201 * s_serv.c/report_listeners(): Use ListenerLL. 1202 12032004-07-07 Piotr Kucharski 1204 1205 * configure.in, configure: fix --with-resconf, fix detecting -lm. 1206 12072004-07-05 Piotr Kucharski 1208 1209 * s_conf.c/tkline_expire(): tklines were kept past their expire time. 1210 12112004-07-03 Piotr Kucharski 1212 1213 * channel.c/match_modeid(): introducing ACL_CONNECTREMOTE surfaced year 1214 old bug! (noticed by ZZyZZ). 1215 * struct_def.h: new ACL_NOPENALTY (P), ACL_CANFLOOD (p). 1216 * s_conf.c/oline_flags_parse(), oline_flags_to_string(): new flags. 1217 * parse.c/parse(): don't add penalty if ACL_NOPENALTY. 1218 * s_bsd.c/read_packet(): don't disconnect if ACL_CANFLOOD. 1219 * struct_def.h: new ACL_TRACE (t). 1220 * s_serv.c/m_trace(): ACL_TRACE guard. 1221 12222.11.0a10 1223 12242004-07-02 Piotr Kucharski 1225 1226 * s_user.c/find_denied(): added reverse D: (disable AC when given server 1227 is absent). 1228 * s_user.c/save_user(): send saved nick change to &CLIENTS as well. 1229 * s_service.c/m_servset(): send "EOB" after burst. 1230 * services_def.h: new SERVICE_WANT_UID. 1231 * s_service.c/check_services_butone(): if WANT_UID, send it, not nick. 1232 * s_service.c/sendnum_toone(): if WANT_UID, send appropriate UNICK. 1233 * s_service.c/m_service(): send 005 to services. 1234 * services_def.h: new SERVICE_WANT_TKLINE. 1235 * s_user.c/is_allowed(): check services for being allowed to TKLINE. 1236 12372004-07-01 Piotr Kucharski 1238 1239 * class.c/get_client_class(): return last attached class, not highest. 1240 * class.c/get_sendq(): use sendq of last attached class, not highest. 1241 12422004-06-30 Piotr Kucharski 1243 1244 * channel.c/match_modeid(): drop special case for '#' matching uids. 1245 * s_conf.c/initconf(): simplify X-line parsing: just take first 4 fields 1246 from config, no flags. 1247 * s_user.c/m_user(): match on each field separately and also break when 1248 all match. 1249 * s_serv.c/report_x_lines(): show all 4 fields of X-lines. 1250 * s_conf.c: remove xline_flags_to_string() and xline_flags_parse(). 1251 * struct_def.h: removed no longer needed defines. 1252 * struct_def.h: xline exempt related defines added. 1253 * s_conf.c/iline_flags_parse(), iline_flags_to_string(): added 'e' flag 1254 for X-line exempt. 1255 * s_conf.c/attach_Iline(): ClearXlined() if 'e' flag. 1256 * register_user(): get rid of IsKlineExempt around IsXlined, new flag 1257 takes care of it now. 1258 * s_err.c, config.h.dist: customizable 381 reply. 1259 * numeric_def.h: new numeric 499. 1260 * config.h.dist, s_err.c: customizable 499 reply. 1261 * s_serv.c/m_stats(): if customizable 499 defined, send it to users instead 1262 of reporting K-lines (useful for servers with huge list of K). 1263 12642004-06-30 Jakub Vlasek 1265 1266 * struct_def.h: Added FLAGS_XLINED, CONF_XLINE, IsConfXlineWhole(), 1267 IsXlined(), SetXlined() and EXITC_XLINE. 1268 * chkconf.c: recognize X-lines. 1269 * s_conf.c, s_conf_ext.h: Added xline_flags_to_string(), 1270 xline_flags_parse(). 1271 * s_conf.c/initconf(): Parse X-lines. 1272 * s_serv.c: Added report_x_lines for stats X. 1273 * s_user.c/register_user(): Exit X-lined clients. 1274 * s_user.c/m_user(): Check for X-lines. 1275 * config.h.dist: Added XLINE_EXIT_REASON and XLINE defines. 1276 12772004-06-29 Piotr Kucharski 1278 1279 * s_service.c/m_service(): set FLAGS_CBURST on service. 1280 * send.c/send_message(): support bursting services. 1281 * s_misc.c/exit_client(): do not log service quits to users log. 1282 * send.c/sendto_flog(): revert from tabs to spaces in logs, do not 1283 write ending "\n" to syslog and services. 1284 * s_bsd.c/inetport(): under Cygwin call set_non_blocking() here, not 1285 after returning to add_listener() (from Q). 1286 * send.c/svchans[], struct_def.h, channel.c/setup_server_channels(): 1287 added &CLIENTS server channel. 1288 * struct_def.h: add ACL_CLIENTS. 1289 * channel.c/can_join(): allow join &CLIENTS only if is_allowed(). 1290 * s_conf.c/oline_flags_to_string(), oline_flags_parse(): add '&' flag 1291 for ACL_CLIENTS. 1292 * struct_def.h: CCL_mumble restrictions (for CLIENTS_CHANNEL). 1293 * config.h.dist: CLIENTS_CHANNEL (undefined) and CLIENTS_CHANNEL_LEVEL. 1294 * s_misc.c/exit_client(): log client quits to &CLIENTS. 1295 * s_user.c/register_user(): log client connects to &CLIENTS. 1296 * s_user.c/m_nick(): log client nick changes to &CLIENTS. 1297 12982004-06-28 Piotr Kucharski 1299 1300 * s_user.c/is_allowed(): silly bug. 1301 * s_user.c/m_kill(): service can be killed, too, format &KILLS message 1302 appropriately. 1303 * struct_def.h: SCH_* changed to enum. 1304 * send.c/setup_svchans(), send.c/sendto_flag(): adjustments to SCH 1305 being enum (and starting from 0). 1306 13072004-06-27 Piotr Kucharski 1308 1309 * s_serv.c/check_link(): make check_link() accept sptr, not cptr. 1310 * s_serv.c/check_link(): free opers from RPL_TRYAGAIN. 1311 * s_serv.c/m_stats(): change a little what's subject to RPL_TRYAGAIN 1312 for users (now only stats i c k m t z). 1313 13142.11.0a9 1315 13162004-06-26 Piotr Kucharski 1317 1318 * s_user.c/m_kill(): recent cleaning did too much, we must not cut the 1319 path from remotes. 1320 13212004-06-25 Piotr Kucharski 1322 1323 * config.h.dist, send.c/logfiles_open(): LOGFILES_ALWAYS_CREATE define. 1324 * s_serv.c/m_squit(): show server name, not sid, in wallops. 1325 * s_serv.c/m_close(), res.c/m_dns(), hash.c/m_hash(): add is_allowed(). 1326 13272004-06-24 Piotr Kucharski 1328 1329 * parse.c: require 2 params for KILL and SQUIT. 1330 * s_serv.c/m_squit(), s_user.c/m_kill(): remove code checking and 1331 dealing with less than 2 params. 1332 * struct_def.h: remove ACL enum, use #define ACL_mumble. 1333 * s_conf.c: new functions oline_flags_to_string(), oline_flags_parse(). 1334 * s_conf.c/initconf(): use oline_flags_parse(). 1335 * s_err.c: add room for oline flags in STATSOLINE. 1336 * s_serv.c/report_configured_links(): use oline_flags_to_string() to 1337 report O:line flags. 1338 * s_err.c: change 481 to not mention not being irc operator. 1339 * s_user.c/is_allowed(): use O:line flags to decide access. 1340 * s_debug.c: removed unused LOCOP_ defines. 1341 * s_serv.c/m_squit(): use ACL_SQUITREMOTE to decide if allowed. 1342 * s_serv.c/m_connect(): use ACL_CONNECT* to decide if allowed. 1343 * s_user.c/m_kill(): use ACL_KILL* to decide if allowed; also remove 1344 #ifdef LOCAL_KILL_ONLY, initconf() takes care of guarding it. 1345 * config.h.dist: OPER_mumble all defined by default. 1346 * INSTALL: changed O: format and described O:line flags. 1347 13482004-06-22 Piotr Kucharski 1349 1350 * Makefile.in: add implicit dependency for struct_def.h 1351 * struct_def.h: change definition of SetClient. 1352 * s_user.c/m_umode(): use SetClient macro. 1353 * s_conf.c/m_tkline(): moved tkline existence check and nexttkexpire 1354 setting to do_tkline(). 1355 * s_conf.c/do_tkline(): removed doall parameter (it always removes all 1356 matching clients); also send notice only when new tkline is set. 1357 13582004-06-21 Piotr Kucharski 1359 1360 * parse.c/parse(): minparams check was flawed. 1361 * parse.c/parse(): status was computed too early. 1362 * class.c/initclass(): add default 1.1 limits. 1363 * s_user.c/m_umode(): incorrect STAT_CLIENT/STAT_OPER change. 1364 * config_read.c/config_read(): do not prepend ircd conf dir if filename 1365 to include begins with slash; also drop <> convention, use only "". 1366 13672004-06-19 Piotr Kucharski 1368 1369 * parse.c/parse(): don't check for min param count for commands which 1370 are (for given caller) either ignored or insufficient privs, or unreg. 1371 * struct_def.h: CONF_TKILL, CONF_TOTHERKILL and ACL_TKLINE. 1372 * s_conf.c, s_conf_ext.h: new functions: m_tkline(), m_untkline(), 1373 tkline_expire(), do_tkline() and one variable tkconf added. 1374 * s_conf.c/find_kill(): support for tklines. 1375 * s_conf.c/rehash(): "rehash t" flushes all tklines. 1376 * s_user.c/is_allowed(): add ACL_TKLINE case. 1377 * config.h.dist: TKLINE related defines. 1378 * s_serv.c/report_configured_links(): aware of tklines (also shows 1379 time to live of a tkline, not port). 1380 * s_serv.c/m_stats(): stats k reports tklines, stats K klines. 1381 * parse.c: TKLINE and UNTKLINE handlers. 1382 * ircd.c/io_loop(): call tkline_expire() from time to time. 1383 13842004-06-18 Piotr Kucharski 1385 1386 * s_conf.c: move config_read() to new file. 1387 * config_read.c: new file with config_read() and config_free(). 1388 * chkconf.c: work (almost) properly with ircd #include directive. 1389 * Makefile.in: s_conf.o and chkconf.o dependency on config_read.c. 1390 * s_serv.c/m_rehash(): use first char of first param to REHASH. 1391 * s_conf.c/rehash(): change sig==2 (was sign of 'q') to sig=='d'. 1392 13932004-06-17 Piotr Kucharski 1394 1395 * s_err.c, s_serv.c: slightly changed LUSERS format (numbers in front, 1396 but to ease transition, keep text with numbers too). 1397 * os.h: removed some client includes of nameser.h. 1398 * s_misc.c/exit_client(): exit_server() frees sptr, so we have to move 1399 usage of sptr->name up. 1400 14012004-06-15 Piotr Kucharski 1402 1403 * parse.c: incorrect minparams for SMASK. 1404 * parse.c/parse(): exit server when it sends us command with less than 1405 minparams parameters. 1406 * s_serv.c: new function count_servers_users(). 1407 * s_serv.c/trace_one(), report_myservers(): use count_servers_users(). 1408 * s_serv.c/m_lusers(), config.h.dist: removed SHOW_INVISIBLE_LUSERS. 1409 * numeric_def.h, s_err.c, s_serv.c/m_lusers: RPL_LOCALUSERS and 1410 RPL_GLOBALUSERS combined into one RPL_LUSERMAX. 1411 * s_serv.c/m_wallops(): client wallops are ignored during parse. 1412 14132004-06-13 Piotr Kucharski 1414 1415 * channel.c/set_mode(): reset reop time when +r comes from server (or 1416 channel will never get reopped). 1417 14182004-06-12 Piotr Kucharski 1419 1420 * struct_def.h: new enum type ACL. 1421 * s_user.c: new function is_allowed() meant to replace #ifdef based 1422 command restrictions. 1423 * parse.c, s_serv_ext.h, s_serv.c/m_rehash(), m_restart(), m_die(), 1424 m_set(): remove #ifdef OPER_mumble. 1425 * s_user.c/m_kill(), s_serv.c/m_rehash(), m_restart(), m_die(), 1426 m_set(): use is_allowed(). 1427 * s_user.c/m_umode(): remove STAT_OPER status after -o/-O. 1428 14292004-06-11 Piotr Kucharski 1430 1431 * struct_def.h: added minparams to Message struct. 1432 * parse.c/parse(): check for minparams and reject command without even 1433 calling function. 1434 * irc/*, doc/irc.1: removed irc client. 1435 * match.c, support.c: remove c_*.h includes. 1436 * configure.in, configure, setup.h.in: adopted to autoheader. 1437 * acconfig.h: removed (now it's kind of in configure.in). 1438 * Makefile.in: adapted to no client. 1439 * s_user.c/m_message(): parse checks param count, removed. 1440 * msg_def.h: removed. 1441 * parse.c: merged msg_def.h 1442 * s_user.c/m_message(): no MSG_PRIVATE, simply "PRIVMSG". 1443 * removed unneeded occurrences of CLIENT_COMPILE. 1444 * parse.c/parse(): minparams check failed when it was 0. 1445 * parse.c, parse_ext.h: new functions: m_ignore, m_noprivileges, 1446 m_unregistered and m_registered. 1447 14482004-06-08 Piotr Kucharski 1449 1450 * channel.c/del_modeid(): do not free modeid. 1451 * channel.c/set_mode(): free modeid after del_modeid(), after using it. 1452 14532004-06-06 Piotr Kucharski 1454 1455 * channel.c/set_mode(): allow +k even if there already is a key set. 1456 * channel.c/check_string(): use global static asterix. 1457 * channel.c/make_bei(): use check_string() before copying; also copy 1458 at most max lens for each part (problem reported by Marcin Rozycki). 1459 * channel.c/set_mode(): get rid of make_nick_user_host(), use alist. 1460 * channel.c/make_nick_user_host(): removed whole function. 1461 * channel.c/set_mode(): possible tiny memleak fixed. 1462 * channel.c/make_bei(): alloc & strcpy minimal possible number of bytes. 1463 * s_user.c/m_user(): parse second USER parameter better, reducing 1464 incorrectly assigned +r due to faulty clients. 1465 14662004-06-02 Piotr Kucharski 1467 1468 * match.c/isvalidusername(): allow two non-alphanums in username. 1469 14702004-05-24 Piotr Kucharski 1471 1472 * channel.c/set_mode(): use supplied key when removing, don't change it 1473 before sending out to the one on the server. 1474 14752004-05-19 Piotr Kucharski 1476 1477 * parse.c: new server commands: SDIE and ENCAP. 1478 * s_serv.c: new functions: m_sdie and m_encap (empty yet). 1479 14802004-05-18 Piotr Kucharski 1481 1482 * channel.c/m_njoin(): properly end buffers before sending. 1483 * channel.c/m_njoin(): send SID as source to 2.11 servers. 1484 * send.c/setup_svchans(), channel.c/setup_server_channels(), 1485 struct_def.h: new server channel &WALLOPS. 1486 * send.c/sendto_ops_butone(): rewritten, not sending to +w users, 1487 not traversing all fds, simply send to servers and &WALLOPS. 1488 * s_serv.c/m_squit(), m_server(), m_connect(), m_wallops(), 1489 s_user.c/m_unick(), m_umode(): parameters fix to match rewritten 1490 sendto_ops_butone(). 1491 * s_serv.c/m_wallops(): no more +wallops channel, just send notice 1492 to &ERRORS about user-issued wallops. 1493 14942004-05-16 Piotr Kucharski 1495 1496 * ircd.c/try_connections(): yet another condition, which could lead to 1497 temporarily disabled AC. 1498 * ircd.c: new function calculate_preference(). 1499 * ircd.c/try_connections(): tidied up, moved calculating preference 1500 to new function. 1501 * ircd.c/try_connections(): move send_ping() to calculate_preference. 1502 * ircd.c/calculcate_preference(): skip non AC C-lines. 1503 15042.11.0a8 1505 15062004-05-14 Piotr Kucharski 1507 1508 * msg_def.h, parse.c, s_serv.c, s_serv_ext.h: new command EOBACK 1509 (so far only placeholder). 1510 * s_serv.c/m_eob(): send EOBACK. 1511 15122004-05-13 Piotr Kucharski 1513 1514 * channel.c/m_njoin(): bug causing small desynch of big channels 1515 (sometimes giving NJOIN protocol errors). 1516 15172004-05-12 Piotr Kucharski 1518 1519 * s_user.c/m_kill(): show target user@host[server/sid]. 1520 * class.c/report_classes(): show usage count in Y:lines. 1521 * s_err.c: add param for RPL_STATSYLINE, removed RPL_TRACECLASS. 1522 * s_serv.c: removed report_class_usage(). 1523 * s_serv.c/m_stats(): change 'C' (removed) to 'Y'. 1524 15252004-05-09 Piotr Kucharski 1526 1527 * configure, configure.in: more fixes. 1528 * config.h.dist: check for empty TIMEDKLINES define. 1529 15302004-05-07 Piotr Kucharski 1531 1532 * configure, configure.in: update to work with autoconf 2.57. 1533 * configure, configure.in, setup.h.in, os.h: check for mmap(). 1534 * s_conf.c, Makefile.in: new function config_read() parsing #include 1535 directive in ircd.conf file without calling m4. 1536 * config.h.dist: new define CONFIG_DIRECTIVE_INCLUDE. 1537 * s_conf.c/initconf(): use config_read() if defined. 1538 15392004-04-18 Jakub Vlasek 1540 1541 * s_bsd.c/read_message(): Do not check cptrs of delayed listeners. 1542 * list.c/free_client(): hopcount=1 of directly connected servers. 1543 * s_misc.c/exit_one_client(): incorrect SQUITs were sent to 2.10 which 1544 resulted in strange remote client quits (looking as if whole net was 1545 breaking apart). 1546 * s_misc.c/exit_server(): use from, not &me or else -- otherwise squits 1547 get messed up for 2.10 (after all, that's what from is for, eh?) 1548 15492.11.0a7 1550 15512004-04-17 Piotr Kucharski 1552 1553 * s_conf.c/match_ipmask(): show original mask in error. 1554 * s_bsd.c/start_iauth(): send data to iauth in big chunks to save on 1555 metadata overhead (from BitKoenig). 1556 15572004-04-14 Piotr Kucharski 1558 1559 * s_misc.c/exit_client(): if remote server matching C-line exits and 1560 AC is temporarily disabled, enable it. 1561 * ircd.c/check_pings(): forgotten IsListener(). 1562 * ircd.c/try_connections(): if no conf suitable for AC found, disable 1563 AC temporarily. 1564 * s_bsd.c/close_connection(): if AC was temporarily disabled and local, 1565 not matching C-line server quits, no need for enabling AC; however, 1566 if it was in Handshake or Connecting state (not yet Server), enable 1567 AC so it tries again. 1568 * s_bsd.c/get_my_name(): do not fill mysk with resolved hostname from 1569 M-line. 1570 15712004-04-13 Piotr Kucharski 1572 1573 * s_misc.c/initstats(): set localc, not remc. 1574 * list.c/remove_client_from_list(): negative remote client count bug, 1575 as directly connected servers have hopcount of 1, not 0. 1576 15772004-04-10 Jakub Vlasek 1578 1579 * config.h.dist: Made OPER_SET #define'd by default. 1580 15812004-04-10 Piotr Kucharski 1582 1583 * channel.c/del_modeid(): memleak, it should've freed modeid. 1584 * channel.c/set_mode(): memleak, it should've freed tmp->value.alist 1585 where it was not used or freed by add_modeid(). 1586 * channel.c/add_modeid(): don't free modeid, let set_mode() do it. 1587 15882004-04-07 Piotr Kucharski 1589 1590 * ircd.c, s_bsd.c, s_bsd_ext.h: reverting changes from 2004-03-07 1591 regarding listeners[] table. 1592 * s_serv.c/report_listeners(): use local[], not listeners[]. 1593 * channel.c/add_modeid(): allow redundant bans for it is users problem, 1594 not server, to maintain banlist. 1595 * struct_def.h, ircd.c, s_bsd.c, s_serv.c: changed IsListening() macro 1596 name to IsListener(). 1597 15982004-03-29 Piotr Kucharski 1599 1600 * s_user.c/do_nick_name(): allow '~' in nicks from servers. 1601 * common_def.h: exclude '^' from isscandinavian (no need to disable it). 1602 * s_user.c/m_nick(): if user used not allowed char in nick, inform him 1603 about it, not silently cut given nick. 1604 16052004-03-25 Piotr Kucharski 1606 1607 * s_service.c/m_service(): tiny yet fatal bug messing up hash tables 1608 (introduced 2004-03-19). 1609 16102.11.0a6 1611 16122004-03-24 Piotr Kucharski 1613 1614 * s_serv.c/m_trace(): code reporting classes usage moved out to 1615 separate, new function report_class(). 1616 * s_serv.c/m_stats(): stats C is used to call report_class(). 1617 * s_serv.c/report_configured_links(): show password (reason) field 1618 of Q-line. 1619 * s_serv.c/m_stats(): stats Z behave the same as stats z for non-opers 1620 even in debug mode. 1621 16222004-03-23 Piotr Kucharski 1623 1624 * res.c/init_resolver(): a hack to allow resolving inside FreeBSD 1625 jail (patch from Gerhard Gonter). 1626 16272004-03-22 Jakub Vlasek 1628 1629 * struct_def.h, s_bsd.c, s_serv.c: Rename IsListeningInactive and 1630 SetListeningInactive macros to IsListenerInactive and 1631 SetListenerInactive. 1632 * s_bsd.c, s_bsd_ext.h: Added activate_delayed_listeners(). 1633 * s_misc.c/check_split(): Activate delayed listeners when the server 1634 rejoins the network for first time. 1635 16362004-03-21 Jakub Vlasek 1637 1638 * ircd.c, ircd_ext.h, s_misc.c/check_split(): Added firstrejoindone 1639 variable. Set to 0 between server start and first network rejoin. 1640 * s_bsd.c/inetport(): Added dolisten parameter to make possible 1641 making listeners without calling listen() on them. 1642 * struct_def.h: Added IsListeningInactive(), SetListeningInactive(), 1643 ClearListenerInactive(). 1644 16452004-03-20 Piotr Kucharski 1646 1647 * s_conf.c/find_bounce(): allow negative classes in B:lines. 1648 * s_user.c/m_nick(), m_user(): reject user when it connects to 1649 server-only P-line; use B:-1 for redirecting, if available. 1650 16512004-03-20 Jakub Vlasek 1652 1653 * struct_def.h: Added PFLAG_DELAYED, PFLAG_SERVERONLY, 1654 IsConfDelayed(), IsConfServeronly(). 1655 * s_serv.c/report_listeners(): Report P-line flags. 1656 * s_conf.c: Added pline_flags_parse() and pline_flags_to_string(). 1657 * s_conf.c/initconf(): Parse P-line flags. 1658 16592004-03-19 Jakub Vlasek 1660 1661 * s_serv.c/m_server_estab(): Introduce services to 2.11 using new 1662 protocol. 1663 * s_service.c/m_service.c(): Changed SERVICE protocol to send source 1664 server as a prefix. Removed server token and hopcount parameters. 1665 16662004-03-18 Piotr Kucharski 1667 1668 * s_conf.c/initconf(): update flags of I:lines in use to the new ones. 1669 16702004-03-17 Piotr Kucharski 1671 1672 * channel.c/m_join(), m_njoin(): send "Fake" notice to &CHANNEL, when 1673 member of channel joins it again; when NJOIN, do it when not bursting 1674 otherwise keep sending NJOIN protocol error. 1675 * s_bsd.c/check_init(): don't set fake hostp for localhost clients. 1676 * ircd.s/setup_me(): no need for me.hostp 1677 * s_bsd.c/check_client(): no more fake me.hostp, no need to check. 1678 * s_bsd.c/unixport(): do not unlink unix socket, only report error 1679 (other ircd may be using it). 1680 * send.c, s_bsd.c, s_misc.c, s_user.c, struct_def.h: guard all unix 1681 socket uses by #ifdef UNIXPORT 1682 16832004-03-16 Piotr Kucharski 1684 1685 * s_serv.c/m_server_estab(): moves related to namebuf change made 1686 server name appear much earlier, thus making find_name() return 1687 this, just introduced, server; this caused wrong "Server Exists". 1688 16892004-03-15 Piotr Kucharski 1690 1691 * res_init.c/ircd_res_init(), res.c/init_resolver(), send_res_msg(), 1692 get_res(), resolv_def.h: IPv6 nameservers. 1693 16942004-03-14 Piotr Kucharski 1695 1696 * s_bsd.c/get_my_name(): mysk.s_addr was not initialized when M: ip 1697 address field was empty. 1698 * s_bsd.c/check_client(): narrowed the scope of "local" (used in stats 1699 t "local connections" and with NO_OPER_REMOTE); now this covers only 1700 clients from 127/8, unixsocket or the same IP as in M-line; it works 1701 now only when NO_OPER_REMOTE is defined. 1702 * s_misc.c/read_motd(): correctly parse motd file without ending \n. 1703 * c_numeric.c: removed RPL_TRACELOG from client. 1704 * config.h.dist, struct_def.h, ircd.c, s_conf.c, s_misc.c, s_misc_ext.h, 1705 s_serv.c: removed CACHE_MOTD, it's default and not possible to turn 1706 off; also fixed tiny bug of always reloading motd, not when changed. 1707 17082.11.0a5 1709 17102004-03-10 Piotr Kucharski 1711 1712 * s_bsd.c, s_bsd_ext.h: added delay_close() function. 1713 * s_bsd.c/add_connection(): use delay_close for too rapid connections. 1714 * struct_def.h: counters wrt delay_close() 1715 * ircd.c/io_loop(), ircd_ext.h: calling delay_close() when needed. 1716 * s_debug.c: send DELAY_CLOSE value in stats d. 1717 * s_misc.c: send stats counters wrt delay_close in stats t. 1718 * s_serv.c/m_close(): close also all delayed fds. 1719 * config.h.dist: default DELAY_CLOSE, some sanity checks. 1720 * s_bsd.c/connect_server(): reversed params to memcpy resulting in 1721 "Address family not supported..." errors when connecting. 1722 * list.c/remove_client_from_list(), free_server(): moved some server 1723 related cleaning to free_server(), where it rather belongs. 1724 * s_bsd.c/add_connection(): we did not deal with aServer structure to 1725 be released after make_server(). 1726 * s_serv.c/m_server_estab(): send maskedby->serv->tok in NICK during 1727 burst to 2.10 (from jv). 1728 * s_user.c/register_user(): send real tok to 2.11 servers, even if 1729 client is coming from 2.10, even behind the mask (noted by ZZyZZ, 1730 patch from jv). 1731 * s_service/free_service(): unnecessary free_server() call. 1732 17332004-03-09 Piotr Kucharski 1734 1735 * s_bsd.c/add_connection(): move check_clones() before DNS starts. 1736 * s_bsd.c/init_sys(): initalize listeners[]; also not bzero, just set 1737 all to NULLs. 1738 17392004-03-08 Piotr Kucharski 1740 1741 * s_user.c/m_nick(): DISABLE_NICKCHANGE_WHEN_BANNED, default undefined, 1742 allows to do what advertised (only local clients affected, of course). 1743 * ircd.c/main(): check_servername(ME) added, this disallows things like 1744 spaces in server name in M: etc. 1745 17462004-03-07 Piotr Kucharski 1747 1748 * parse.c: DNS command is oper only from now. 1749 * class.c/get_sendq(): check also for NULL ->nline. 1750 * s_conf.c/attach_Iline(): make a case for UNIXPORT or else we need 1751 "match any" I:line. 1752 * list.c/make_server(): check and eventually quit earlier, without 1753 MyMalloc()ing. 1754 * struct_def.h, send.c, ircd.c, list.c, s_bsd.c, s_conf.c, s_serv.c, 1755 s_service.c: changed cptr->name to pointer, added namebuf[]s of 1756 proper sizes to cptr, cptr->serv and cptr->service; this saves us 1757 in memory (HOSTLEN-NICKLEN) bytes per each client (5MB on IRCnet). 1758 * parse.c/remove_unknown(): SID can be source too, treat like server. 1759 * parse.c/find_sender(): fix core when unknown sid source. 1760 * s_id.c/check_uid(), s_user.c/m_unick(): check uid introduced if 1761 matches source sid. 1762 * s_user.c/register_user(): not only remove client received in NICK 1763 with improper servertok, but also the server that introduced it. 1764 * s_user.c/register_user(): when iterating over fdas, check for 1765 null acptr and IsServer(apctr). 1766 * ircd.c, s_bsd.c, s_bsd_ext.h: moved listeners from local[] to 1767 listeners[] table (preparation for better handling). 1768 * s_serv.c/report_listeners(): as stats l/L is not returning 1769 listeners anymore, show them detailed in stats P. 1770 * ircd.c, s_bsd.c, s_debug.c, s_err.c, s_serv.c, numeric_def.h, 1771 struct_def.h: removed ancient STAT_LOG (and RPL_TRACELOG). 1772 17732.11.0a4 1774 17752004-03-05 Piotr Kucharski 1776 1777 * res.c/proc_answer(), get_res(): fix CNAMEs resolving; now we use the 1778 name that client IP has "IN PTR" to, not the name that "IN A" 1779 points to client IP (patch from BitKoenig). 1780 * list.c/make_conf(): initialize flags to 0L. 1781 * struct_def.h, chkconf.c, s_conf.c, s_serv.c: got rid of CONF_RCLIENT 1782 internally -- it's CONF_CLIENT with 'R' flag set. 1783 * s_conf.c/iline_flags_to_string(): return '-' when no flags. 1784 * s_serv.c/report_configured_links(): iline_flags_to_string() now 1785 returns '-' for no flags, no need to check it here. 1786 * ircd.c/ircd_readtune(), ircd_writetune(), hash.c/inithashtables(), 1787 hash_def.h: introduce UIDSIZE (instead of using HASHSIZE). 1788 * channel.c/m_kick(): don't send KICKs one by one to other servers, 1789 use one KICK per channel; also put UIDs where appropriate. 1790 * struct_def.h, chkconf.c, s_conf.c: CONF_NORESOLVEMATCH ('M') I:line 1791 flag: does not show clients hostname, but allows it to match in beIR. 1792 * s_user.c/register_user(): use IP for user->host, if 'M' I: flag. 1793 * channel.c/match_modeid(): try to match sockhost, if 'M' I: flag. 1794 * hash.c/hash_uid(): little, but still improvement. 1795 * s_user.c/register_user(): send a notice about disabled host resolving. 1796 17972004-03-04 Piotr Kucharski 1798 1799 * s_conf.c/attach_Iline(): rewritten, now it requires both addr and name 1800 to match (if you want old behaviour of "put x in name to disable 1801 clients resolve", just use 'N' flag). 1802 * s_conf.c/attach_Iline(): 'N' flag working now. 1803 * s_conf.c/attach_Iline(): moved strcpy/strcat out of aconf loop, that 1804 should make it significantly faster. 1805 * s_conf.c/attach_Iline(): no longer match aconf->name to each alias 1806 of a host, use only its hostname. 1807 18082004-02-29 Piotr Kucharski 1809 1810 * s_serv.c/m_squit(): squit without comment bug (noted by Marcin Krol). 1811 * hash.c/bigger_hash_table(): uid hash table bug (endless loop). 1812 * s_user.c/m_nick(): another try, this time "NICK 0" seems to work 1813 before USER (with help from fiction). 1814 * s_user.c/register_user(): add_to_client_hash_table() when registering 1815 after "NICK 0". 1816 * struct_def.h, s_misc.c, s_user.c: is_save statistics. 1817 * channel.c/send_channel_members(): SID as source if ST_UID server. 1818 * channel.c/m_join(): not only send SID as source where appropriate, 1819 but also client joining as UID, if it has one. 1820 18212004-02-27 Piotr Kucharski 1822 1823 * s_bsd.c/add_unixconnection(): return value. 1824 * s_bsd.c/read_listener(): send notice on client connect. 1825 * s_user.c/m_unick(): check return value of do_nick_name(). 1826 * s_user.c/m_nick(): don't copy more than ONICKLEN to nick for local 1827 clients. 1828 18292004-02-24 Piotr Kucharski 1830 1831 * parse.c, msg_def.h: add "POST" command being alias for "QUIT" 1832 to cut w3cache abuse (idea from ircu). 1833 18342.11.0a3 1835 18362004-02-23 Piotr Kucharski 1837 1838 * s_serv.c/m_squit(): do not send compatibility sids in SQUIT. 1839 * s_misc.c/exit_client(): moved adding "by whom" to comment of squit 1840 to m_squit(). 1841 * s_serv.c/m_squit(): add "by whom" to comment of squit. 1842 * parse.c/find_matching_client(): traverse server list from bottom 1843 (ME) to up, so we find ourselves first (fixes trace bug). 1844 18452004-02-22 Jakub Vlasek 1846 1847 * s_misc.c/exit_server(): moved "Received SQUIT", so the sequence on 1848 &SERVERS is not reversed. 1849 * s_misc.c/exit_server(): added "from" parameter. 1850 * s_misc.c/exit_client(): use "from" in remote squit reason. 1851 18522004-02-22 Piotr Kucharski 1853 1854 * s_misc.c/exit_client(): removed unnecessary "Sending SQUIT" notice. 1855 * s_serv.c/m_squit(): removed unnecessary "Received SQUIT", it's now 1856 in exit_server(). 1857 18582004-02-21 Piotr Kucharski 1859 1860 * channel.c/m_kick(): "KICK # me,other" caused desync on remote servers: 1861 it was sent in two consecutive KICKs, first one removed client from 1862 channel and second one thus failed. No more "NJOIN protocol error". 1863 * s_user.c/register_user(): remove add_to_client_hash_table() when nick 1864 was "0", let m_nick() do it. 1865 * s_user.c/m_nick(): reverted (wrong) fix from 2004-02-19 and disabled 1866 "NICK 0" before "USER". 1867 18682004-02-19 Piotr Kucharski 1869 1870 * Makefile.in: when jv rewrote m_hash on 2002-07-04, sums were removed. 1871 no need to munch hash.c anymore. 1872 * s_user.c/m_nick(): we were calling add_to_client_hash_table() twice 1873 with UID-nick! Hash tables get corrupted. It was caused by allowing 1874 "NICK 0" during registration and was causing endless loop in hash. 1875 * s_user.c/m_unick(): fixed core in checking for collisions (local 1876 unregistered clients have no ->user struct). 1877 18782004-02-18 Piotr Kucharski 1879 1880 * channel.c/m_part(): canonize list of channels first; move comment 1881 out of strtoken loop; allow empty comment, don't force it to be 1882 user nick. 1883 * channel.c/m_part(): buffer overflow resulting in network desync. 1884 18852.11.0a2 1886 18872004-02-17 Piotr Kucharski 1888 1889 * s_user.c/m_nick(): do not add to hash table nick of "0". 1890 * s_user.c/register_user(): when NICK 0 was before USER, wait until 1891 USER is sent and we know UID -- then change this nick and add it 1892 to hash table. 1893 * s_serv.c/m_stats(): cleanup of what to check_link (RPL_TRYAGAIN). 1894 * s_serv.c: new function report_listeners() showing P:lines (IP, port) 1895 and number of clients using it. 1896 * s_serv.c: new stats (P) for report_listeners(). 1897 18982004-02-16 Piotr Kucharski 1899 1900 * s_serv.c/dump_sid_map(): add bursting time; also rewritten a bit. 1901 * s_serv.c/m_server_estab(): do not append own SID to "mass" EOB, 1902 being source is enough. 1903 * channel.c/set_mode(): set ->reop when +R from server. 1904 19052004-02-15 Piotr Kucharski 1906 1907 * s_serv.c/m_squit(): return when illegal port is found. 1908 * support.c/make_isupport(): removed CHARSET, changed CASEMAPPING 1909 to ascii. 1910 * s_serv.c/m_squit(): fixed core (introduced 2004-02-13) when squit 1911 issued by oper. ;) 1912 * s_bsd.c/add_local_domain(): remove ending dot from hname (so it 1913 won't assume later it already is fqdn). 1914 * s_bsd.c/get_my_name(): dot check not needed, add_local_domain does it. 1915 * channel.c/m_njoin(): revive difference between netjoin and plain join. 1916 * channel.c/reop_channel(): use ->reop, not ->history, for checking if 1917 channel reop is overdue. 1918 * s_serv.c/report_ping(): comment out debug message. 1919 19202004-02-14 Piotr Kucharski 1921 1922 * s_user.c/m_join(): show nick in error, not UID, when restricted 1923 clients does "NICK 0". 1924 19252.11.0a1 1926 19272004-02-13 Jakub Vlasek 1928 1929 * s_serv.c/dump_map(): Make *prevserver NULL after processing it. 1930 * s_serv.c/m_squit(): Handle SQUIT sent by remote server. Send SID 1931 to 2.11 servers in SQUIT message. 1932 * s_misc.c/exit_client(): Send SQUIT to remote server when closing 1933 link. 1934 19352004-02-13 Piotr Kucharski 1936 1937 * INSTALL.*, 2.11-New, RELEASE_NOTES, example.conf: update. 1938 * channel.c/m_join(): do not return "Too many channels" when client 1939 tries to join channel he is already on. 1940 * s_bsd.c/add_local_domain(): fix localhost bug introduced in 2.10.3p5. 1941 * s_user.c/m_unick(): bug appearing in whowas (after squit users had 1942 improper info in server field). 1943 * version.c.SH.in: INFO update. 1944 * s_conf.c, chkconf.c: removed U:lines. 1945 * s_err.c, s_user.c/save_user(): added UID to RPL_SAVENICK. 1946 19472004-02-12 Piotr Kucharski 1948 1949 * s_user.c, s_debug.c, config.h.dist: removed OPER_REMOTE 1950 (now default), though left possibility to define NO_OPER_REMOTE, 1951 for those who need it. 1952 * channel.c/remove_user_from_channel(): record reop time for all 1953 channels, not only !chans. 1954 * s_misc.c, s_misc_ext.h: myrand() and mysrand() added. 1955 * channel.c/collect_channel_garbage(): a bit rewritten, and made 1956 aware of IsSplit not to call reop_channel during split. 1957 * channel.c/reop_channel(): got rid of "small +r !channels get 1958 all clients reopped", unified reop mechanism for both !channels 1959 (+R and +r) and #channels (+R), made it more random and of course 1960 matching +R. 1961 * ircd.c/main(), s_conf.c/rehash(): init srand. 1962 19632004-02-11 Piotr Kucharski 1964 1965 * parse.c: unick requires registered connection (msgtab). 1966 * s_serv.c/m_eob(): show also server name in debug. 1967 * s_user.c/m_nick(): allow "NICK 0" during registration. 1968 19692004-02-10 Piotr Kucharski 1970 1971 * s_service.c/m_service(): lacking parameter added. 1972 * channel.c/match_modeid(): bug in matching username part. 1973 19742004-02-09 Piotr Kucharski 1975 1976 * s_conf.c/initconf(), s_serv.c: swap 'o' and 'O' to match umode. 1977 * ircd.c/setup_me(): SetEOB(me). 1978 * s_misc.c/check_split(): remove "+1", as &me is SetEOB now. 1979 * s_serv.c/m_version(), s_err.c: add SID to version output. 1980 * struct_def.h: TOPICLEN increased. 1981 * config.h.dist: MCPU increased. 1982 * RELEASE_NOTES: docs. 1983 * s_conf.c: erroneous IsIllegal() traps removed. 1984 * res.c/bad_hostname(): isalnum is enough. 1985 * s_serv.c/m_server(): move some SID checks earlier. 1986 * s_conf.c/find_conf_host_sid(): match SID mask (2nd field) in H:. 1987 * s_serv.c/m_server(): check new server for SID mask match. 1988 * s_serv.c/report_configured_links(): show SID mask field in STATS H. 1989 19902004-02-08 Piotr Kucharski 1991 1992 * iauth.c: new function write_pidfile(). 1993 * Makefile.in: added IAUTHPID_PATH. 1994 * s_user.c/m_quit(): enclose local users' supplied quit reasons with 1995 double quotes; get rid of default "I Quit" message. 1996 * s_misc.c/exit_client(): take advantage of double quotes enclosing. 1997 * s_misc.c/exit_client(): do not call check_split() every client 1998 quitting (leave it only every server quitting). 1999 * s_misc.c/check_split(): tiny unsigned bug. 2000 * channel.c/m_join(): no-op-on-split. 2001 20022004-01-20 Piotr Kucharski 2003 2004 * channel.c/set_mode(): disallow +R from clients. 2005 20062004-01-02 Piotr Kucharski 2007 2008 * reverting Kurt's changes #2 and #3 from 2004-01-01 (too much 2009 champagne?) 2010 * channel.c/m_join(): allowing to join +q channels regardless 2011 of MAXCHANNELSPERUSER. 2012 20132004-01-01 Jakub Vlasek 2014 2015 * s_serv.c/do_emulated_eob(): The value of istat.is_eobservers should 2016 have been incremented before SetEOB(). 2017 20182004-01-01 Kurt Roeckx 2019 2020 * support.c/make_isupport(): Replace MAXCHANNEL by CHANLIMIT. 2021 * channel.c:add_user_to_channel(), remove_user_from_channel() 2022 m_join(): Don't count &-channels for MAXCHANNELSPERUSER, 2023 instead of not counting +q channels. 2024 * channel.c: m_join(): Allow joining &-channels even when 2025 MAXCHANNELSPERUSER already reached. 2026 * support.c/make_isupport(): Replace CHIDLEN by IDCHAN. 2027 20282003-12-24 Kurt Roeckx 2029 2030 * config.guess, config.sub: Newer versions. 2031 20322003-12-12 Piotr Kucharski 2033 2034 * channel.c/match_modeid(): bug in nick check (noted by fiction). 2035 20362003-12-09 Piotr Kucharski 2037 2038 * s_conf.c/find_denied(): try find_client with server name (from C:), 2039 not server address. 2040 * s_bsd.c/close_connection(): when nextconnect was 0, it was not 2041 reset when server closed connection. This bug made autoconnect 2042 stop forever. 2043 * s_bsd.c/close_connection(): added another sanity check for the 2044 benefit of nextconnect. 2045 20462003-11-13 Piotr Kucharski 2047 2048 * s_user.c/m_pass(): don't copy PASS params to info when issued 2049 after USER or SERVICE (noted by fiction). 2050 20512003-11-03 Piotr Kucharski 2052 2053 * struct_def.h: MODE_REOPLIST was added, MODE_FLAGS needed updating. 2054 20552003-10-22 Jakub Vlasek 2056 2057 * hash.c/m_hash(): Spelling fixes, hash_channel_name() takes 3 params 2058 - removed the hashfunc from HashTables[]. 2059 20602003-10-19 Kurt Roeckx 2061 2062 * support.c/make_isupport(): Limit to sending 12 tokens in 2063 005 numeric. 2064 20652003-10-18 Piotr Kucharski 2066 2067 * ircd.c: new function delayed_kills() for checking kill-lines. 2068 * ircd.c/io_loop(): add delayed_kills next to check_pings(). 2069 * s_conf.c/rehash(): add "queue" of rehash (when we get rehash 2070 while previous delayed_kills did not finish yet). 2071 * s_conf.c/find_kill(), s_conf_ext.h: change param name, reversed 2072 its meaning. 2073 * s_user.c/register_user(): find_kill param fix 2074 * s_misc.c: removed old version of DK. 2075 * config.h.dist: added MAXDELAYEDKILLS define, removed DELAYED_KILLS. 2076 20772003-10-18 Kurt Roeckx 2078 2079 * os.h: Removed the defenition of in6addr_any. 2080 * *.c: Remove all K&R syntax. 2081 * channel.c, str.c, mod_socks.c, list.c, s_id.c, send_ext.h, hash.c, 2082 ircd.c, s_misc.c, s_serv.c, irc.c, s_bsd.c, parse.c, iauth.c 2083 ircdwatch.c, mkpasswd.c, s_service.c, s_misc_ext.hi, nameser_def.h, 2084 res_mkquery.c, s_auth.c, os.h, send.c, support.c: 2085 Fix warnings. 2086 20872003-10-18 Jakub Vlasek 2088 2089 * bsd.c, config.h.dist: Removed NOWRITEALARM. 2090 * dbuf.c: Removed VALLOC. 2091 * s_bsd.c: Removed SUN_GSO_BUG. 2092 * s_debug.c: Removed SUN_GSO_BUG, VALLOC, NPATH and NOWRITELALARM 2093 from serveropts[]. (Not used anymore) 2094 * s_debug.c: Added TOPIC_WHO_TIME to serveropts[]. 2095 20962003-10-18 Jakub Vlasek 2097 2098 * msg_def.h: Added MSG_MAP. 2099 * numeric_def.h, s_err.c: Added MSG_MAPSTART, MSG_MAP and MSG_MAPEND. 2100 * parse.c, s_serv_ext.h: Added m_map. 2101 * s_serv.c: Added m_map(), dump_map() and dump_sid_map(). 2102 * s_serv.c/m_trace(): Allow tracing of a SID. 2103 21042003-10-17 Kurt Roeckx 2105 2106 * hash.c, list.c, s_id.c, s_serv.c, s_service.c: Fix warnings 2107 (from Robbert Muller) 2108 * s_service.c/sendnum_toone(): Correctly send modes to the services 2109 that requested it. (From Robbert Muller) 2110 * ircd.c/main(): cygwin (1.5?) can now use iauth. 2111 * s_bsd.c/daemonize(): Go in the background on cygwin too. 2112 * dbuf_ext.h, send_ext.h, class_ext.h, hash_ext.h, ircd.c, ircd_ext.h, 2113 list_ext.h, res_ext.h, res_init_ext.h, s_auth_ext.h, s_bsd.c, 2114 s_bsd_ext.h, s_conf_ext.h, s_id_ext.h, s_misc_ext.h, whowas_ext.h: 2115 Fix compile warnings (From Robbert Muller) 2116 * ircd.c, ircd_ext.h: Get rid of PROFIL. 2117 * a_conf_ext.h, a_io_ext.h, a_log_ext.h, mkpasswd.c, support_ext.h, 2118 channel.c, chkconf.c: Fix compile warnings (From Robbert Muller) 2119 * c_msg_ext.h, edit_ext.h, irc_ext.h, screen_ext.h: Fix compile 2120 warnings (From Robbert Muller) 2121 * support.c, support_ext.h: Convert dumpcore() to use stdarg. 2122 * *_ext.h, os.h: Get rid of __P(). 2123 2124 21252003-10-15 Kurt Roeckx 2126 2127 * parse.c, send_ext.h, ircdwatch.c, iauth.c, mod_lhex.c, mod_pipe.c, 2128 mod_rfc931.c, mod_socks.c, channel.c, ircd.c, list.c, s_misc.c: 2129 Fix some warnings (from Robbert Muller) 2130 21312003-10-14 Kurt Roeckx 2132 2133 * send.c, a_conf.c, c_conf_ext.h, s_serv.c: More warning fixes (from 2134 Robbert Muller) 2135 * send.c, ircdwatch.c, a_log.c, mod_rfc931.c, mod_socks.c, chkconf.c: 2136 Even more warning fixes (from Robbert Muller) 2137 21382003-10-13 Piotr Kucharski 2139 2140 * res.c/proc_answer(): possible buffer overflow. 2141 * res.c/get_res() : "wrong type" error for ipv4 server names 2142 on ipv6 servers. 2143 * res.c/do_query_number(), config.h.dist: SIXBONE_HACK. 2144 * config.h.dist: CLONE_CHECK is now default, not SLOW_ACCEPT. 2145 * s_user.c/m_nick(): username and hostname were erroneously empty 2146 in legal collisions. 2147 * s_conf.c: some CONF_RCLIENT missing. 2148 * s_bsd.c/polludp(): remove confusing "udp port recvfrom()" message. 2149 * s_bsd.c/inetport(): check ipmask validity. 2150 21512003-10-13 Kurt Roeckx 2152 2153 * match_ext.h, send_ext.h, c_conf.c, channel.c, hash.c, ircd.c, res.c, 2154 s_auth.c, s_bsd.ci, s_bsd_ext.h, s_conf.c, s_conf_ext.h, s_debug.c, 2155 s_err.c, s_misc.c, s_send.c, s_serv.c, s_user.c: Fix compiler 2156 warnings and other general cleanup (From Robbert Muller) 2157 * struct_def.h, channel.c, s_misc.c: Clean up the invite linked list. 2158 21592003-10-12 Piotr Kucharski 2160 2161 * channel.c/m_join(): join overflow bug. 2162 * s_auth.c/sendto_iauth(): iauth failing to restart (patch from Q). 2163 21642003-09-30 Piotr Kucharski 2165 2166 * chkconf.c/initconf(): 'N' flag to I:line should be recognized too 2167 (noted by fiction). 2168 * struct_def.h, chkconf.c/initconf(), s_conf.c/iline_flags_parse(), 2169 iline_flags_to_string(), attach_Iline(), s_user.c/register_user(): 2170 add 'F' (fallthrough) flag to I:lines (from fiction). 2171 * struct_def.h: add EXITC_BADPASS. 2172 21732003-08-12 Piotr Kucharski 2174 2175 * res.c/do_query_name(), s_bsd.c/add_local_domain(): fix possible 2176 buffer overflow (noted by cras). 2177 21782003-08-10 Piotr Kucharski 2179 2180 * s_serv.c/m_eob(): sid was not initialized, use sptr->serv->sid. 2181 * s_serv.c/m_eob(): deal with protocol errors (eob coming from 2.10). 2182 21832003-08-08 Piotr Kucharski 2184 2185 * common_def.h: added isscandinavian() macro checking ~^{}[]|\ chars. 2186 * s_user.c/do_nick_name(): move check to isscandinavian() macro. 2187 * s_user.c/m_nick(): do do_nick_name() earlier, not to broadcast 2188 ":old NICK old" message. 2189 * channel.c: added convert_scandinavian() function to change 2190 chars {}\~ to []|^ in channel names in commands from local clients 2191 or 2.10 servers; this will allow dropping scandinavian origin 2192 in next version. 2193 * channel.c: m_mode(), m_join(), m_njoin(), m_part(), m_kick(), 2194 m_topic(), m_invite(), m_names(): added convert_scandinavian() in 2195 proper places (I hope no important function is missing). 2196 * channel.c/names_channel(): using strlen for checking if server is 2197 bugus, proper is finding dot. 2198 * struct_def.h: increased NICKLEN to 12, added ONICKLEN=9 for keeping 2199 compatibility. 2200 * support.c/make_isupport(), s_debug.c/send_defines(): use ONICKLEN, 2201 as this is the nicklen allowed from clients. 2202 * s_user.c/do_nick_name(): allow ONICKLEN long nicks from clients 2203 and NICKLEN long from servers. 2204 22052003-08-07 Piotr Kucharski 2206 2207 * s_user.c/m_nick(): move around some code and add checking for 2208 "NICK 0" or "NICK UID" from client already having UID nick and 2209 discard it. 2210 * s_user.c/do_nick_name(): disallow {}\ in nicks, so we can later 2211 drop scandinavian origin in match(). 2212 * match.c: change upper- and lowertable, so {|}~ is no longer 2213 lowercase of [\]^. 2214 * match.c: make ~ not valid in nicknames (however it was 2215 forbidden in other place). 2216 22172003-08-06 Piotr Kucharski 2218 2219 * numeric_def.h, struct_def.h, support.c/make_isupport(), 2220 channel.c/send_channel_modes(),add_modeid(),send_mode_list(), 2221 set_mode(), s_err.c: introduced R (reop) list (no reop yet). 2222 22232003-08-05 Piotr Kucharski 2224 2225 * channel.c/can_join(): send a notice also when overriding limit. 2226 22272003-07-29 Piotr Kucharski 2228 2229 * s_service.c/m_service(): removed metric variable; moved filling 2230 hopcount earlier, so it does not break later in free_client(), 2231 where it is used for local client check (noted by jv). 2232 * s_service.c/m_service(): changed !sp to sp==NULL, as the former 2233 breaks in DEBUGMODE. 2234 22352003-07-28 Jakub Vlasek 2236 2237 * struct_def.h: Added byuid to struct Server. Stores UID of remote 2238 oper initiating the connection. 2239 * send.c/send_queued(), ircd.c/check_pings(), s_bsd.c/report_error(), 2240 s_serv/m_server_estab(): Report the error to remote oper who 2241 initiated server connection. 2242 22432003-07-24 Piotr Kucharski 2244 2245 * s_id.c/next_uid(): changed pow() to #define constant; added 2246 check if we need to find_uid() over newly found cid (not 2247 needed if it's the first loop of cids). 2248 22492003-07-19 Piotr Kucharski 2250 2251 * s_user.c/m_user(): changed unused (since 2.9.x) FLAGS_RILINE 2252 to FLAGS_RESTRICT. 2253 * send.c/sendto_match_butone(),sendto_match_butone_old(): fixed 2254 comments. 2255 * common/struct_def.h: added MATCH_OLDSYNTAX 2256 * s_user.c/m_message(): accept old syntax of $/#-mask, correctly 2257 send both old and new syntax to old and new servers. 2258 22592003-07-18 Piotr Kucharski 2260 2261 * irc_sprintf.c, irc_sprintf_body.c, irc_sprintf_ext.h: various 2262 cleanups, typo fixes (from Zobo). 2263 * struct_def.h: removed unused flags, some cleanups. 2264 * s_bsd.c/close_connection(): schedule quick reconnect for a good 2265 link only when cptr was aServer. 2266 * doc/ cleanup. 2267 * added ISO-3166-1 file (from NetBSD) for SID allocations. 2268 * struct_def.h: changed SIDLEN to 4. Yes, it's a waste, but at 2269 least it takes off the burden of assigning SIDs. ISO-3166 now! 2270 Also enlarged tok in Server struct to hold long tokens. 2271 * list.c: increased MAX210SERVERS to 46656. 2272 22732003-06-22 Kurt Roeckx 2274 2275 * channel.c/m_join: Send RPL_TOPIC before RPL_TOPIC_WHO_TIME. 2276 * channel.c, s_send.c: Fix spelling of the anonymous user. 2277 * channel.c/m_join: Now always use NJOIN between servers. 2278 22792003-06-18 Kurt Roeckx 2280 2281 * Update RPL_ISUPPORT to the latest draft. 2282 22832003-06-03 Piotr Kucharski 2284 2285 * s_user.c/m_nick(): bad param count NICK coming from server must 2286 be dealt with. 2287 22882003-04-13 Piotr Kucharski 2289 2290 * channel.c/set_mode(): 'break' misplaced (reported by BitKoenig). 2291 22922003-02-22 Kurt Roeckx 2293 2294 * os.h: Always include resolv.h when found. 2295 22962003-02-16 Jakub Vlasek 2297 2298 * struct_def.h: Added IsSplit() macro. Added split variables to 2299 struct iconf_t. 2300 * s_debug.c: Report administrative state of autoconnect and split 2301 values in stats d. 2302 * s_misc.c,s_misc_ext.h: Added check_split(). 2303 * s_misc.c/exit_client(): Added split detection. 2304 * s_misc.c/initruntimeconf(): Initialise split values. 2305 * s_serv.c/m_eob(), do_emulated_eob(): Call check_split(). 2306 * s_user.c/register_user(): Call check_split(), send split notice 2307 to users upon connect. 2308 23092003-02-15 Piotr Kucharski 2310 2311 * s_bsd.c/polludp(): sometimes garbage IP was shown in error message. 2312 * send.c/sendto_match_butone(): don't send to old servers. 2313 * send.c: new function sendto_match_butone_old() for sending $#/$$ 2314 mask message to old servers only. 2315 * s_user.c/m_message(): use sendto_match_butone_old(). 2316 * struct_def.h: added ST_NOTUID() define. 2317 * s_misc.c, s_send.c, s_serv.c, s_service.c, s_user.c, send.c: 2318 we miserably forgot about De Morgan laws, changing all 2319 !ST_UID() to ST_NOTUID(); luckily in most, if not every, places it 2320 was guarded by earlier IsServer or similar (talk about redundant 2321 checks, eh?), so it didn't affect us badly (noted by Grega Pogacnik). 2322 23232003-02-14 Piotr Kucharski 2324 2325 * channel.c/match_modeid(): wrong UID ban checks. 2326 * channel.c/set_mode(): removing key on channel with no key resulted 2327 in desynch, when combined with other modes after -k (from Grega 2328 Pogacnik). 2329 23302003-02-13 Piotr Kucharski 2331 2332 * match.c/match(): added quick parsing of '*' mask; added '#' 2333 wildcard matching only digits. 2334 * s_serv.c/m_stats(): be aware of '#' wildcard. 2335 * struct_def.h, channel.c/match_modeid(), add_modeid(), del_modeid(), 2336 set_mode(), s_err.c: changed value.cp to struct holding nick, user, 2337 host separately, this allowed for faster match()es and better beI 2338 lists parsing. 2339 * channel.c: added make_bei() and free_bei() functions. 2340 * channel.c/match_modeid(): added full CIDR support for beI lists. 2341 23422003-02-13 Jakub Vlasek 2343 2344 * s_user.c/m_user(): Parse user text modes sent in USER command 2345 during registration. 2346 23472003-02-11 Piotr Kucharski 2348 2349 * s_serv.c/m_stats(): stats l server client_not_on_this_server 2350 should not return bogus values (from Grega Pogacnik). 2351 23522003-02-10 Piotr Kucharski 2353 2354 * channel.c/match_modeid(): added support for CIDR. 2355 * s_conf.c/match_ipmask(): added one param to ease using it 2356 with or without user@ part to match CIDRs; 2357 * Makefile.in: added install-ircd target. 2358 23592003-02-09 Jakub Vlasek 2360 2361 * s_bsd.c/connect_inet(): Fixed compile error. (from Shigeru Okumura) 2362 23632002-12-28 Jakub Vlasek 2364 2365 * msg_def.h, parse.c, s_serv.c, s_serv_ext.h: Added SET command. 2366 * config.h.dist: Added OPER_SET and LOCOP_SET defines. 2367 * s_misc.c: Added initruntimeconf() used for initialisation of 2368 struct iconf. 2369 * ircd.c, ircd_ext.h: Added declaration of iconf. Structure used 2370 for keeping run-time configuration data. 2371 * ircd.c/main(): Call initruntimeconf(). 2372 * ircd.c/try_connections(): Do not autoconnect if autoconnect 2373 disabled via SET. 2374 23752002-11-29 Jakub Vlasek 2376 2377 * mkpasswd.c, contrib/mkpasswd/README: New version from W. Campbell. 2378 23792002-11-25 Jakub Vlasek 2380 2381 * s_user.c/m_nick(): Allow user to set his nick to UID by specifying 2382 nick 0 or his own UID. 2383 * s_serv.c/m_stats(): Made stats 'Z' and 'z' behave the same if 2384 DEBUGMODE not set. 2385 * s_err.c/RPL_YOURID: Send UID before the text of numerics. 2386 * chkconf.c: Enclosed debug messages with #ifdef DEBUGMODE. 2387 23882002-11-24 Jakub Vlasek 2389 2390 * struct_def.h: Added source_ip to struct ConfItem. 2391 * list.c/make_conf(): set source_ip to NULL. 2392 * list.c/free_conf(): Free source_ip. 2393 * s_bsd.c/connect_inet(): Use aconf->source_ip to bind correct IP 2394 for outgoing connections. 2395 * s_conf.c/initconf(): Fill aconf->source_ip. 2396 * 2.11-New: Added. 2397 * s_serv.c/m_stats(), report_fd(): Support for stats F. 2398 23992002-11-23 Piotr Kucharski 2400 2401 * ircd.c/check_pings(), s_misc.c/exit_client(), config.h.dist: 2402 DelayedKills upon rehash. 2403 24042002-11-22 Jakub Vlasek 2405 2406 * s_serv.c/m_stats(): Do not reply to stats requests with more than 2407 1 char. 2408 24092002-11-22 Piotr Kucharski 2410 2411 * numeric_def.h, channel.c/m_join(),m_topic(), s_err.c, config.h.dist, 2412 struct_def.h: who and when set the topic. 2413 * s_err.c, s_user.c/send_whois(), config.h.dist: signon time in whois. 2414 * numeric_def.h, s_serv.c/m_server_estab(),m_lusers(), struct_def.h, 2415 s_err.c: info (numerics 265 and 266) and notices about max local/global 2416 client count. 2417 * s_service.c, s_serv.c, s_user.c: keep stats about max client values. 2418 * struct_def.h, s_misc.c/initstats(),exit_client(), config.h.dist, 2419 s_user.c/register_user(): notice on in/de-creasing local clients count. 2420 24212002-11-11 Jakub Vlasek 2422 2423 * s_err.c: Changed text of ERR_TOOMANYMATCHES. 2424 * channel.c/m_list(): Terminate LIST output when the client has less 2425 than 10% of available sendQ free. 2426 24272002-10-13 Jakub Vlasek 2428 2429 * ircdwatch.c/sig_handler(): Removed extra semicolon after #endif. 2430 24312002-10-09 Kurt Roeckx 2432 2433 * support.c, support_ext.h, channel.c, list.c res.c, s_bsd.c, s_id.c, 2434 s_misc.c, s_service.c, s_zip.c: MyFree now takes a void * as argument. 2435 24362002-09-29 Jakub Vlasek 2437 2438 * iauth-internals.txt: Update for 2.11 protocol (added kill reason). 2439 * struct_def.h: Added reason to struct Client - used for storing 2440 of extended information about client quit (like from iauth modules). 2441 * a_conf.c: Parse reason from iauth.conf 2442 * a_conf_def.h: Added reason to struct Instance. 2443 * mod_socks.h: Send kill reason to ircd. 2444 * list.c/free_client(): Free aClient->reason. 2445 * s_auth.c: Parse kill reason from iauth. 2446 * s_user.c/register_user(): Send kill reason from iauth to the client. 2447 24482002-09-13 Jakub Vlasek 2449 2450 * ircd.c, s_ircd.c: Make -t (don't fork) available even when not 2451 DEBUGMODE used. 2452 * s_serv.c/report_configured_links(): Show * in I-line flag 2453 field if no flag defined. 2454 * s_user.c/m_oper(), config.h.dist: Added FAILED_OPERLOG to log 2455 failed oper attempts. 2456 * s_debug.c: Added FAILED_OPERLOG to version output. 2457 24582002-09-08 Jakub Vlasek 2459 2460 * channel.c/m_list(), config.h.dist: Added LIST_ALIS_NOTE. 2461 24622002-09-06 Piotr Kucharski 2463 2464 * s_user.c/m_nick(): when checking for correct number of params 2465 in NICK when it comes from server, prior to collision make 2466 sure the other side sent proper number of params in NICK 2467 and kill only the wrong side, as it is protocol error. 2468 24692002-08-25 Jakub Vlasek 2470 2471 * parse.c/getfield(): Support quoting of delimiter in ircd.conf. 2472 * s_user.c/m_user(): Fixed crash introduced during last change 2473 (from Grega Pogacnik). 2474 24752002-08-24 Piotr Kucharski 2476 2477 * parse.c/remove_unknown(), channel.c/collect_channel_garbage(), 2478 s_misc.c/exit_client(), s_serv.c/m_server(): move some messages from 2479 SCH_LOCAL to SCH_NOTICES (from jv). 2480 * mod_socks.c/socks_init(): added 'megaparanoid' option, which denies 2481 access to everything listening on 1080 and not answering explicitly 2482 that it is closed proxy; that includes all protocol errors etc. 2483 * mod_socks.c/socks_read(), doc/iauth.conf.5: modified to use above. 2484 24852002-08-23 Piotr Kucharski 2486 2487 * irc_sprintf.c,irc_sprintf_body.c,irc_sprint_ext.h: added irc_vsprintf; 2488 irc_sprintf() now supports most of basic formats and modifiers (no 2489 uid support yet). 2490 * s_user.c/m_message(): changed syntax for oper mass notices from 2491 $/#-mask to $$/$#-mask (since it may go confused with channels). 2492 * channel.c/send_channel_modes(): allow mixing beI (compatibility 2493 with 2.9, no longer needed). 2494 * s_serv.c/m_stats(): allow 'stats L nick' without penalizing with 2495 RPL_TRYAGAIN. 2496 * res.c/proc_answer(): check if answer is matching the request (from Q). 2497 24982002-08-05 Piotr Kucharski 2499 2500 * s_user.c/m_nick(): check for correct number of params in NICK when 2501 it comes from server before checking for collisions. 2502 25032002-08-04 Piotr Kucharski 2504 2505 * class.c/add_class(): typo in debug string. 2506 25072002-08-01 Piotr Kucharski 2508 2509 * struct_def.h: added invLink struct, similar to Link, but keeps 2510 also 'char *who'. 2511 * list.c, list_ext.h: make_invlink() and free_invlink() added. 2512 * channel.c/add_invite(): added sptr param for remembering who 2513 invited us to every channel. 2514 * channel.c/del_invite(): also free memory allocated in add_invite(). 2515 * channel.c/can_join(): announce to channel who invited banned user. 2516 25172002-07-31 Piotr Kucharski 2518 2519 * hash.c/m_hash(): was '%Full', should've been '%%Full'. 2520 25212002-07-30 Piotr Kucharski 2522 2523 * s_serv.c/trace_one(): don't send UID to local clients (from Zobo). 2524 25252002-07-29 Piotr Kucharski 2526 2527 * got rid of !STDARG from everywhere. 2528 * got rid of R lines from everywhere. 2529 * got rid of SPRINTF define from everywhere. 2530 * added irc_sprintf() function, which will handle %y. 2531 25322002-07-06 Jakub Vlasek 2533 2534 * struct_def.h: added defines for I: line flags. Added ->flags to 2535 struct ConfItem (from Beeth). 2536 * ircd.c/check_pings(),s_user.c/register_user(): added support for 2537 kline exemptions. 2538 * s_conf.c,s_conf_ext.h iline_flags_parse(), iline_flags_to_string() 2539 added. 2540 * s_conf.c/initconf(),attach_Iline: added support for kline exemptions. 2541 * s_err.c: Added string field to RPL_STATSILINE for iline flags. 2542 * s_serv.c/show_configured_links(): Show iline flags. 2543 25442002-07-05 Piotr Kucharski 2545 2546 * s_serv.c/trace_one(): removed duplicated argument causing core. 2547 * channel.c/set_mode(): use ->uid only if it HasUID (from Zobo). 2548 * s_conf.c/find_kill(): don't check interval if TIMEDKLINE is not 2549 defined. 2550 * s_conf.c/check_time_interval(): surround it by #ifdef TIMEDKLINE. 2551 25522002-07-04 Jakub Vlasek 2553 2554 * hash.c/m_hash(): rewritten to support all hashes. 2555 * send.c/sendto_ops_butone(): Rewritten to use local[] instead 2556 of client linked list. 2557 * s_sev.c/m_close(): Send message about closing to SCH_NOTICE too. 2558 * parse.c/find_userhost(): Enclose with CLIENT_COMPILE. 2559 25602002-06-11 Piotr Kucharski 2561 2562 * channel.c/m_njoin(): use ->uid if HasUID, not ->name (from Zobo). 2563 * s_serv.c/m_eob(): missing argument (from Zobo). 2564 25652002-06-03 Jakub Vlasek 2566 2567 * parse.c/find_userhost(): use hostname hash for faster lookup. 2568 25692002-06-01 Jakub Vlasek 2570 2571 * struct_def.h: added hhashv,hhnext to struct User (used by hostname 2572 hash). 2573 * hash.c, hash_def.h, hash_ext.h: added hostname hash. 2574 * s_conf.c/attach_conf(): use hostname hash for userhost limits. 2575 * s_user.c/register_user(): add user to hostname hash. 2576 * s_misc.c/exit_one_client(): remove user from hostname hash. 2577 * ircd.c/read_ircdtune(): initialise size of hostname hash to size 2578 of client hash. 2579 25802002-06-01 Kurt Roeckx 2581 2582 * class.c, class_ext.h, class_def.h: Make maxSendq an int. 2583 * send.c, channel.c, support.c: Add extra {} and () to stop compiler 2584 warnings. Also removed some unused variables. 2585 * ircd.c: Make variables used in signal handlers volatile. 2586 25872002-06-01 Piotr Kucharski 2588 2589 * a_conf.c/conf_err(): exit iauth on config error. 2590 * bsd.c, packet.c, struct_def.h, s_bsd.c, s_misc.c, s_serv.c, send.c: 2591 got rid of receiveK and sendK from struct Client, got rid of is_cks, 2592 is_ckr, is_sks, is_skr from struct stats, changed receiveB, sendB 2593 is_cbs, is_cbr, is_sbs, is_sbr to unsigned long long. 2594 * list.c/make_client(): add initialization of stats variables. 2595 * send.c/sendto_flog(): new log format. 2596 * struct_def.h: more EXITC_ codes. 2597 * s_user.c, s_user_ext.h: got rid of ereject_user(), use exit_client() 2598 instead. 2599 * ircd.c/check_pings(), s_bsd.c/add_connection(), 2600 s_user.c/register_user(): set proper cptr->exitc, use exit_client() 2601 instead of ereject_user(), get rid of duplicating sendto_flog()s. 2602 * s_misc.c/exit_client(): log everything from here, use sptr->exitc. 2603 * config.h.dist: add LOG_OLDFORMAT define. 2604 * s_id_ext.h: readded cid_ok() declaration, we use it (via macro) in 2605 other files. 2606 26072002-05-26 Piotr Kucharski 2608 2609 * send.c/sendto_flog(): ircd was not honouring SYSLOG_CONN and 2610 SYSLOG_USERS being undefined (reported by Francesco). 2611 26122002-05-22 Jakub Vlasek 2613 2614 * s_serv.c/m_server(): Show the name of the server which caused 2615 server exists error in squit message. 2616 26172002-05-20 Piotr Kucharski 2618 2619 * s_err.c: removed mistakenly changed format of I: and K:. 2620 26212002-05-20 Jakub Vlasek 2622 2623 * s_conf.c/detach_conf(): remove config entry from conf linked list 2624 while freeing it (reported by BitKoenig). 2625 * buildm4: added EXTRAPORT, SERVICE macros, fixed RESTRICTED and ME 2626 macros (from W.Campbell. 2627 * m4macros: updated (from W. Campbell). 2628 26292002-05-19 Piotr Kucharski 2630 2631 * channel.c/m_mode(): remove not needed chanop (from BitKoenig). 2632 26332002-05-19 Jakub Vlasek 2634 2635 * s_user.c/who_find(): Initialise myoper to 0, show +i user 2636 to himself (from BitKoenig). 2637 * s_serv.c/m_trace(): Fixed condition causing wrong users being 2638 shown, added comments (from BitKoenig). 2639 26402002-04-23 Jakub Vlasek 2641 2642 * s_conf.c/rehash(): Do not delist config entries which are still 2643 used. 2644 26452002-04-19 Jakub Vlasek 2646 2647 * res.c/bad_hostname(): added defineable more restrictive hostname 2648 checking (by Mario 'BitKoenig' Holbe) 2649 * config.h.in: added define RESTRICT_HOSTNAMES. 2650 26512002-04-16 Jakub Vlasek 2652 2653 * parse.c, parse_ext.h: added find_matching_client(). 2654 * struct_def.h: added usercnt[3] array to struct server for per-server 2655 user counts. 2656 * channel.c, channel_ext.h: removed count_channels(). 2657 * s_misc.c/exit_one_client(), s_user.c/register_user, m_oper(): 2658 Update per-server user count. 2659 * s_serv.c/m_trace(): splitted into two functions, m_trace 2660 and trace_one(). 2661 * s_serv.c/m_lusers(),m_trace(): Improved performance by using 2662 per-server usercnt[], instead of counting users each time. 2663 26642002-04-11 Piotr Kucharski 2665 2666 * s_user.c/register_user(): validusername() was checking also OTHER 2667 type ident, which could have been encrypted. 2668 * s_id_ext.h: remove unused, add new extern declariations. 2669 * example.conf: update. 2670 26712002-04-06 Piotr Kucharski 2672 2673 * s_serv.c/m_server_estab(),m_eob(): send empty EOB if we have no 2674 leaf-servers EOB-ed. 2675 * parse.c,s_serv.c: add missing parameter to idtol(). 2676 26772002-04-07 Jakub Vlasek 2678 2679 * bsd.c/deliver_it(): Removed call to hold_server() (which has been 2680 removed). 2681 * s_serv.c/m_eob(): Fix notices about received EOBs, warn about 2682 multiple local EOBs. 2683 * support.c/inetntop(): Use the_size for bcopy() properly. 2684 * ircd.c/setup_me(): Copy PATCHLEVEL into me.serv->verstr. 2685 * ircd.c: Move add_to_sid_hash_table to setup_me() from main(). 2686 26872002-04-06 Jakub Vlasek 2688 2689 * s_user.c/save_user(): Send ME as source of RPL_SAVENICK if collision 2690 is generated locally. 2691 * s_serv.c/m_eob(): Pass sid+1 as a parameter to find_tokserver() 2692 for fake SIDs. 2693 26942002-04-05 Jakub Vlasek 2695 2696 * s_service.c/m_service(),m_servset(),m_servlist(): Changed atoi() 2697 to strtol() to allow hexadecimal arguments. 2698 * msg_dev.h: Added EOB, removed useless comments. 2699 * parse.c: Added m_eob to msgtab. Added find_target(). 2700 * parse_ext.h: Added declaration of m_eob(). 2701 * struct_def.h: Added IsBursting(), SetEOB() defines and FLAGS_EOB. 2702 Added is_eobservers to istat array. 2703 * s_misc.c/exit_one_client(): Decrease istat.is_eobservers if EOBed 2704 server quits. 2705 * s_numeric.c/do_numeric(): Added EOB emulation support, use 2706 find_target(). 2707 * s_serv.c/m_server(): Send PINGs on server introduction for EOB 2708 emulation. m_server_estab(): Send EOB(s) after burst. 2709 Added: m_eob(), do_emulated_eob(), 2710 * s_serv_ext.h: Added declaration for do_emulated_eob(). 2711 * s_user.c/m_pong(): Added support for EOB emulation. 2712 27132002-03-29 Jakub Vlasek 2714 2715 * channel.c/m_names(): Rewritten, channel names handling moved to 2716 names_channel(). 2717 * channel.c/m_list(): Partialy rewritten, don't send +p channels 2718 user is not member of anymore. 2719 * s_user.c/who_find(): Rewritten. 2720 * s_user.c/m_who(): Moved colapse() down to fix bug which made 2721 impossible to use WHO on channels with * in their name. 2722 27232002-03-24 Jakub Vlasek 2724 2725 * s_user.c/m_oper(): Send +O after local oper opers and +o when global 2726 opers to services - was reversed (reported by Olafur Osvaldsson). 2727 * s_user.c/send_umode_out(): Check for service distribution 2728 (reported by Olafur Osvaldsson). 2729 * s_service.c/sendnum_toone(): Send user modes to services with 2730 SERVICE_WANT_OPER (by Olafur Osvaldsson). 2731 27322002-03-23 Piotr Kucharski 2733 2734 * s_serv.c/check_servername(): initialize all vars (problem reported 2735 by ZZyZZ). 2736 27372002-03-14 Jakub Vlasek 2738 2739 * ircd.c/setup_signals(): Ignore SIGTRAP on FreeBSD to prevent crash 2740 after detaching ircd in gdb. 2741 * support.c: Added #ifndef CLIENT_COMPILE around make_isupport. 2742 27432002-03-15 Jakub Vlasek 2744 2745 * support.c,s_conf.c: Read network name from ircd.conf. 2746 * s_conf.c/s_conf_ext.h: Added networkname global variable. 2747 * ircd.c: Added warning message about network name not being set. 2748 * config.h.dist: Removed SERVER_ID and NETWORK_NAME defines. 2749 27502002-03-14 Jakub Vlasek 2751 2752 * s_bsd.c,s_bsd_ext.h: Moved daemonization from init_sys() into 2753 daemonize(). 2754 * ircd.c,ircd_ext.h,s_conf.c: Read SID from M-line instead of #define. 2755 * ircd.c,list.c,s_conf.c: Send error messages during server boot 2756 to stderr. Show message that server successfuly started. 2757 * list.c/outofmemory(): Die instead of restart if the server 2758 is booting. 2759 27602002-03-13 Jakub Vlasek 2761 2762 * numeric_def.h, s_err.c, s_user.c/save_user(): Added RPL_SAVENICK 2763 to inform user that his nick is being changed to UID after 2764 nick collision. 2765 27662002-03-03 Jakub Vlasek 2767 2768 * support.c: added make_isupport() used for 005 numeric generation. 2769 * s_user.c/register_user(): send 005 numeric. 2770 * numeric_def.h, support_ext.h, ircd.c, s_err.c,version.c.SH.in, 2771 version_ext.h,config.h.dist: added support for 005 numeric. 2772 * struct_def.h, channel_def.h: moved MAXMODEPARAMS into 2773 struct_def. 2774 * s_user.c/m_kill(): removed u@h from killpath. 2775 * s_user.c/m_save(): better argument checking. 2776 * s_user.c/m_oper(): changed missed err_str() to replies[]. 2777 * s_bsd.c/init_sys(): setpgrp() takes no argument on cygwin. 2778 * s_serv.c/m_connect(): When doing 'CONNECT serv 0', look up proper 2779 port from config file; if we find it negative (to prevent AC), 2780 use absolute value of it. 2781 27822002-01-22 Jakub Vlasek 2783 2784 * tkserv.c: Fixed potential overflow (from W.Campbell) 2785 27862002-01-07 Piotr Kucharski 2787 2788 * list.c/make_server(): introduced used_tokens table and IsBitSet, 2789 SetBit, ClearBit defines (from Q). 2790 * s_serv.c/m_links(): don't show masked servers. 2791 * s_id.c: moved CHIDNB define to struct_def.h (we need it in list.c). 2792 * list.c/make_server(): return NULL, do not abort, if used_tokens array 2793 is exhausted. 2794 * s_serv.c/m_server(),m_smask(),m_server_estab(),ircd.c/setup_me(), 2795 s_bsd.c/connect_server(): deal with return value of make_server(). 2796 * list.c/make_server(),list_ext.h: remove unused 'add' parameter. 2797 27982002-01-06 Piotr Kucharski 2799 2800 * s_serv.c/m_server_estab(),s_service.c/m_service(), 2801 s_user.c/register_user(): if link we send NICK/UNICK/SERVICE to is 2802 UID capable, send client->servp->tok, not me.serv->tok. 2803 * s_misc.c/exit_one_client(): don't decrease istat.is_serv when 2804 server is masked. 2805 * s_misc.c/exit_server(): regenerate SQUITs to send them to &SERVERS. 2806 * s_serv.c/m_server(): squit link if no SID was given on a 2.11 link. 2807 * hash.c/bigger_hash_table(): add only ST_UID sptrs to sid_hash_table. 2808 * parse.c/find_sender(): strlen(sid)==SIDLEN, not sid[SIDLEN]=='\0'. 2809 * list.c/make_server(), s_serv.c/m_smask(), s_user.c/register_user(): 2810 fix bug of dropping unknown clients (NICKs) coming behind from 2.10 2811 masked behind 2.11. *NOTE*: do it better, like add all servers to 2812 svrtop or have token array. (from Q). 2813 28142002-01-05 Piotr Kucharski 2815 2816 * parse.c/find_sender(): sid and fake sid aware now. 2817 * parse.c, msg_def.h: aware of m_smask(). 2818 * struct_def.h: ismasked, left, right, down, servers to Server struct. 2819 * struct_def.h, ircd.c: changed FLAGS_RESTRICTED to FLAGS_RESTRICT, 2820 used SetRestricted or IsRestricted wherever possible. 2821 * struct_def.h, send.c: changed FLAGS_DEADSOCKET to FLAGS_DEADSOCK, 2822 used SetDead wherever possible. 2823 * hash.c/del_from_sid_hash_table(): remove unnecessary parameter, 2824 use sptr, not cptr->server for sidhashv. 2825 * s_misc.c/mark_blind_servers(): use ptr to server, not server->name 2826 as argument. 2827 * following work came from jv, cleaned by Q. 2828 * s_serv.c/m_squit(): made aware of sids; removed issuing additional 2829 squit (we'll do it in exit_client); don't show received squits if 2830 they come from masked servers. 2831 * ircd.c/setup_me(), s_bsd.c/connect_server(): initialize ->maskedby. 2832 * s_misc.c: added exit_server(). 2833 * s_misc.c/exit_client(): rewritten to use exit_server(). 2834 * s_misc.c/exit_one_client(): rewritten to be aware of SIDs and doing 2835 proper SQUITs/QUITs; also added using servers' tree. 2836 * s_serv.c: added functions send_server(), introduce_server(), m_smask(), 2837 send_server_burst(), add_server_to_tree(), remove_server_from_tree(). 2838 * s_serv.c/m_server(): simplified checks of parameters; added checks 2839 of SID we receive; add using servers' tree; removed checks of C/N 2840 (should be in m_rehash). 2841 * s_serv.c/m_server_estab(): check masks to avoid same mask inside; 2842 store temporarily version we received in PASS in hopcount; add 2843 using servers' tree; fill in (compatibility) SIDs and ltok; change 2844 some (repeating) code to functions (introduce_server). 2845 28462002-01-04 Piotr Kucharski 2847 2848 * ircd.c/main(): check if SERVER_ID is valid. 2849 * config.h.dist: changed default SERVER_ID. 2850 * s_err.c: changed ERR_YOUREBANNEDCREEP format. 2851 * s_conf.c/find_kill(): show user@host in K:line error. 2852 * list.c/make_server(): add parameter used for deciding 2853 whether to add server to tree or not. 2854 28552001-12-31 Piotr Kucharski 2856 2857 * s_user.c/m_unick(): while creating client we messed with server 2858 pointer, adding ->user struct to it, which later made m_server 2859 reject servers (from jv). 2860 28612001-12-30 Piotr Kucharski 2862 2863 * s_user.c/m_nick(): allow restricted users change nick from saved uid. 2864 * common_def.h, match.c, struct_def.h, s_user.c, config.h.dist: add 2865 RESTRICT_USERNAME code to reject users with special chars in their 2866 usernames. Also revamp char_atribs[] table. 2867 * match.c: added isvalidusername(). 2868 28692001-12-29 Piotr Kucharski 2870 2871 * s_user.c/register_user(): we assigned uid after we sent UNICK. 2872 * s_bsd.c/completed_connection(),s_serv.c/m_server(): send SID 2873 in SERVER command. 2874 * s_user.c/register_user(): send user sid as source, not always ours. 2875 * s_id.c/check_uid(): use cid_ok() to check all chars, check len. 2876 * s_user.c/m_unick(): use check_uid(), not simple strlen(uid). 2877 * s_user.c/m_unick(): squit link feeding us with bad UID. 2878 * s_user.c/m_unick(),m_nick(): removed checking for collisions 2879 with servers (this cannot happen). 2880 * config.h.dist, s_id.c, struct_def.h, s_debug.c: add UIDLEN and 2881 use it wherever possible; this is for allowing longer nicks without 2882 having to have longer uids. 2883 28842001-12-29 Kurt Roeckx 2885 2886 * struct_def.h, ircd.c, s_bsd.c, s_misc.c, s_serv.c, s_service.c: 2887 Convert up from a string to a pointer to a client. (from jv) 2888 28892001-12-28 Piotr Kucharski 2890 2891 * s_conf.c/find_kill(): make K:user@host remove also +r clients 2892 (that is, +user@host). 2893 * s_misc.c/get_sockhost(): don't trust input values, so we don't 2894 accidentally copy on null. 2895 * s_user.c/m_unick(): cleanup, remove m_user() call, fill whatever 2896 we need to fill in this function directly. 2897 * s_id.c/sid_valid(): allow fake sids. 2898 28992001-12-26 Kurt Roeckx 2900 2901 * channel.c/m_kick(): Add support for UIDs in KICK. 2902 29032001-12-25 Kurt Roeckx 2904 2905 * send.c, struct_def.h, channel.c, channel_ext.h, s_send.c, 2906 s_serv.c: Removed some 2.9 protocol support. (From jv) 2907 29082001-12-24 Piotr Kucharski 2909 2910 * s_user.c/m_unick(): changes, including ip, removing token and 2911 hopcount 2912 29132001-12-24 Kurt Roeckx 2914 2915 * channel.c/set_mode(): Only allow UIDs from the server. 2916 * s_user.c/m_message(): privmsg/notice now support UIDs. 2917 29182001-12-23 Kurt Roeckx 2919 2920 * parse.c/find_sender(): Default parv[0] to sptr->from. 2921 29222001-12-22 Piotr Kucharski 2923 2924 * s_bsd.c/check_server(): check for class being legal, so we 2925 do not core later. 2926 * s_serv.c: introduced get_version() for easier reading; also 2927 few changes to it. 2928 * parse.c: added find_sid(). 2929 29302001-12-21 Kurt Roeckx 2931 2932 * parse.c/parse(), find_sender(): Add support for UID as source of a 2933 message. (From jv) 2934 * channel.c/m_mode(), set_mode(): Made MODE use UID when posible. 2935 29362001-12-20 Kurt Roeckx 2937 2938 * msg_def.h, numeric_def.h, parse.c, send.c, struct_def.h, ircd.c, 2939 s_bsd.c, s_bsd_ext.h, s_err.c, s_misc.c, s_serv.c, s_serv_ext.h: 2940 Get rid of reconnect. 2941 29422001-12-13 Piotr Kucharski 2943 2944 * configure: a typo made FreeBSD 5.0 be taken for Solaris 2.0 2945 29462001-12-08 Kurt Roeckx 2947 2948 * struct_def.h, hash.c, hash_ext.h, ircd.c: Add a sid hash table, and 2949 add ourself to it. (From jv) 2950 * channel.c/m_njoin, send_channel_members(): Make NJOIN use UIDs 2951 (based on work from Zobo) 2952 29532001-10-25 Piotr Kucharski 2954 2955 * config.h.dist: minor explanatory changes 2956 29572001-06-09 Kurt Roeckx 2958 2959 * s_err.c: Change RPL_BOUNCE to use a %d instead of %s 2960 29612001-02-26 Kurt Roeckx 2962 2963 * struct_def.h, ircd.c, s_id.c, s_id_ext.h, s_misc.c, s_user.c, 2964 config.h.dist: Properly generate UID's, and SAVE user where we can. 2965 29662001-02-10 Kurt Roeckx 2967 2968 * s_err.c, numeric_def.h: Change RPL_BOUNCE to numeric 010. 2969 29702001-01-15 Piotr Kucharski 2971 2972 * s_user.c/m_unick(): fixed irritating typo (parv[7] vs. parv[8]) 2973 29741999-09-21 Piotr Kucharski 2975 2976 * channel.c, class.c, parse.c, s_bsd.c, s_conf.c, s_err.c, 2977 s_err_ext.h, s_misc.c, s_serv.c, s_service.c, s_user.c, 2978 struct_def.h, whowas.c: rewritten to use replies[] table 2979 directly, not rpl_str()/err_str(). 2980 29811999-09-18 Christophe Kalt 2982 2983 * wrote s_send.c to provide specialized functions equivalent to 2984 sendto_*() but dealing with UID issues and hiding them from above 2985 layers. 2986 29871999-08-31 Kurt Roeckx 2988 2989 * s_user.c/m_kill: acptr wasn't initialised 2990 29911999-06-?? Christophe Kalt 2992 2993 * hash_ext.h, msg_def.h, numeric_def.h, parse_ext.h, struct_def.h, 2994 s_id_ext.h, s_user_ext.h, channel.c, hash.c, ircd.c, list.c, 2995 parse.c, send.c, s_err.c, s_id.c, s_misc.c, s_serv.c, s_user.c: 2996 basic 2.11 functionnality: added uid hash tables, &SAVE channel, 2997 m_unick(), m_save(), save_user(), new numeric 42. 2998 29992.10.3p3 3000 30012001-01-19 Piotr Kucharski 3002 3003 * s_misc.c,s_debug.c: changed %d or %u to %lu in various places. 3004 * s_serv.c/m_stats(): allow unlimited stats c for opers. 3005 * config.h.dist: define NOWRITEALARM by default, saves us calls. 3006 * mkpasswd: new version from Walter Campbell. 3007 30082001-10-18 Piotr Kucharski 3009 3010 * res.c/make_cache(): bug allowing to spoof hosts (from Q). 3011 * a_defines.h, a_log_def.h: do not debug iauth by default (from jv). 3012 * send.c/sendto_flog(): format string bug. 3013 * send.c/send_message(): service exceeding sendq under some conditions 3014 entered endless loop of errors (thus coring ircd) (reported by Gael). 3015 * send.c/send_message(): label 'tryagain' moved below zip_buffer, 3016 so we don't zip already zipped buffer (from Oleg Medinsky). 3017 * s_user.c/m_umode(): clear local oper received from remote 3018 servers (fixes wrong oper count!) (from Oleg Medinsky). 3019 * packet.c/dopacket(): me.receiveK wasn't updated properly (from jv). 3020 30212.10.3p2 3022 30232001-07-07 Piotr Kucharski 3024 3025 * send.c/send_message(): once we adjusted pool size during 3026 netjoin, we did not add to queue parts of burst (from jv). 3027 * channel.c/send_mode_list(), send_channel_modes(): reverted 3028 change from 2001-02-07 (about space in MODEs); fixed 3029 sending more than MAXMODEPARAMS modes (from Q). 3030 * s_user.c/send_whois(): get rid of one find_server(), we 3031 don't need it. 3032 30332001-07-05 Piotr Kucharski 3034 3035 * s_conf.c/initconf.c: set default u@h limits to 1.1, not 0. 3036 30372001-07-04 Piotr Kucharski 3038 3039 * match.c: char_atribs table was missing one element (at least 3040 nine year old bug!) 3041 30422001-07-02 Piotr Kucharski 3043 3044 * channel.c/m_list(),m_names(): forwarding queries using 3045 hunt_server() makes sense only with parc > 2 3046 30472001-06-30 Kurt Roeckx 3048 3049 * s_bsd.c/add_connection: use fd instead of acptr->fd, which isn't set 3050 yet 3051 30522001-06-29 Kurt Roeckx 3053 3054 * s_user.c/m_who(): Only call who_one() when we found a client. 3055 * send.c: Removed a ; after an #endif 3056 * s_conf.c: Removed a ; after an #endif 3057 * s_debug.c/send_defines(): removed the space after LDCTL: 3058 * channel.c/m_njoin(): Don't send MODE +O to clients. 3059 30602001-06-06 Piotr Kucharski 3061 3062 * channel.c/reop_channel(): fixed typo, which made sometimes 3063 problems with that code; also changed 3 to MAXMODEPARAMS. 3064 30652001-05-31 Piotr Kucharski 3066 3067 * support.c/inetntop(): logic flaw in checking for 3068 ipv6_is_addr_v4mapped (":ffff:" case). 3069 30702001-05-30 Piotr Kucharski 3071 3072 * s_serv.c/m_who(): almost complete rewrite to reduce unnecessary 3073 showing all clients, hence to save CPU 3074 * mod_socks.c/socks_write(): missing mydata declaration. 3075 30762001-05-16 Piotr Kucharski 3077 3078 * iauth.c/main(): read config before init_filelogs, which depends 3079 for some logs on debuglvl variable (from Q) 3080 30812001-05-15 Piotr Kucharski 3082 3083 * mod_socks.c/socks_write(): don't bother checking socks4 on ipv6 3084 addresses, socks4 doesn't support it anyway. 3085 * mod_socks.c/socks_write(): if v4only option is set, don't switch 3086 to socks5 check for ipv6 3087 * s_serv.c/m_trace(): don't send info about unknown connections to 3088 clients who are not +w 3089 * support.c/inetntop(): check for :FFFF: as well 3090 30912001-05-14 Piotr Kucharski 3092 3093 * send.c/sendto_common_channels(): use ->clist, not ->members; big 3094 channels will benefit from it a lot (from jv). 3095 30962001-05-13 Piotr Kucharski 3097 3098 * s_id.c/cache_chid(): an unfortunate typo making negative Cache 3099 size in stats (from jv). 3100 * s_bsd.c/read_message(), packet.c/dopacket(): if client exceeded 3101 sendq, say so, instead of "Dead Socket" (from jv). 3102 * s_service.c/check_services_butone(),check_services_num(): don't 3103 loop over all fds when we have services linked list (from jv). 3104 * chkconf.c: it was not working properly if .conf was not using ':'. 3105 31062001-05-06 Piotr Kucharski 3107 3108 * list.c/free_client(): we check for local client, since ->auth 3109 is not allocated at all for remotes. 3110 * s_bsd.c/add_connection(): initialize lin.next with NULL. 3111 * ircd.c/ircd_readtune(): initialize buf with zeroes. 3112 * ircd.c/main(),server_reboot(): make syslog stamp ircd messages 3113 only with basename(argv[0]) instead of argv[0]. 3114 * channel.c/m_njoin(): we must initialize p used in strtoken. 3115 31162001-05-05 Piotr Kucharski 3117 3118 * a_log.c/init_filelogs(): don't open iauth.log when debug level 3119 is not set in iauth.conf. 3120 * whowas.c/m_whowas(): 'whowas nick1,nick2 x' was not showing 3121 last x whowas for each nick, only for nick1. 3122 * res_def.h: increased DNS cache table size. 3123 * send.c/sendto_flog(): added syslog() support, fixed potential 3124 buffer overflow. 3125 * s_user.c/ereject_user(),register_user(), s_bsd.c/add_connection(), 3126 s_misc.c/exit_client(): removed those syslog() calls, which are 3127 now in sendto_flog(); this also removed (old) bug in ereject_user() 3128 logging via syslog, when we supplied more parameters than %s in 3129 format, and superfluous param was not the last. 3130 31312001-05-04 Piotr Kucharski 3132 3133 * s_misc.c/exit_client(),mark_blind_servers(): fixed squit routines 3134 not to send QUITs, when SQUIT would do (fix from Jakub Vlasek) 3135 * s_bsd.c/polludp(): show IP upon recvfrom error. 3136 31372001-05-03 Piotr Kucharski 3138 3139 * channel.c/m_kick(): multiply channel kicks are now handled 3140 differently (one channel in a KICK sent), so that old servers 3141 can parse them well. 3142 * ircd.c/main(): added chdir() before chroot(). 3143 31442001-05-01 Piotr Kucharski 3145 3146 * list.c/make_client(),s_auth.c/set_clean_username: revert change, 3147 it can point to static buffer (saves memory), we just have to be 3148 careful not to free() it. 3149 * send.c: added some comments. 3150 * sys_def.h: change MyFree() to set variable to NULL after free() 3151 31522001-04-11 Piotr Kucharski 3153 3154 * s_misc.c: change sizeof(pointer) to strlen(). 3155 31562001-04-06 Piotr Kucharski 3157 3158 * whowas.c/m_whowas(): don't send away info. 3159 * s_auth.c: changing various sizeof(dynamic buffer) to strlen(). 3160 * list.c/make_client(),s_auth.c/set_clean_username: use strdup(). 3161 * a_conf.c/conf_read(): close iauth conf file. 3162 31632001-04-01 Kurt Roeckx 3164 3165 * s_user.c/m_whois(): Fix a memory leak. 3166 * channel.c/m_kick(): Fix a memory leak. 3167 31682001-03-13 Piotr Kucharski 3169 3170 * s_user.c, s_serv.c: pass whole aconf->pass to crypt(); this will 3171 allow modern crypt() to deal with MD5, Blowfish and others. 3172 * contrib/mkpasswd: Walter Campbell's mkpasswd.c to generate also 3173 MD5 passwords 3174 31752001-03-06 Piotr Kucharski 3176 3177 * tkserv.c: potential buffer overflow fixes 3178 31792001-03-05 Piotr Kucharski 3180 3181 * ircd.c/send_pings(): with getting rid of timed klines, we got rid 3182 of checking klines after rehash; let's better reinstate it (from jv) 3183 31842001-03-04 Kurt Roeckx 3185 3186 * bsd.c, s_bsd.c: Remove some sendto()s for ipv6, and use send() like 3187 with ipv4. 3188 31892001-03-02 Piotr Kucharski 3190 3191 * channel.c/m_kick(): 'KICK #chan1,#chan2 nick1,nick2' was not 3192 working properly 3193 31942001-02-28 Piotr Kucharski 3195 3196 * send.c/sendto_flog(),logfiles_open(),logfiles_close(), 3197 s_conf.c/rehash(), ircd.c: Stop open-close logfiles ping-pong, 3198 reopen only on HUP signal. 3199 * s_user.c/m_whois(): show all parameters in ENDOFWHOIS reply 3200 * ircd.c/send_pings(), s_conf.c, config.h.dist: another speedup 3201 by getting rid of rarely used code (here: timed klines) 3202 32032001-02-27 Kurt Roeckx 3204 3205 * c_msg.c/m_join(): Copy the name of the channel just joined. 3206 32072001-02-26 Kurt Roeckx 3208 3209 * ircd.c/main(): Don't die when there is no listen port when called 3210 from inetd. 3211 32122001-02-10 Kurt Roeckx 3213 3214 * s_err.c, numeric_def.h: Undo the RPL_BOUNCE change. 3215 * s_serv.c/m_restart(): Create the buffer before we remove the 3216 clients. 3217 * hash.c/hash_find_server(): Removed unused variable s. 3218 * s_bsd.c/close_connection(): Removed unused variable j. 3219 * s_mis.c/exit_client(): Removed unused variable asptr. 3220 * whowas.c/get_history(): Removed unused variable i. 3221 32222001-02-09 Kurt Roeckx 3223 3224 * s_user.c, s_conf.c, s_conf_ext.h: Make O-lines work with CIDR masks. 3225 * config.h.dist: undefine ZIP_LINKS, if USE_ZLIB is undefined. 3226 * struct_def.h: Use long long to keep stats. 3227 * configure.in, Makefile.in: Don't assume we need the math lib. 3228 * irc.c: refresh() was called while using termcap. 3229 * config.guess, config.sub: Update to the latest version. 3230 * whowas.c: Only grow the locked array when we added at the end of it. 3231 * s_user.c/m_ping(): Make PING work with masked servers. 3232 * s_bsd.c/close_connection(): Don't remap the fd's. 3233 * s_serv.c/m_connect(): Fix a typo: irc.conf -> ircd.conf. 3234 * configure, configure.in: Add a cache check for the mathlib check, 3235 and fix a typo. 3236 32372001-02-08 Kurt Roeckx 3238 3239 * send.c/sendto_channel_butserv(): Use the clist, instead of members. 3240 * s_id.c/ltoid(): Build the right string. 3241 * s_user.c/m_nick(): put user@host in comment for nick change 3242 collision. 3243 32442001-02-07 Kurt Roeckx 3245 3246 * support.c/inetpton(): Do it different. (fixes a buffer overflow.) 3247 * configure, configure.in: Complain if neither strerror(), or 3248 sys_errlist[] is found. 3249 * bsd.c, s_bsd.c, s_debug.c: Don't use sys_errlist[], use strerror(). 3250 * s_misc.c/rehash(): Now only "REHASH q", will flush the dns cache. 3251 * s_service.c/best_service(): Return the closest, instead of the 3252 latest. 3253 * channel.c: Remove en extra space while sending MODE, generated during 3254 bursts. 3255 * channel.c: Use MAXMODEPARAMS instead of 3. 3256 * tkserv.c: Added support for crypted passwords. 3257 * tkserv.c: Add support for ipv6. Now uses '%', instead of ':' where 3258 it should. 3259 * tkserv.c: Unix domain sockets weren't working properly. 3260 * c_numeric.c, numeric_def.h, s_err.c, s_user.c, s_service.c: Fixed 3261 spelling of ERR_ERRONEOUSNICKNAME. 3262 * s_conf.c/match_ipmask(): Check if the mask contains a number. 3263 * s_err.c/rpl_str(), rep_err(): correctly send unknown error reply's. 3264 * s_err.c, numeric_def.h: change RPL_BOUNCE to numeric 010. 3265 32662000-12-11 Kurt Roeckx 3267 3268 * res.c, res_ext.c: fixed resolver problem for host with both an 3269 IN A and IN AAAA record. 3270 32712000-12-08 Kurt Roeckx 3272 3273 * chkconf.c/initconf(): complain about not finding mandatory lines. 3274 * chkconf.c/validate(): make chkconf return -1 when initconf() 3275 failed. 3276 * ircd.c/main(): Make sure that there is an M-line. 3277 * res.c/proc_answer(): cp wasn't updated for unknown types. 3278 * support.c, support_ext.h, a_io.c, mod_socks.c, s_bsd.c, s_conf.c, 3279 c_bsd.c: change inetntop(), and add inetpton(), to be able to use 3280 ipv4 addresses, when using ipv6. 3281 * s_conf.c/match_ipmask(): Make sure that ipv4/mask still works when 3282 using ipv6. 3283 * support.c/inetntop(): Debug() doesn't work for clients. 3284 32852000-12-01 Kurt Roeckx 3286 3287 * whowas.c/find_history(), get_history(): it should be faster 3288 by avoiding work we shouldn't do. 3289 * whowas.c, whowas_def.h: The locked array didn't keep the whole nick. 3290 * s_user.c/m_ison(): prevent a buffer overflow. 3291 32922000-10-22 Kurt Roeckx 3293 3294 * channel.c/set_mode(): mode -i should only remove invites 3295 if it's done by an op. (from Grega Pogacnik) 3296 * res.c: Always query for both IN A, and IN AAAA if INET6 is 3297 defined. 3298 * res.c/get_res(): when it complained about a bad hostname, 3299 the ip's were not correct. 3300 * res.c/update_list(): Using old pointer after realloc() 3301 * channel.c/set_mode(): allow any key to be used to unset the key. 3302 33032000-09-28 Kurt Roeckx 3304 3305 * s_debug.c/debug(): Format string fixes. 3306 * a_log.c/sendto_log(): Format string fixes. 3307 * a_defines.h: Change #if INET6 to #ifdef INET6, like it should. 3308 * mod_socks.c: Added support for socks check using ipv6. 3309 * support.c/MyMalloc(): MyMalloc() was using a wrong ofset. 3310 * send.c/sendto_flog(): Prevent a core if time was set back. 3311 Check msg, instead of duration. 3312 * s_bsd.c/summon(): Made buffer bigger, could be overflowed. 3313 * s_conf.c/match_ipmask(): Make a mask of /0 work using ipv4. 3314 33152000-08-20 Piotr Kucharski 3316 3317 * hash.c/bigger_prime(): no need to check even numbers (speed!) 3318 * hash.c/clear_*_hash_table(): initialize (ch,cl,sv)size to 0 3319 33202000-08-15 Piotr Kucharski 3321 3322 * s_user.c/m_oper(), s_serv.c/m_server_estab(), mkpasswd.c: 3323 sometimes crypt() returned NULL, crashing ircd little further 3324 * a_io.c/parse_ircd(): iauth having lower MAXCONNECTIONS than 3325 ircd crashed giving no explanations 3326 * channel.c/set_mode(): comma used in channel key made joining 3327 that channel impossible 3328 33292000-08-13 Piotr Kucharski 3330 3331 * s_user.c/m_oper(): parens typo (noted by viha) 3332 33332.10.3p1 3334 33352000-05-29 Kurt Roeckx 3336 3337 * s_bsd.c/setup_ping(): typo which caused compile to fail using IPv6 3338 * configure: removed warning about poll() with linux 2.0 and libc6 3339 * res.c/proc_answer(): Added check for too long hostnames 3340 * s_conf.c/find_bounce(): send to the fd instead of class 3341 33422000-05-16 Piotr Kucharski 3343 3344 * s_bsd.c/start_iauth(), config.h.dist: increase socket buffers 3345 for ircd-iauth communication 3346 * channel.c/send_user_joins(): use rindex to check for ':' in 3347 channel names 3348 * hash.c/bigger_hash_table(): removed some unnecessary code 3349 * hash.c/hash_find_*(): removed so called "performance optimization", 3350 which only seemed to eat cpu 3351 * parse.c: require registration for using NJOIN 3352 33532000-05-05 Kurt Roeckx 3354 3355 * a_conf.c/conf_read(): Check cfh properly 3356 * s_auth.c/read_iauth(): olen was calculated wrongly (off by 1) 3357 * s_auth.c/read_iauth(): olen could be != 0 when iauth is restarted 3358 33592000-04-09 Kurt Roeckx 3360 3361 * README, ircdwatch.8, INSTALL: Changed some forgotten references 3362 to @stealth.net to @irc.org 3363 * s_bsd.c/setup_ping(): missing parentheses caused it to listen to 3364 all ip's instead of the selected. 3365 * s_user.c/register_user(): removed some debug message 3366 * channel.c/m_join(): call clean_channelname() faster. 3367 * hash.c/bigger_hash_table(): build client hast table from the old one. 3368 33692000-02-10 Kurt Roeckx 3370 3371 * hash.c/hash_find_server(): prevent creation of illegal pointers 3372 * channel.c/m_join(): called exit_client with correct value's 3373 for a local client 3374 * s_bsd.c/report_error(): calling it with cptr == NULL would cause 3375 a core dump. 3376 * s_serv.c/m_stats(): cleanup of stats l 3377 * s_conf.c: Allow compressed notation in the config file, and 3378 convert it to non-compressed when reading it 3379 * s_user.c/m_nick(): Extra penalty on nick-change if you can't 3380 speak on a channel 3381 * s_err.c: Changed RPL_LUSERME to say how many users he has, it 3382 said incorrectly that it where clients before. 3383 * configure: Try to do better checking for IPv6 capable systems 3384 33852000-02-04 Piotr Kucharski 3386 3387 * mod_socks.c/socks_read(): when using "careful" option, iauth 3388 should not close connection before checking ST_V5b (from 3389 KIKUCHI Takahiro) 3390 33912000-02-03 Kurt Roeckx 3392 3393 * Makefile.in: Added $(LDFLAGS) and $(LIBS) for ircdwatch 3394 * os.h, res.c, s_bsd.c: Removed all s6_laddr's because it's not 3395 portable 3396 * res.c, s_auth.c: added missing calls for inetntop, was using 3397 ipv4 functions while it should be ipv6. 3398 * hash.c: check store to be non-NULL 3399 34002000-01-03 Kurt Roeckx 3401 3402 * ircd.c/io_loop(): removed annoying debug message 3403 * res.c/update_list(): don't use addrcount in for loop 3404 * s_user.c/register_user(): don't cp the username if it's the same 3405 * a_conf.c/conf_read(): fixed missing some initialisation when ident 3406 wasn't loaded 3407 34082000-01-01 Kurt Roeckx 3409 3410 * configure, configure.in: check for md5, FreeBSD uses it. 3411 * match.c: mask can now be empty, and will then return no match 3412 * whowas.c, hash.c: prevent creation of illegal pointers 3413 * s_misc.c/date(): fix for the offset bug during year change 3414 * s_conf.c/match_ipmask(): now checks the username, changed algo 3415 for ipv4, and added it for ipv6. 3416 * s_conf.c/lookup_confhost(): Now correctly checks for ipv6 ips 3417 * chkconf.c/initconf(): No longer free()'s non alloc()'d memory 3418 * res.c/update_list(): Fix for ipv6, and also cleans it up a little 3419 34202000-01-01 Piotr Kucharski 3421 3422 * s_user.c/register_user(): moved some stuff around, so m_lusers 3423 show proper number of clients (including just registered user). 3424 34251999-11-11 Christophe Kalt 3426 3427 * s_bsd.c/add_unixconnection(): needed to be iauth aware. 3428 34291999-11-10 Christophe Kalt 3430 3431 * struct_def.h, channel.c/m_join(): added code to reject clients 3432 trying to join a channel used by the PrettyPark virus. (This is a 3433 sad day). 3434 34351999-11-03 Christophe Kalt 3436 3437 * configure.in: check for getipnodebyname() for IPv6. 3438 3439 * c_bsd.c, resolv_def.h, res_init.c, s_bsd.c: updated code to 3440 follow RFC 2553 (from Roar Thron�s). 3441 3442 * mod_rfc931.c: renamed _data structure which causes problems 3443 under Compaq Tru64 Unix 5.0 (from Roar Thron�s). 3444 34451999-10-30 Kurt Roeckx 3446 3447 * irc.c/main(): me.info was not allocated big enough (off by 1) 3448 34491999-10-04 Kurt Roeckx 3450 3451 * channel.c/reop_channel(): removed a '(' that was there too much 3452 * configure.in: only detect ipv6 as linux, if the header files 3453 are there, and detect if the system has native ipv6 support 3454 * os.h: readded define for POLLRDNORM 3455 * os.h: only define in6addr_any under linux if glibc version is < 2.1 3456 * os.h: removed defenition for uint32_t, which isn't use anywhere. 3457 you should use u_int32_t instead. 3458 * os.h: define s6_laddr as in6a_words, if found, else as s6_addr32 3459 * configure.in, setup.h.in, os.h: check for ncurses/ncurses.h 3460 34611999-10-03 Christophe Kalt 3462 3463 * a_conf.c: OpenBSD doesn't have RTLD_NOW, only RTLD_LAZY (as 3464 reported by Phil Pennock). 3465 34661999-09-23 Piotr Kucharski 3467 3468 * channel.c/reop_channel(): do not reop local restricted clients 3469 (patch from wnelson). 3470 3471 * s_bsd.c/summon(): let summon know about /dev/pts too (from pht). 3472 34731999-09-05 Piotr Kucharski 3474 3475 * whowas.c/m_whowas(): fixed two bad behaviours (reported by viha) 3476 34771999-08-30 Christophe Kalt 3478 3479 * os.h: moved __GNU_SOURCE up (linux). 3480 34812.10.3 3482 34831999-08-13 Christophe Kalt 3484 3485 * channel.c/match_modeid(): logic fix (reported by Michal Svoboda). 3486 3487 * os.h: added YET ANOTHER KLUDGE for linux and poll(). 3488 3489 * ircd.c: assume "-s" option in CYGWIN environment. 3490 3491 * configure.in: update for CYGWIN environment. 3492 34931999-08-13 Piotr Kucharski 3494 3495 * mod_socks.c/socks_read(): allow more methods in socks5 check. 3496 34971999-08-01 Piotr Kucharski 3498 3499 * ircd.c/bad_command(): -d command line option no longer exists, 3500 while -s was added. 3501 35021999-07-28 Christophe Kalt 3503 3504 * struct_def.h: IsChannelName() macro cannot use cid_ok() for the 3505 client. 3506 3507 * channel.c/m_njoin(): inverse condition prevented modes from 3508 being sent to users and 2.9 servers. 3509 35101999-07-27 Piotr Kucharski 3511 3512 * s_id.c/cid_ok(): quite unfortunate typo which made joining 3513 !channels impossible (from Michal Svoboda). 3514 35151999-07-25 Christophe Kalt 3516 3517 * channel.c: sanity checks to drop modes on +channels even when 3518 received from servers (from Michal Svoboda). 3519 3520 * struct_def.h, channel.c, s_id.c: added checks to ensure !name 3521 validity (from Michal Svoboda). 3522 35231999-07-23 Christophe Kalt 3524 3525 * s_bsd.c/inetport(): fixed test for IPv6 (from KIKUCHI Takahiro). 3526 3527 * ircd.c: 3528 * better casting for sbrk() for OSF 4.0. 3529 * setup_me(): fixed syntax for IPv6. 3530 35311999-07-21 Piotr Kucharski 3532 3533 * channel.c/set_mode(): send ERR_UNKNOWNMODE to 'mode O' issued 3534 on non-!channels. 3535 35361999-07-21 Christophe Kalt 3537 3538 * s_misc.c/exit_one_client(): generate fake PARTs for users 3539 quitting anonymous channels. 3540 3541 * send.c/sendto_common_channels(): skip anonymous channels. 3542 3543 * Makefile.in: ircdwatch needs clsupport.o which needs clmatch.o. 3544 3545 * channel.c: added notices to warn users about +a channels. 3546 35471999-07-20 Kurt Roeckx 3548 3549 * channel.c: 3550 * m_njoin: send +v for uniqops in the right case 3551 * send_channel_members: send +v inside njoin for ops too 3552 * m_invite: send back numerics if the channel doesn't exist 3553 35541999-07-18 Piotr Kucharski 3555 3556 * channel.c/set_mode(), m_kick(): send ERR_NOTONCHANNEL, not 3557 ERR_CHANOPRIVSNEEDED, thus disable stealth secret channel probing; 3558 furthermore, use rather sptr->name, not parv[0] in sending errors; 3559 35601999-07-17 Christophe Kalt 3561 3562 * ircd.c/setup_me(), s_bsd.c: fixed that really old bug about the 3563 I line format to match connections received on the loopback 3564 interface (from Eugene L. Vorokov). 3565 3566 * configure.in: fixed previous changes about poll() (reported by 3567 KIKUCHI Takahiro). 3568 35691999-07-17 Kurt Roeckx 3570 3571 * s_user.c/m_kill(): killer could end up < path 3572 35731999-07-14 Christophe Kalt 3574 3575 * configure.in, os.h: use ncurses.h (from KIKUCHI Takahiro). 3576 3577 * configure.in: SunOS has poll(), but we don't want to use it 3578 (reported by KIKUCHI Takahiro). 3579 3580 * mod_lhex.c: replaced strtoul() with sscanf(). 3581 35821999-07-11 Christophe Kalt 3583 3584 * a_defines.h was missing support_def.h (from KIKUCHI Takahiro). 3585 3586 * Makefile.in: ircdwatch.c uses strerror(), needs clsupport.o 3587 (from KIKUCHI Takahiro). 3588 3589 * config.h.dist, ircd.c, s_debug.c: renamed CONNECTTIMEOUT to 3590 ACCEPTTIMEOUT, and changed from 30 to 90. 3591 35921999-07-11 Piotr Kucharski 3593 3594 * mod_socks.c: 3595 * socks_write(): a typo made iauth allow open proxies and 3596 caused a lot of BADPROTO warnings (from KIKUCHI Takahiro). 3597 * socks_init(): buffer overflow with tmpbuf[] being too 3598 small to hold too many iauth options (also from Takahiro). 3599 36001999-07-09 Christophe Kalt 3601 3602 * configure.in, os.h, s_bsd.c: IPv6 updates (from KIKUCHI Takahiro). 3603 36041999-07-05 Christophe Kalt 3605 3606 * s_bsd.c/read_message(): can't use iauth_options when USE_IAUTH 3607 is undefined. 3608 36091999-07-05 Piotr Kucharski 3610 3611 * channel.c/m_invite(): invite to :-channels was sometimes 3612 lost with no error. 3613 36141999-07-04 Christophe Kalt 3615 3616 * a_conf_def.h, a_conf.c, a_io.c: added the "timeout" option. 3617 3618 * mod_socks.c: added PROXY_BADPROTO & OPT_PROTOCOL to 3619 differentiate between unexpected and bad protocol. 3620 3621 * s_id.c: fixed alphabet_id[] (noted by Michal Svoboda), and 3622 rewrote some code. 3623 36241999-07-04 Piotr Kucharski 3625 3626 * s_user.c/m_nick(): fix performance bug introduced in code 3627 preventing insidious collisions 3628 3629 * mod_socks.c/socks_open_proxy(): now reports in logs versions 3630 of open proxies found 3631 36321999-07-02 Kurt Roeckx 3633 3634 * configure.in, Makefile.in: Added -I for inet6. 3635 36361999-07-02 Christophe Kalt 3637 3638 * res.c/proc_answer(): portability fix from hybrid6. 3639 3640 * send.c/sendto_match_butone(): finally looked closely at why this 3641 was sending $*.mask to the wrong servers, fixed. 3642 3643 * struct_def.h, send.c/sendto_match_butone(), list_ext.h, 3644 list.c/make_client(), ircd.c/setup_me(), s_misc.c/exit_client(), 3645 s_serv.c, s_service.c/m_service(), s_user.c/m_user(): removed old 3646 code conditional to NO_USRTOP being undefined. 3647 3648 * s_user.c: 3649 * m_nick(): new delay on nicks to prevent insidious 3650 collisions (from Piotr Kucharski). 3651 * m_private(): dropped restrictions on mass msg/notices. 3652 3653 * s_auth.c/read_authports(): can't call set_clean_username with 3654 ->auth pointing to ->username (from Piotr Kucharski). 3655 3656 * mod_socks.c: couple typos. 3657 3658 * a_conf.c/conf_read(): ->popt wasn't initialized. 3659 36601999-06-27 Christophe Kalt 3661 3662 * s_misc.c/exit_one_client(): made BETTER_NDELAY a little more 3663 friendly (from Piotr Kucharski). 3664 3665 * a_io.c/sendto_ircd(): added error output in write error notice. 3666 3667 * hash.c/hash_channel_name(): added shortname parameter to disable 3668 guess and fix bug (From Q). 3669 3670 * channel.c/m_join(): reject local user join for duplicates. 3671 3672 * mod_socks.c: more options, less bugs (from Piotr Kucharski). 3673 3674 * s_user.c: 3675 * m_nick(): kill nicks introduced by server if parc != 8 3676 instead of simply sending a notice. 3677 * register_user(): static variable wasn't declared as such. 3678 3679 * ircd.c, s_serv.c: used mybasename(); 3680 3681 * support_ext.h, support.c: added mybasename(); 3682 36831999-06-20 Christophe Kalt 3684 3685 * mod_socks.c: added code to allow checks for v5 as well as v4, 3686 depending on configuration (from Piotr Kucharski). 3687 3688 * configure.in, ircd.c/ircd_writetune(), s_serv.c/m_rehash(): use 3689 basename, and check if it needs libgen. 3690 3691 * channel.c/m_njoin(): simple optimization resulting from change 3692 to sendto_match_servs_notv() below. 3693 3694 * send_ext.h, send.c: sendto_serv_{not,}v and 3695 sendto_match_servs_{not,}v now return an integer. 3696 36971999-06-16 Christophe Kalt 3698 3699 * iauth.c/main(): send version to ircd upon startup. 3700 3701 * mod_rfc931.c/rfc931_work(): removed checks on weird chars, let 3702 ircd deal with this. 3703 3704 * s_auth.c: 3705 * start_auth(): abort if getpeername() fails (problem 3706 reported by Wolfgang Scherer). 3707 * added set_clean_username(), used in read_iauth() and 3708 read_authports(). 3709 * read_iauth(): added o message (a->i). 3710 * read_iauth(): added V message (a->i). 3711 3712 * struct_def.h, s_serv.c: added SV_OLDSQUIT, and made m_squit() 3713 smarter (ugh, it's a kludge). 3714 37151999-06-07 Christophe Kalt 3716 3717 * s_user.c: 3718 * m_nick(): added notice to warn of NICK messages coming 3719 from servers with parc != 8. 3720 * register_user(): fixed unaccurate notices about iauth. 3721 3722 * config.h.dist: increased HANGONRETRYDELAY & HANGONGOODLINK values. 3723 37241999-06-06 Christophe Kalt 3725 3726 * struct_def.h, send.c/sendto_match_butone(), list_ext.h, 3727 list.c/make_client(), ircd.c/setup_me(), s_misc.c/exit_client(), 3728 s_serv.c, s_service.c/m_service(), s_user.c/m_user(): added 3729 reorder_client_list() and NO_USRTOP defines. This reduces memory 3730 usage (Original code from Michal Svoboda). 3731 3732 * channel.c/reop_channel(): desynched could be caused by server 3733 reops (channel mode +r) (reported by Thomas Kuiper). 3734 37351999-05-01 Christophe Kalt 3736 3737 * s_conf_ext.h, s_conf.c, s_serv.c: added a new list for K/k lines 3738 only as an easy way to improve overall performance. 3739 3740 * service_def.h: updated SERVICE_MASK_ALL. 3741 37421999-04-19 Christophe Kalt 3743 3744 * channel.c/m_njoin(): need to use sendto_match_servs*(); duh! 3745 3746 * send_ext.h, send.c: added sendto_match_servs_notv(). 3747 3748 * s_serv.c/m_squit(): fixed logic in previous change. 3749 3750 * packet.c/dopacket(): fixed uncompression code. 3751 37521999-04-15 Christophe Kalt 3753 3754 * service_def.h, channel.c/m_topic(), s_service.c/m_servset(): 3755 added SERVICE_WANT_TOPIC. 3756 3757 * s_serv.c/m_squit(): fixed serious and old bug that caused 3758 servers to be removed from memory (but not dependants!!!) while 3759 squit is going upstream. 3760 3761 * s_debug.c/send_usage(): divide by zero bugfix (reported by Aaron 3762 Campbell). 3763 3764 * channel.c/m_njoin(): ignore channels with an invalid mask. 3765 3766 * common/parse.c: extended MSG_NOU to include services. 3767 37681999-04-10 Christophe Kalt 3769 3770 * Makefile.in, a_conf_def.h, a_externs.h, a_conf.c, mod_lhex_ext.h, 3771 mod_lhex.c: New module (from Andrew Snare). 3772 3773 * s_debug.c: increased size of debugbuf[] to avoid overflows (from 3774 Eugene L. Vorokov). 3775 3776 * send.c/send_message(): catch more unlikely errors (from Eugene 3777 L. Vorokov). 3778 3779 * s_bsd.c/set_sock_opts(): silently ignore errors for SO_SNDLOWAT. 3780 3781 * common/os.h: FreeBSD portability (from KIKUCHI Takahiro). 3782 3783 * s_bsd.c/read_message(): 3784 * debug notice format bugfix (from Q). 3785 * INET6 fix (from KIKUCHI Takahiro). 3786 3787 * s_conf.c: 3788 * initconf(): allow service type to be in hex in the 3789 configuration (from Thomas Kuiper). 3790 * find_conf_flags(): case sensitivity fix (from Q). 3791 37921999-03-19 Christophe Kalt 3793 3794 * mod_socks.c/socks_work(): closed proxies would get rejected on 3795 first attempt and accepted later as the "closed" status was in the 3796 cache. 3797 3798 * s_user.c/register_user(): fixed iauth failure notice timing bug. 3799 38001999-03-13 Christophe Kalt 3801 3802 * struct_def.h, ircd.c, s_auth.c, s_bsd.c, s_user_ext.h, s_user.c, 3803 a_struct_def.h, iauth.c, a_conf.c, a_io.c: added XOPT_EARLYPARSE, 3804 `P' message for iauth, `extinfo' option for iauth. 3805 3806 * a_io.c/next_io(): if xxx_start() returns 1, count module as left. 3807 38081999-03-11 Christophe Kalt 3809 3810 * chkconf.c: 3811 * finally shut off MyFree() redefinition warning. 3812 * fixed undefined behaviour with ++ operator (effet de bord). 3813 3814 * a_io.c/init_io(): bzero bugfix (reported by Tomas Edwardsson). 3815 3816 * a_conf_def.h, a_conf.c: 3817 * conf_err(): send conf errors to ircd as well. 3818 * conf_match(): extended iauth.conf syntax for hostname 3819 and IP matching. 3820 * added conf_ipmask() to allow use of a.b.c.d/z format for IP. 3821 3822 * configure.in: use "cc -Ae" on HPUX (reported by Jens Riecken). 3823 3824 * ircd.c/main(): iauth's presence needs to be checked before 3825 setting up the signal handlers. 3826 38271999-03-09 Christophe Kalt 3828 3829 * a_struct_def.h, a_conf_ext.h, a_conf_def.h, a_conf.c, a_io.c, 3830 mod_pipe.c, mod_rfc931.c, mod_socks.c: rewrote next_io() and 3831 conf_match() to use new more flexible logic. 3832 3833 * os.h, a_conf.c, iauth.c, configure.in, Makefile.in, acconfig.h: 3834 added DSM support. 3835 38361999-03-08 Christophe Kalt 3837 3838 * struct_def.h, a_conf.c, a_conf_ext.h, iauth.c, ircd.c, s_auth.c, 3839 s_auth_ext.h, s_bsd.c, s_user.c, s_user_exit.c: added 3840 XOPT_{REQUIRED,NOTIMEOUT,EXTWAIT}, added iauth_spawn counter; 3841 removed iauth_required variable. 3842 3843 * struct_def.h, s_auth.c, s_user.c: added FLAGS_DONEXAUTH to get 3844 rid of the approximation from yesterday. 3845 3846 * s_bsd.c/read_message(): use CLR_READ_EVENT() before modifying fd. 3847 38481999-03-07 Christophe Kalt 3849 3850 * res_comp.c: added missing prototypes. 3851 3852 * struct_def.h, a_conf.c, a_conf_ext.h, iauth.c, s_auth_ext.h, 3853 s_auth.c, s_user.c: added option to reject new user connections if 3854 iauth is dead (approximate!). 3855 3856 * struct_def.h, ircd.c, res.c, s_auth.c, s_bsd.c: removed all 3857 references to {Set,Clear,Do}Access macros (unused for a LONG time). 3858 3859 * ircd.c: 3860 * check_pings(): fixed "immediate ping timeout" bug. 3861 * main(): check for iauth's presence after changing [ug]id. 3862 3863 * s_bsd.c/do_dns_async(): notify iauth when no PTR record is found. 3864 3865 * Makefile.in: fix for M4 file path (Matthew Sullivan). 3866 38671999-03-04 Christophe Kalt 3868 3869 * ircd.c/io_loop(), s_bsd.c/start_iauth(): keep trying to restart 3870 iauth (up to once every 90 seconds) to avoid being iauth-less. 3871 3872 * struct_def.h, mod_socks.c, s_auth.c, s_user.c: added new message 3873 type from iauth to ircd to allow denying connections without any 3874 message sent to &AUTH; used by the socks module. 3875 38761999-02-22 Christophe Kalt 3877 3878 * s_err.c: RPL_TRACESERVICE changed to show values in hexadecimal 3879 (from Thomas Kuiper). 3880 3881 * s_service.c/m_service(): fixed error message. 3882 38831999-02-20 Christophe Kalt 3884 3885 * configure, configure.in, Makefile.in, config.h.dist, buildm4, 3886 send.c, ircd.c, s_bsd.c, s_conf.c, s_misc.c, s_serv.c, s_user.c, 3887 chkconf.c, a_conf.c, a_log.c: paths overhaul. 3888 3889 * c_msg_ext.h, c_msg.c: fixed m_server() prototype. 3890 38911999-02-19 Kurt Roeckx 3892 3893 * packet.c/dopacket(), s_bsd.c/read_packet(): bugfix. 3894 38951999-02-18 Christophe Kalt 3896 3897 * res.c/proc_answer(): fixed T_PTR processing (problem reported by 3898 Michal Svoboda). 3899 3900 * channel.c: 3901 * del_modeid(): bugfix when called with NULL. 3902 * can_join(): readability (from Q). 3903 3904 * s_serv.c/check_version(): 3905 * removed code about 2.10.0[ab]*. 3906 * never used NJOIN with 0209* servers (bugfix). 3907 3908 * s_err.c: removed extraneous %s in RPL_UNIQOPIS. 3909 39101999-02-09 Kurt Roeckx 3911 3912 * hash.c/hash_find_channels(): cleanup. 3913 3914 * ircd.c/main(), ircd_ext.h: various cleanups. 3915 3916 * res_comp_ext.h: added prototype for ircd_getshort(). 3917 3918 * s_bsd.c/read_message(): typo fix (=! -> !=). 3919 3920 * s_conf.c/attach_conf(): stops detecting listen sockets as 3921 clients from same IP address. 3922 3923 * s_err.c: removed / from replies. 3924 3925 * s_serv.c/m_links(): removed unused variable. 3926 3927 * s_user.c/who_channel(): removed unused variables. 3928 39291999-02-05 Christophe Kalt 3930 3931 * match.c/match(): removed predictable if's (from Tero J�nk�). 3932 3933 * s_serv.c/m_server_estab(): flush_connections() called once 3934 during burst. 3935 3936 * s_debug.c: updated. 3937 3938 * ircd.c/io_loop(), s_bsd.c/read_message(), s_bsd_ext.h, config.h: 3939 new logic inspired from irce, removed PREFER_SERVER. 3940 3941 * s_bsd.c: 3942 * added read_listeners(). 3943 * set_sock_opts() now sets SO_SNDLOWAT. 3944 * add_connection() now sends a message to client being 3945 reject by the anti-clone crap. 3946 3947 * send.c: added flush_fdary() function. 3948 3949 * common_def.h, config.h, send.c: removed SENDQ_ALWAYS define, 3950 simplified code for when it was undefined as it is only used by 3951 the client now. 3952 39532.10.2 3954 39551999-02-03 Christophe Kalt 3956 3957 * mod_rfc931.c/rfc931_work(): get rid of any \n in replies. 3958 3959 * a_io.c/parse_ircd(): when receiving a "DNS timeout" message, 3960 inform ircd if we're already done (otherwise, it keeps waiting 3961 until timeout). 3962 3963 * s_bsd.c/completed_connection(): tell iauth not to wait for DNS 3964 information for servers we connect to. 3965 3966 * s_auth.c/read_iauth(): 3967 * fixed "Garbage" notices to &AUTH. 3968 * send E message to iauth when parsing garbage. 3969 39701999-01-28 Christophe Kalt 3971 3972 * s_serv.c/m_server_estab(): added notices to &DEBUG. 3973 3974 * struct_def.h, s_auth.c: renamed MotdItem to LineItem and moved 3975 around some defines. 3976 3977 * s_bsd_ext.h: added missing ';' for utmp_open() definition. 3978 3979 * channel.c/m_list(): !shortname now reports +p/+s channels (but 3980 still hides member count and topic for +s channels). 3981 3982 * match.c/match(): rearranged if test to suppress harmless read 3983 overflow errors (reported by Insure++). 3984 3985 * s_user.c/m_nick(): lp needs to be initialized (reported by Insure++). 3986 3987 * hash.c/hash_find_channels(): bugfix (spottoed by Q). 3988 3989 * mod_rfc931.c/rfc931_init(): fix for a silly bug (from Piotr). 3990 39911999-01-19 Christophe Kalt 3992 3993 * resolv_def.h, res_comp.c, res_init.c: updated (BIND 4.9.7-REL). 3994 3995 * packet.c/dopacket(): don't call unzip_packet() without data at 3996 beginning of connection only! (from Q). 3997 3998 * numeric_def.h, s_err.c, channel.c: added numerics RPL_UNIQOPIS 3999 (325), ERR_BANLISTFULL (478) and ERR_UNIQOPPRIVSNEEDED (485). 4000 4001 * channel.c: 4002 * m_njoin(): missing return value (reported by Insure++). 4003 * m_mode(): use ERR_RESTRICTED for restricted clients. 4004 * m_join(): it's now possible to create !!#foo if #foo exists. 4005 * m_list(): now works for !shortname. 4006 4007 * hash_ext.h, hash.c: added hash_find_channels(). 4008 4009 * configure.in, os.h: 4010 * update for autoconf 2.13. 4011 * let's trust autoconf to decide to use poll() or not. 4012 4013 * s_bsd.c: sendto_flags() doesn't exist, it's sendto_flag(). 4014 4015 * mod_rfc931.c: 4016 * stats weren't initialized. 4017 * added undocumented "protocol" option (it's boring!). 4018 4019 * mod_socks.c: 4020 * fixed never occuring memory leak. 4021 * improved stats (from Piotr Kucharski). 4022 4023 * s_user_ext.h, s_user.c, s_service.c: added a parameter to 4024 do_nick_name() [UID]. 4025 40261999-01-12 Christophe Kalt 4027 4028 * a_log_def.h, mod_pipe_ext.h, a_externs.h, mod_pipe.c, a_conf.c: 4029 finally wrote the pipe module. 4030 4031 * struct_def.h, a_conf_def.h, a_io_ext.h, iauth.c, mod_rfc931.c, 4032 mod_socks.c, s_auth.c, s_auth_ext.h, s_misc.c: iauth now sends 4033 statistics to ircd, shown by /stats t. 4034 4035 * a_conf_def.h, a_conf.c, a_log_def.h, mod_socks.c: SOCKS module 4036 overhaul: added caching, rewrote code to use v4 instead of v5, and 4037 to be smarter (Based on work from Piotr Kucharski). 4038 4039 * s_user.c: do_nick_name() now rejects "anonymous". 4040 4041 * packet.c/dopacket(): don't call unzip_packet() without data. 4042 4043 * channel.c: extension to del_modeid() from Kaspar Landsberg. 4044 4045 * s_bsd.c: don't call dopacket() again for compressed links just 4046 because the output buffer was filled up. 4047 40481998-12-31 Christophe Kalt 4049 4050 * ircd.c: removed extraneous flush_connections() call in io_loop(). 4051 4052 * ircd.c, s_bsd.c, list.c, list_ext.h: removed unused 'active' code. 4053 4054 * struct_def.h, parse.c: removed various unused aClient fields. 4055 40561998-12-24 Christophe Kalt 4057 4058 * s_service.c: using FLAGS_CBURST for services has too many 4059 implications; reverted. 4060 4061 * struct_def.h, s_bsd.c, s_zip.c: removed requirement for 4062 inflate() to never fill up the uncompression output buffer, an 4063 unlikely situation which is now dealt with. (mostly from Q). 4064 40651998-12-21 Christophe Kalt 4066 4067 4068 * s_user.c: 4069 * [RFC] suppressed an error reply for notices in m_message(). 4070 * server notices to +n channels were failing. (Reported by Q). 4071 4072 * a_defines.h: INET6 fix for OSF (from Roar Thron�s). 4073 4074 * os.h: INET6 fix for OSF (from Roar Thron�s). 4075 4076 * channel.c: added check against 'duplicate joins' in m_njoin(). 4077 40781998-12-14 Christophe Kalt 4079 4080 * channel.c: 4081 * yet another +a/+r fix in set_mode(). 4082 * send_channel_modes() would occasionnally send duplicate 4083 bans. (Reported by Robert Martin-Legene <robert@irc.ircnet.dk>) 4084 4085 * iauth.c, a_io.c: added nonexistant INET6 code. 4086 4087 * os.h, nameser_def.h, resolv_def.h: OSF portability fix from Roar 4088 Thron�s. 4089 4090 * s_auth.c: added missing INET6 code. (Roar Thron�s) 4091 40921998-09-25 Christophe Kalt 4093 4094 * configure.in: Check for IPv6 system type and update $LIBS (from 4095 KIKUCHI Takahiro <kick@kyoto.wide.ad.jp>) 4096 4097 * bsd.c, os.h, parse.c, struct_def.h, support.c, support_ext.h, 4098 c_bsd.c, c_version.c, c_version_ext.h, irc.c, swear.c, channel.c, 4099 chkconf.c, ircd.c, nameser_def.h, res.c, res_def.h, res_init.c, 4100 resolv_def.h, s_auth.c, s_bsd.c, s_conf.c, s_debug.c, s_misc.c, 4101 s_serv.c, s_user.c, acconfig.h, configure.in: merged 2.9.5+IPv6. 4102 41031998-04-12 Christophe Kalt 4104 4105 * configure.in, s_debug.c: vsyslog() isn't necessarely available 4106 even if USE_STDARG is defined. (Digital Unix) 4107 41081998-04-04 Christophe Kalt 4109 4110 * c_version_ext.h, c_version.c, irc.c, swear.c: Digital Unix 4.0B 4111 port (Roar Thron�s <roart@nvg.ntnu.no>) 4112 41131998-12-12 Christophe Kalt 4114 4115 * channel.c: +a/+r fix for !channels. 4116 41171998-11-20 Christophe Kalt 4118 4119 * irc.c: allocate me.info (fix by Helmut Franzke <hf@rp-online.de>). 4120 41212.10.1 4122 41231998-11-12 Christophe Kalt 4124 4125 * Doc references to @stealth.net changed to @irc.org. 4126 4127 * s_serv.c: report_ping() now sends some extra info to &DEBUG. 4128 4129 * s_bsd.c: send_ping() window set to 20 minutes (instead of 10), 4130 and never close it. 4131 41321998-11-03 Christophe Kalt 4133 4134 * s_serv.c: changed m_trace() to only show unknowns to opers and 4135 local clients. 4136 4137 * a_io.c: fd remap processing bugfix (from kurt@roeckx.be). 4138 4139 * s_bsd.c: fixed ircd/iauth problem with servers ircd connects to. 4140 41411998-10-31 Christophe Kalt 4142 4143 * parse.c: reordered msgtab[]. 4144 4145 * s_serv.c: added more restrictions to m_links(), m_stats() [t], 4146 m_motd() and m_lusers() for remote clients. (*sigh*) 4147 4148 * channel.c: fixed count_channels() not to count empty channels. 4149 41501998-10-28 Christophe Kalt 4151 4152 * s_user.c: optimized m_whois() (pointed out by several people). 4153 4154 * s_user.c, channel.c: channel creator flag is now removed on -o. 4155 4156 * channel.c: 4157 * !channel creation is now done with !! rather than !#. 4158 * fixed channel counters (affects /lusers & /stats z). 4159 * m_njoin(): simple optimization. 4160 4161Sat Oct 10 18:55:38 1998 Christophe Kalt <kalt@millennium.stealth.net> 4162 4163 * a_io.c: don't TST_* if cldata[i].?fd <= 0 in loop_io(). 4164 4165 * ircd.s, s_auth.c, s_bsd.c, s_bsd_ext.h: always attempt to 4166 restart iauth in start_iauth() after receiving a SIGUSR1. 4167 4168 * s_service.c: reverted part of last change. 4169 4170 * s_user.c: last change introduced a bug. (typo, reported by N. Aust) 4171 4172 * channel.c: fixed match_modeid() to handle remote clients 4173 properly now that it's used from can_send(). 4174 4175Thu Oct 8 18:33:50 1998 Christophe Kalt <kalt@millennium.stealth.net> 4176 4177 * configure.in: always compile with -g flag, and never strip. 4178 4179 * channel.c: 4180 * renamed sub1_from_channel() to free_channel(). 4181 * always send modes for empty channels during netjoin. 4182 * fixed old (2.9.x) memory leak in collect_channel_garbage(). 4183 4184 * s_id.c: 4185 * linked list corruption bugfix in collect_chid(). 4186 * added logic to avoid excessive caching in cache_chid(). 4187 4188 * s_service.c: stdarg bugfix in check_service_butone (from O.G.). 4189 4190Sun Sep 27 15:12:53 1998 Christophe Kalt <kalt@millennium.stealth.net> 4191 4192 * s_user.c: prefix bugfix (reported by mrg). 4193 41942.10.0p1 4195 4196Fri Sep 25 22:21:06 1998 Christophe Kalt <kalt@millennium.stealth.net> 4197 4198 * channel.c: check for +r mode before calling reop_channel(). 4199 42002.10.0 4201 4202Wed Sep 23 19:55:14 1998 Christophe Kalt <kalt@millennium.stealth.net> 4203 4204 * configure.in, os.h: don't trust poll() to work if it exists. 4205 4206 * channel.c: 4207 * removed FULLV2_10 ifdef's 4208 * don't send empty NJOIN in m_njoin() (Reported by Beeth). 4209 4210 * channel.c, s_debug.c, config.h.dist: removed MIRC_KLUDGE. 4211 4212 * chkconf.c: added warning about old V line format. 4213 4214 * config.h.dist: OPER_DIE is now defined by default. 4215 4216 * s_user.c: reverted last change, and hostnames are now truncated. 4217 4218 * os.h: preprocessor syntax fix. 4219 4220 * s_conf.c: stupid typo in match_ipmask(). 4221 4222 * s_auth.c: added a new debugging notice. 4223 4224 * s_debug.c: flags update. 4225 4226 * ircd.c: 4227 * added some debugging info in restart notice. 4228 * changed strdup() in mystrdup() (from Andrew Snare). 4229 4230Sun Sep 20 15:22:25 1998 Christophe Kalt <kalt@millennium.stealth.net> 4231 4232 * os.h, configure.in: configure now checks for poll() existence to 4233 decide if it should be used. 4234 4235 * res_init.c, s_conf.c: strncpy() bugfixes (from Q). 4236 4237 * s_auth.c, mod_rfc931.c: '[' is no longer allowed in ident replies. 4238 4239 * channel.c: don't let chanops set +a on !channels. 4240 4241 * a_io.c: (weirdbug)fix. 4242 4243 * s_err.c: numeric 004 update. 4244 4245 * s_user.c: connections rejected by iauth are now shown as K-lined 4246 in &LOCAL. 4247 4248 * s_bsd.c: new PASS syntax (Q). 4249 4250Sun Sep 13 20:32:08 1998 Christophe Kalt <kalt@millennium.stealth.net> 4251 4252 * config.h.dist, ircd.c: removed MYNAME. 4253 4254 * Makefile.in, config.h.dist: SPATH/APATH cleanup. 4255 4256 * parse.c: ABW fix (Leon Brouwers <leonb@sci.kun.nl> and purify). 4257 4258Sat Sep 12 18:53:39 1998 Christophe Kalt <kalt@millennium.stealth.net> 4259 4260 * ircd.c, s_bsd.c: SIGCHLD handling code to avoid zombies. 4261 4262 * s_bsd.c: 4263 * udpfd used in place of adfd in in read_message(). 4264 * silently deal with linux accept() way of life. 4265 4266 * a_io.c: loop_io() bugfix for select() systems. 4267 4268 * ircd.c: 4269 * me.info from ircd.conf was overridden in setup_me(). 4270 * server_reboot() created a zombie. 4271 4272 * s_user.c: allow servers to speak on channels (reported by Q). 4273 4274 * channel.c: 4275 * NJOIN bugfix related to unique ops (reported by Q). 4276 * removed old core from msa. 4277 4278 * various little cleanups. 4279 4280 * res.c: buffer overflow fix. (thanks to Leon Brouwers 4281 <leonb@sci.kun.nl> and purify) 4282 4283Tue Sep 8 21:23:27 1998 Christophe Kalt <kalt@millennium.stealth.net> 4284 4285 * s_user.c: user mode +a propagation bugfix. 4286 4287 * ircd.c: die immediately if no listener exists after reading the conf. 4288 4289 * send_ext.h, send.c, channel.c: backward compatibility fix for eI 4290 channel modes (added sendto_match_servs_v()). 4291 4292Mon Sep 7 18:03:34 1998 Christophe Kalt <kalt@millennium.stealth.net> 4293 4294 * s_bsd.c: inversed test for -s in start_iauth(). 4295 4296 * channel.c: 4297 * keys starting with ':' don't propagate correctly. 4298 * m_njoin() didn't send modes properly to clients. 4299 4300 * s_serv.c: 4301 * slightly changed the PASS syntax again. 4302 * 2.10 alphas didn't recognize peers as such (reported by Q). 4303 4304Sun Aug 23 22:16:40 1998 Christophe Kalt <kalt@millennium.stealth.net> 4305 4306 * struct_def.h, ircd.c, list.c, list_ext.h, s_conf.c, s_serv.c, 4307 s_service.c, s_user.c: aClient's info is now dynamically allocated 4308 to overcome server handshake limitations. 4309 4310Sat Aug 22 15:20:10 1998 Christophe Kalt <kalt@millennium.stealth.net> 4311 4312 * channel.c: fixed ^G bug (only triggered in channel creation) 4313 4314 * struct_def.h, channel.c, s_err.c, s_user.c: AWAY is back. 4315 4316Sun Aug 16 16:01:15 1998 Christophe Kalt <kalt@millennium.stealth.net> 4317 4318 * ircd.c:, s_bsd.c: added -s switch. 4319 4320Sat Aug 8 14:21:20 1998 Christophe Kalt <kalt@millennium.stealth.net> 4321 4322 * s_serv.c: Roger's diff broke compression. (reported by Andre Koopal) 4323 4324 * Makefile.in: iauth didn't know where to find zlib.h (reported 4325 by delta) 4326 4327 * a_log.c: typos in parameter names (reported by delta). 4328 4329Fri Aug 7 23:54:10 1998 Christophe Kalt <kalt@millennium.stealth.net> 4330 4331 * mod_rfc931.c: added sanity check on replies. 4332 4333Fri Aug 7 00:03:45 1998 Christophe Kalt <kalt@millennium.stealth.net> 4334 4335 * mod_rfc931.c: read RFC 1413 and fixed the reply parser. 4336 4337 * numeric_def.h, s_err.c, s_auth_ext.h, s_auth.c, s_serv.c: added 4338 /stats a to show iauth's configuation. 4339 4340 * s_auth.c, a_*.[ch], mod_*.c: 4341 * SIGUSR2 will cause iauth to close and reopen log file(s). 4342 * worked around delayed messages from the iauth caused by 4343 ircd's fd remapping habit. 4344 * reduced memory usage by dynamically allocating `inbuffer'. 4345 * added G message (a->i). 4346 * added E message (i->a) and cleaned up errors messages in 4347 parse_ircd(). 4348 * added a/A messages (a->i) to transmist configuration. 4349 * revisited next_io() and hopefully fixed the logic. 4350 4351 * ircd.c, res.c, s_auth.c, s_auth_ext.h, s_bsd.c, s_user.c: 4352 * stdarg'ized sendto_iauth(). 4353 * iauth is now automatically restarted. 4354 * fixed bcopy() length in read_iauth(). 4355 * added notices to track the "" username bug. 4356 4357Tue Aug 4 21:43:53 1998 Christophe Kalt <kalt@millennium.stealth.net> 4358 4359 * a_io.c: numerous bug fixes.. 4360 4361 * mod_rfc931.c: fix to prevent crash when receiving data from 4362 broken ident servers. 4363 4364 * a_conf.c, a_conf_def.h, a_externs.h, a_log_def.h: added module 4365 `socks'. (Based on a 2.9.5 diff from Jonathan Chapman) 4366 4367 * a_log.c: added timestamps to `auth' log. 4368 4369 * s_misc.c: EXITC_AREF is a special case like EXITC_REF. 4370 4371 * parse.c: penalty bugfix. 4372 4373 * ircd.c, s_auth.c, s_bsd.c, s_bsd_ext.h: 4374 * cleaned up iauth startup procedure, added start_iauth() 4375 which is called upon SIGUSR1. 4376 * various fixes in read_iauth(). 4377 4378Sun Aug 2 18:34:20 1998 Christophe Kalt <kalt@millennium.stealth.net> 4379 4380 * s_mist_ext.h, s_misc.c, support_ext.h, support.c: moved 4381 myctime() from s_misc.c to support.c. 4382 4383 * s_bsd.c, a_io.c: added `R' message from ircd to iauth. 4384 4385 * s_serv.c: updated check_version() not to use NJOIN with 2.9.5 links. 4386 4387 * parse.c: restricted SQUERY to users. 4388 4389 * channel.c: 4390 * m_njoin(): conversion bugfix (Reported by Q). 4391 * added FULLV2_10 #if's. 4392 4393 * struct_def.h, channel.c, s_err.c, s_misc.c: added channel mode `r'. 4394 4395 * send.c: reference to NULL pointer in sendto_match_servs() 4396 (Reported by Core). 4397 4398 * sys_def.c, chkconf.c: MyFree() redefinitions (from Core). 4399 4400 * Makefile.in: "make install-server" path problems. 4401 4402Sun Jul 19 15:32:48 1998 Christophe Kalt <kalt@millennium.stealth.net> 4403 4404 * s_conf.c, ircd.c: unitialized K line comment in check_pings(). 4405 4406 * channel.c: 4407 * beI modes to multiple channels were corrupted. 4408 * mode parameters starting with : don't propagate correctly. 4409 * !channel creation propagation was broken (reported by Eumel). 4410 4411 * send.c, struct_def.h, channel.s, res.c, ircd.c, s_auth.c, 4412 s_auth_ext.h, s_bsd.c, s_bsd_ext.h, s_conf.c, s_user.c, 4413 Makefile.in, config.h.dist: added iauth. 4414 4415Fri Jun 12 19:00:03 1998 Christophe Kalt <kalt@millennium.stealth.net> 4416 4417 * ircd.c: fix for inetd support (from Jonathan Chapman 4418 <jonathan@clover.net>). 4419 4420 * parse.c, s_debug.c: more LOCOP_* fixes (from Michael Neumayer). 4421 4422 * s_user.c: oper counter bugfix (from Magnus Tjernstrom). 4423 4424 * channel.c: 4425 * fixed join #a,#b,.. desynch bug (reported by viha@vip.fi). 4426 * fixed netjoin +p/+s desynch problem (same). 4427 4428Sun May 31 14:18:41 1998 Christophe Kalt <kalt@millennium.stealth.net> 4429 4430 * send.c, channel.c: '-' leftovers (Michael Neumayer <eumel@42.org>). 4431 4432Mon May 25 15:13:51 1998 Christophe Kalt <kalt@millennium.stealth.net> 4433 4434 * struct_def.h, channel.c, hash.c, s_misc.c: changed new channels 4435 prefix to ! (instead of -). 4436 4437 * parse.c: undefining LOCOP_* had no effect (reported by Eumel). 4438 4439 * s_service.c: SERVICE_WANT_OPER burst fix (from Jonathan Chapman). 4440 4441 * s_bsd.c: SO_LINGER patch (from Andrew Snare <ajs@pigpond.com>). 4442 4443 * configure.in: better logic for --resconf. 4444 4445 * channel.c: 4446 * m_invite() fix for &channels. 4447 * add_modeid() always used RPL_BANLIST. 4448 * bIe modes coming from a server were rejected 4449 add_modeid() if another mode with the same pattern existed. 4450 4451 * c_debug_ext.h, c_debug.c, chkconf.c, s_misc.c, s_zip.c: fixes 4452 for DEBUGMODE (from Andrew Snare <ajs@pigpond.com> & Magnus 4453 Tjernstrom <d92-mtm@ludd.luth.se>) 4454 4455 * hash.c: bigger_prime() useless optimization from Magnus :-) 4456 4457Tue May 5 19:26:25 1998 Christophe Kalt <kalt@millennium.stealth.net> 4458 4459 * config.h.dist, Makefile.in, struct_def.h, s_externs.h, send.c, 4460 channel.c, hash.c, s_debug.c, s_err.c, s_misc.c, s_serv.c, 4461 s_user.c: implemented new channels. 4462 4463 * struct_def.h, parse.c, channel.c, ircd.c, s_debug.c, s_misc.c, 4464 s_serv.c, s_user.c, whowas.c, config.h.dist: replaced BIG_NET #define. 4465 4466Fri Apr 24 20:30:21 1998 Christophe Kalt <kalt@millennium.stealth.net> 4467 4468 * irc.c: missing refresh() (from Dave Hill <ddhill@zk3.dec.com>). 4469 4470 * s_conf.c, s_service.c: portability fixes from Avalon. 4471 4472 * channel.c, s_user.c: adapted undernet's Bquiet. 4473 4474Sun Apr 5 17:50:08 1998 Christophe Kalt <kalt@millennium.stealth.net> 4475 4476 * configure, configure.in, config.h.dist: added --logdir option. 4477 4478 * s_serv.c: 4479 * moved user wallops from #wallops to +wallops. 4480 * stricter m_server() check for unregistered users. 4481 4482 * send.c: wallops were sent to services and unregistered clients. 4483 4484Sat Apr 4 19:05:26 1998 Christophe Kalt <kalt@millennium.stealth.net> 4485 4486 * struct_def.h, packet.c, s_bsd.c: (never triggered) link 4487 compression bugfix (Roger Espel Llima <espel@llaic.u-clermont1.fr>). 4488 4489 * config.h.dist, ircd.c, s_debug.c: added PREFER_SERVER #define. 4490 4491 * s_user.c: 4492 * m_oper() notice bug fix (Michael 'Eumel' Neumayer). 4493 * completely disabled AWAY. 4494 4495 * struct_def.h, parse.c, channel.c, ircd.c, s_debug.c, s_misc.c, 4496 s_serv.c, s_user.c, whowas.c, config.h.dist: added BIG_NET #define. 4497 4498 * s_misc.c; Y2K fix. 4499 4500Tue Mar 31 18:52:41 1998 Christophe Kalt <kalt@millennium.stealth.net> 4501 4502 * s_serv.c: removed now obsolete USE_NJOIN. 4503 4504 * numeric_def.h, struct_def.h, channel.c, s_debug.c, s_err.c, 4505 s_serv.c: added channel modes +e (EFnet's exceptions to bans) and 4506 +I (invitations); raised MAXBANS (should be renamed) to 30. 4507 4508 * support.c: extended make_version(). 4509 4510 * channel.c: 4511 * notify user when a ban is rejected because "redundant". 4512 * /invite (from chanop) now overrides bans & limit. 4513 4514 * s_debug.c, s_serv.c: /stats r no longer restricted to DEBUGMODE. 4515 4516 * s_bsd.c: getrlimit()/setrlimit() is now used regardless of 4517 poll() availibility. 4518 4519Sun Mar 22 14:01:24 1998 Christophe Kalt <kalt@millennium.stealth.net> 4520 4521 * channel.c: MIRC_KLUDGE sent bogus modes on channel creation. 4522 4523 * os.h, support.c, s_bsd.c: CYGWIN32 cleanup from Dave Miller. 4524 4525 * s_user.c: hunt_server() cleanup. 4526 4527 * s_conf.c: match_ipmask() choked on a.b.c.d/z (reported by Helmut 4528 Springer <delta@RUS.Uni-Stuttgart.DE>). 4529 45302.9.5 4531 4532Tue Feb 17 21:25:02 1998 Christophe Kalt 4533 4534 * s_bsd.c: w32 doesn't have a working fork(). 4535 4536 * ircd.c: deal with "getpwuid(getuid())" returning NULL. 4537 4538 * configure.in, os.h, support.c: use our own truncate() when 4539 needed (CYGWIN32), and CYGWIN32 portability. (Thanks to Dave 4540 Miller <yahoo@molalla.net>). 4541 4542 * config.guess: update. 4543 4544 * s_user.c: broadcast restriction wasn't right (Yegg). 4545 4546 * send.c, ircd.c: removed noisy debugging notices. 4547 4548Sat Feb 7 09:21:52 1998 Christophe Kalt 4549 4550 * s_user.c: 4551 * oper log is now more verbose. 4552 * broadcast messages/notices are now less restricted. 4553 4554 * hash.c: nitpicking (from Magnus Tjernstrom). 4555 4556 * configure.in: quoting cleanup (from Alain). 4557 4558 * send_ext.h, s_debug.h: STDARG prototyping cleanup (from Alain). 4559 4560Fri Jan 23 17:39:17 1998 Christophe Kalt 4561 4562 * os.h: linux 2.1 implements poll() but the header files are a 4563 mess (what did you expect?), kludge to get it work (from Vesa). 4564 4565 * channel.c: fixes related to MIRC_KLUDGE. 4566 4567 * s_conf.c: 4568 * find_kill() fix and cleanup (mostly from Vesa). 4569 * find_bounce() stricter check and fix (from Vesa). 4570 4571 * parse.c: m_njoin() is only used by the server. 4572 4573Fri Jan 23 17:38:36 1998 Christophe Kalt 4574 4575 * channel.c: 4576 * buffer overflow fix. 4577 * bugfix from Avalon. 4578 * join/invite were propagated for &channels. (reported by DLR) 4579 * invite/kick were propagated beyond masks. (reported by DLR) 4580 * multiple kicks could desynch channels. 4581 4582 * s_user.c: stricter check on unregistered NICK changes (Avalon). 4583 4584 * hash.c: hash_find_server() didn't handle z.stealth.net (1 4585 letter) masked by *.stealth.net (DLR). 4586 4587 * msg_def.h, struct_def.h, channel_ext.h, parse.c, channel.c, 4588 s_serv.c: added send_channel_members() and m_njoin(). 4589 4590 * send_ext.h, send.c: added sendto_serv_notv(). 4591 4592 * buidm4: yet another m4 booboo. (fix from Mario) 4593 4594Wed Jan 7 11:40:59 1998 Christophe Kalt 4595 4596 * s_user.c: strncpy() lameness. 4597 4598 * s_conf.c: added match_ipmask() (from Vesa). 4599 4600 * configure.in, send_ext.h: "checking for working stdarg" always 4601 failed because of a quoting problem. 4602 4603Thu Dec 18 21:48:18 1997 Christophe Kalt 4604 4605 * channel.c: abusive usage of /names now forbidden. 4606 4607 * class.c: imposed a minimum of 60 seconds for connect frequencies. 4608 4609 * struct_def.h, s_misc.c, s_serv.c: check_link() tuning and statistics. 4610 4611Tue Dec 16 17:12:16 1997 Christophe Kalt 4612 4613 * s_conf.c: finished D lines. 4614 4615 * numeric_def.h, struct_def.h, list.c, s_err.c, s_serv.c: added 4616 check_link() to prevent server links from being flooded by replies 4617 to user requests. 4618 4619 * s_bsd.c: try to prevent the server from flooding with UDP pings. 4620 4621 * channel.c: #foo:*.tld modes were always sent during the burst. 4622 4623Wed Nov 12 21:02:15 1997 Christophe Kalt 4624 4625 * struct_def.h, s_conf_ext.h, s_conf.c, ircd.c, chkconf.c, 4626 numeric_def.h, s_err.c , s_serv.c: added D configuration 4627 lines. (/stats h) 4628 4629 * send.c, s_service.c: allocate more dbufs during a service burst 4630 if needed. 4631 4632 * channel.c: cosmetics, and fixed the use of MAXPENALTY in m_kick(). 4633 4634 * s_debug.c: too many parameters in a call to sendto_one(). 4635 46362.9.4 4637 4638Sat Oct 18 09:37:33 1997 Christophe Kalt 4639 4640 * setup.h.in, configure.in: (Alain Nissen) 4641 * additional header files checked. 4642 * non-blocking system test fixed. 4643 4644 * os.h: curses/termcap stuff is now only used for the client (AN). 4645 4646 * swear_ext.h, swear.c: portability issues (Alain Nissen). 4647 4648 * c_bsd.c, s_bsd.c, os.h: SELECT_FDSET_TYPE (defined in os.h) used 4649 as pointer type in select() calls; HPUX compilation problem 4650 fixed. (Alain Nissen) 4651 4652 * buildm4: typo & missing quote. (again!) 4653 4654Fri Oct 10 23:48:25 1997 Christophe Kalt 4655 4656 * s_serv.c: improved m_die() and m_restart() in case a service is 4657 used for user log. 4658 4659 * os.h, acconfig.h, configure.in, res.c, s_bsd.c: (Alain Nissen) 4660 * kludge to deal with broken hostent declaration in 4661 netdb.h on some linux systems. 4662 * test for sigaction & sigset functions added back; signal 4663 implementation test fixed. 4664 4665 * s_conf.c: 4666 * more explicit K line message when reason specified in 4667 ircd.conf. 4668 * extended I lines syntax. 4669 4670 * s_service_ext.h, s_service.c, s_misc.c: faster split handling is 4671 possible now that 2.8.x protocol is history. 4672 4673 * channel.c: 4674 * m_join() was unefficient on net joins. 4675 * MIRC_KLUDGE would never show +ov modes. 4676 4677 * s_user.c: 4678 * services can now send to channels (if the modes allow it). 4679 * prefixes for restricted connections were gone. 4680 4681 * buildm4: missing quote. 4682 46832.9.4b 4684 4685Wed Oct 1 21:57:45 1997 Christophe Kalt 4686 4687 * chkconf.c: added knowledge of B lines. 4688 4689 * s_debug.c: more info on dbufs for better tuning. 4690 4691 * channel.c: bans on IP are now matched against resolving clients. 4692 4693 * s_conf.c: K lines on IP can now be matched against resolving clients. 4694 4695 * buildm4: update for Y and K line macros, and added macros for 4696 B,V,i and k lines (Mario Holbe). 4697 4698 * s_conf.c: Y global limit per host didn't work. 4699 4700Wed Sep 24 18:25:45 1997 Christophe Kalt 4701 4702 * acconfig.h, configure.in, setup.h.in, resolv_def.h, res_init.c: 4703 added --resconf=FILE option to configure (Alain Nissen). 4704 4705 * s_conf.c: fixed bug with Y limits. 4706 4707Tue Sep 23 11:36:30 1997 Christophe Kalt 4708 4709 * common_def.h: added CHKCONF_COMPILE statement. 4710 4711 * bsd_ext.h: incorrect declaration for writeb. 4712 4713 * support_ext.h, support.c: dumpcore() was broken. 4714 4715 * class_def.h, class_ext.h, class.c, s_conf.c, s_err.c: it's now 4716 possible to combine a limit per host and per user@host for the 4717 same class. 4718 4719 * s_user.c: 4720 * RPL_ENDOFWHO wasn't correct. 4721 * who_find() / m_whois() didn't always respect +a mode. 4722 * @ restriction in username could be bypassed. 4723 * unlikely but nonetheless possible ghost generation. 4724 4725 * ircd.c: setgid() was called after setuid() (reported by Nicole 4726 Haywood <kole@mail.usyd.edu.au>) 4727 4728 * parse.c: avoid a match() call if possible. 4729 4730Sun Sep 14 19:44:27 1997 Christophe Kalt 4731 4732 * ircd.c: redundant/useless code commented out. 4733 4734 * struct_def.h, parse.c, s_err.c, s_serv.c: `stats m' is more verbose. 4735 4736 * os.h, Makefile.in: zlib.h was missing from includes. 4737 4738 * s_user.c: 2 fixes (a NULL pointer, and a non reinitialized one). 4739 4740Thu Sep 11 21:43:20 1997 Christophe Kalt 4741 4742 * class_def.h, class_ext.h, class.c, s_bsd.c, s_conf.c, s_err.c, 4743 s_user.c: added 2 fields to Y lines and implemented [u@]h global 4744 limits. 4745 4746 * service_def.h, channel.c, s_service.c: added SERVICE_WANT_VCHANNEL. 4747 4748 * channel.c: server channels now have a topic. 4749 4750 * s_conf.c: negative class numbers are now forbidden. 4751 4752 * s_conf_ext.h, s_conf.c, s_bsd.c: new B lines format. 4753 4754Sun Sep 7 20:02:50 1997 Christophe Kalt 4755 4756 * s_conf.c: B lines now catch "unauthorized connections". 4757 4758 * s_user.c: m_who() limit wasn't coded. fixed this and rewrote 4759 m_who() because recursivity and penalty don't go together. 4760 4761 * s_err.c: REPL_SERVLIST type field is now in hexa. 4762 4763 * service_def.h, send.c, s_misc.c, s_user.c: extended services 4764 capabilities so they can do logging. 4765 4766 * s_serv.c, s_user.c: added MD5 support for crypt() (from Urvos Juvan). 4767 4768 * res.c: hostnames containing * or ? are now rejected. 4769 4770 * s_conf.c: service type field stripped from optional bits (in S 4771 lines). 4772 4773 * s_serv.c: server token wasn't sent to services in m_server_estab(). 4774 4775 * s_service.c: SERVICE_WANT_PREFIX wasn't honored by m_squery(). 4776 4777 * struct_def.h, parse.c, s_serv.c, s_user.c: 4778 * added MyService() macro and updated several tests. 4779 * next_client() was ignoring services. 4780 4781Tue Aug 19 08:38:54 1997 Christophe Kalt 4782 4783 * channel.c: m_names() could still have a truncated reply. 4784 4785 * more cleaning from Alain.Nissen@ulg.ac.be: 4786 4787 * struct_def.h, bsd.c, s_bsd.c: removed references to "pyr". 4788 * res_comp.c: removed res_getshort() [never used]. 4789 * removed all references to VMS. 4790 4791Mon Aug 11 13:34:15 1997 Christophe Kalt 4792 4793 * The following changes are from Alain.Nissen@ulg.ac.be 4794 4795 * all files (in short): 4796 * include/ was removed. 4797 * all .c have a corresponding _ext.h to declare external 4798 variables and functions. 4799 * [sc]_externs.h are #includes *_ext.h. 4800 * [sc]_defines.h are #includes *_def.h. 4801 * all .c have the same list of #include. 4802 * os.h has all system #includes and portability tests. 4803 4804 * Also, several bug and portability fixes: 4805 4806 * c_bsd.c: move renamed in tcap_move (portability). 4807 * c_msg.c: 4808 * added test on DOCURSES before including it. 4809 * various casts. 4810 * edit.c: 4811 * return type of suspend_irc() changed to RETSIGTYPE. 4812 * added int argument to suspend_irc(). 4813 * use of signal(SIGTSTP,...) now depends on 4814 whether the signal exists rather than the OS. 4815 * help.c: helplist rewritten properly. 4816 * irc.c: 4817 * strdup() replaced with mystrdup(). 4818 * do_log() takes 2 arguments. 4819 * return type of quit_intr() changed to RETSIGTYPE. 4820 * added int argument to quit_intr(). 4821 * screen.c: such a mess 4822 * LINES is only present under curses. 4823 * idem for refresh(). 4824 * clear_to_eol() is supposed to take 2 arguments, 4825 but what are they? 4826 * swear.c: added to clients targets 4827 * channel.c: delch renamed in del_ch. 4828 * chkconf.c, parse.c: newline renamed in irc_newline. 4829 * ircd.c: s_monitor(), s_die(), s_rehash(), s_restart() 4830 return type changed from VOIDSIG to RETSIGTYPE. 4831 * res.c: now using SOCK_LEN_TYPE. 4832 * res_comp.c, res_init.c: various portability changes. 4833 * s_auth.c: now using SOCK_LEN_TYPE. 4834 * s_bsd.c: now using SOCK_LEN_TYPE. 4835 * s_conf.c: several portability fixes. 4836 * s_err.c: local_replies[] and local_replies[] rewritten. 4837 * s_service.c: changed test on USE_STDARG. 4838 * bsd.c: 4839 * return type for dummy() is now RETSIGTYPE. 4840 * dummy() now takes one int argument. 4841 * dbuf.c: removed unused DBUF_INIT. 4842 * support.c: 4843 * many changes concerning #if tests. 4844 * added solaris_gethostbyname() to use instead of 4845 Solaris 2.3 broken gethostbyname(). 4846 * added irc_memcmp() to use if system's memcmp() 4847 is broken. 4848 * nameser.h: now using WORDS_BIGENDIAN. 4849 * configure.in: 4850 * simpler solaris 2.x detection when looking for zlib. 4851 * added test for cursesX. 4852 * added check for sys_errlist definition in sys/errno.h 4853 * and more... 4854 * Makefile.in: CFLAGS split in S_CFLAGS, C_CFLAGS and 4855 CC_CFLAGS (ircd, irc, chkconf). 4856 4857Fri Aug 8 10:51:24 1997 Christophe Kalt 4858 4859 * channel.c: m_names() behaviour wasn't consistent with m_who() 4860 concerning +p channels (Michael 'Eumel' Neumayer). 4861 4862 * configure.in: minor changes (Alain Nissen). 4863 4864 * s_user.c: missing argument to err_str() (Kai Seidler). 4865 4866 * config.h.dist, h.h, struct.h, common.c, channel.c, s_bsd.c, 4867 s_debug.c, s_err.c, s_misc.c, s_serv.c, s_service.c, s_user.c: 4868 removed support for 2.8 protocol. 4869 4870 * config.h.dist, msg.h, channel.c, note.c, s_bsd.c, s_debug.c, 4871 s_misd.c, s_user.c: removed NOTE. 4872 4873 * s_bsd.c: wrong argument to bzero(). 4874 4875 * Makefile.in, buildm4: rev.sh replaced by config.guess and 4876 buildm4 wasn't ran by `make install-server'. 4877 48782.9.3 4879 4880Wed Jul 23 11:23:30 1997 Christophe Kalt 4881 4882 * res.c: queries were never resent when reaching timeout (C. Behrens). 4883 4884 * acconfig.h, configure.in: better sys_errlist test (A. Nissen). 4885 4886 * version.c.SH.in: portability (A. Nissen). 4887 4888 * acconfig.h, configure.in, common.h, config.h.dist: AIX cleanup 4889 and optimization flags (A. Nissen). 4890 4891 * configure.in: typo. 4892 4893Thu Jul 17 23:04:48 1997 Christophe Kalt 4894 4895 * c_numeric.c, irc.c: fixes from Vesa. 4896 4897 * send.c: buffer overflow fix. 4898 4899 * h.h, res_init.c: portability fixes. 4900 4901Wed Jul 16 21:35:50 1997 Christophe Kalt 4902 4903 * s_serv.c: m_die() referenced data after freeing it. 4904 4905 * support.c, res.c: silly changes to make purify happier. 4906 4907 * s_bsd.c: fixed memory corruption problem. 4908 4909 * s_user.c: m_whois() voice flag changed back to + (from !). 4910 4911 * h.h, support.c, configure.in: reverted back: use inet_* if 4912 present, use our own inet* if not. Our functions must be 4913 different to avoid some crazy clash when bind 8.x is on installed 4914 the system. Should we teach configure.in about -lbind? 4915 4916Tue Jul 15 00:18:01 1997 Christophe Kalt 4917 4918 * inet_addr.c moved to support.c, renamed functions (inet_addr, 4919 inet_aton, inet_ntoa, inet_netof) to avoid clashes; always used 4920 even if the system has it. 4921 4922 * New configure and Makefile from Alain Nissen. (many many files 4923 changed, removed, created, rewritten) 4924 4925 * buildm4: update (Mario Holbe). 4926 4927 * struct.h, s_bsd.c: fixed the P line rehash bug(?). 4928 4929 * h.h, ircd.c: let's be nice to SunOS' cc. 4930 4931Mon Jun 30 21:41:11 1997 Christophe Kalt 4932 4933 * dbuf.c, send.c: earlier changes broke the client. 4934 4935 * config.h.dist, struct.h, dbuf.h, dbuf.c: new magic formula to 4936 compute BUFFERPOOL. Added MAXSERVERS for this purpose. 4937 4938 * s_serv.c: buffer overflow (Chris Behrens). 4939 4940Thu Jun 26 19:18:24 1997 Christophe Kalt 4941 4942 * struct.h, channel.c, hash.c, parse.c, send.c, s_misc.c, 4943 s_service.c: 4944 * cleanup. 4945 * added &SERVICES. 4946 4947 * s_bsd.c: wrong buffer size given to getsockopt(). 4948 4949Thu Jun 19 18:35:37 1997 Christophe Kalt 4950 4951 * h.h, struct.h, s_debug.c, send.c, dbuf.c: 4952 * dbuf stats. 4953 * send_message() #ifndef SENDQ_ALWAYS was not uptodate, 4954 tried to bring it back up to date. 4955 4956 * res.c: fixed possible buffer overflow. 4957 4958 * h.h, s_debug.c, send.c: fixes for STDARG (Olivier Galibert) 4959 4960 * ircd.c: server_reboot() would crash when called because of "out 4961 of memory". 4962 4963Mon Jun 9 20:49:55 1997 Christophe Kalt 4964 4965 * config.h.dist, h.h, struct.h, send.c, ircd.c, list.c, s_debug.c, 4966 s_serv.c, s_user.c: removed #define KRYS, it is now always `defined'. 4967 4968 * config.h.dist, h.h, common.h, service.h, sys.h, configure.in, 4969 send.c, support.c, s_auth.c, s_service.c, s_debug.c, s_conf.c: 4970 removed references to varargs, added support for stdargs. 4971 It is controlled by #define USE_STDARG set by configure. (adapted 4972 from Olivier Galibert) 4973 4974 * ircd.c: CHROOT is really called CHROOTDIR. 4975 4976 * s_user.c: 4977 * extended m_message() to accept n!u@h as recipient. 4978 * removed notice for bogus PONG. 4979 4980 * s_serv.c: /SQUIT now requires 2 arguments from opers. 4981 4982Sun Jun 1 16:57:39 1997 Christophe Kalt 4983 4984 * dbuf.h, dbuf.c: #define DBUF_TAIL is back. 4985 4986 * s_conf.c: fixed B lines behaviour, port number is now mandatory. 4987 4988 * send.c: missing arg to dead_link(). (Olivier Galibert) 4989 4990 * s_serv.c, numeric.h, s_err.c: added /stats B to see B lines (and 4991 fixed /stats V reply). 4992 4993 * service.h, channel.c, s_misc.c, s_service.c, s_serv.c, s_user.c: 4994 * numerous bugfixes related to local services (if 4995 USE_SERVICES is defined). 4996 * extended services option to allow 2.9 NICK syntax, and 4997 let them see tokens if they want. (adapted from O.Galibert) 4998 4999Wed May 21 21:17:51 1997 Christophe Kalt 5000 5001 * channel.c, s_service.c, service.h: finished service code (whee). 5002 5003 * s_serv.c: services were incorrectly sent during burst. 5004 5005 * s_bsd.c: ident MUST be done before anything else is read from a 5006 client. 5007 5008Thu May 15 16:27:13 1997 Christophe Kalt 5009 5010 * struct.h, s_conf.h, s_serv.c: created k: lines to be able to 5011 deny access based on OTHER ident replies. 5012 5013 * s_user.c: changed 001 reply to return n!u@h (more zen). 5014 5015 * s_serv.c: 5016 * if A: is bogus, trash it and complain instead of crashing. 5017 * get_client_name() is non-reentrant. *sigh* 5018 5019Wed May 7 22:11:04 1997 Christophe Kalt 5020 5021 * s_user.c: nick chasing kill bug fix. (Chris Behrens) 5022 5023 * h.h, ircd.c, s_conf.c, s_user.c: K-lined users now exit 5024 displaying the Kline comment, if any. 5025 5026 * s_conf.c: fixed notice ERR_YOUWILLBEBANNED, and don't disconnect 5027 then. 5028 5029 * inet.h, nameser.h, resolv.h, inet_addr.c, portability.h, res.c, 5030 res_comp.c, res_init.c, res_mkquery.c: updated. (BIND 4.9.5-P1) 5031 5032 * channel.c: notice for service could use free'ed memory. 5033 5034Sun Apr 27 16:40:08 1997 Christophe Kalt 5035 5036 * send.c: fixed couple buglets (added by Chris Behrens :^). 5037 5038 * s_user.c: removed dummy m_note() which was unused and buggy, and 5039 would let any oper _broadcast_ NOTE queries to the net. 5040 5041 * m_note.c: Modified m_note() in note.c not to send any NOTE 5042 commands to other servers. 5043 5044 This is lame, someone help me and port note to be a service. 5045 Then, I'll finally take it out of the server !! :-) 5046 5047Thu Apr 24 18:51:25 1997 Christophe Kalt 5048 5049 * send.c: better (faster) sendto_common_channel() (from Chris Behrens). 5050 5051 * s_serv.c: fixed connected burst for services with hostmasks. 5052 5053 * s_user.c: fixed origin check in m_pong(). 5054 5055 * res.c: added a check on hostnames. (From Darren Reed) 5056 5057Sun Apr 20 20:30:21 1997 Christophe Kalt 5058 5059 * s_conf.c: find_bounce() had an inversed test. (how could it work 5060 when I tested it??) 5061 5062 * s_serv.c: SERVER message would occasionnally (and incorrectly) 5063 be dropped. 5064 5065 * s_misc.c: simple optimization in exit_client(). 5066 5067 * s_service.c, s_serv.c: things looked wrong, SERVICE syntax 5068 inchorent. Minor memory leak. 5069 5070 * s_bsd.c, s_misc.c: various "typos" fixed. (UDP & non POLL) 5071 5072 * send.c, h.h: removed sendto_all_butone(). (unused) 5073 5074Tue Apr 15 19:41:32 1997 Christophe Kalt 5075 5076 * sock.h: added a check to make sure FD_SETSIZE is big enough. 5077 5078 * s_bsd.c, struct.h, s_misc.c: added more UDP stats. 5079 5080 * s_bsd.c: fixed udp_pfd/res_pfd mess, and cleaned the code. (whee) 5081 5082 * h.h, struct.h, numeric.h, s_err.c, s_conf.c, s_bsd.c: added B lines. 5083 5084 * channel.c: defining USE_SERVICE would cause buffer corruption 5085 when propagating channel modes to servers. (Found by Michael Neumayer) 5086 5087Wed Apr 2 15:25:54 1997 Christophe Kalt 5088 5089 * list.c, s_serv.c: added some error notices for users without server. 5090 5091 * s_bsd.c: fixed UDP port binding when no IP is given. 5092 5093 * configure.in: add -cckr to CFLAGS on SGI when using cc(1) 5094 5095Thu Mar 27 19:03:09 1997 Christophe Kalt 5096 5097 * h.h, send.c, s_bsd.c, s_user.c, s_serv.c: amount of transferred 5098 data added to file logs. 5099 5100 * config.h.dist: define SVR4 if __svr4__ is there. 5101 5102 * packet.c: drop server sending an unknown command. 5103 5104 * s_user.c: changed m_who() for better performance (from Chris 5105 Behrens), also put a limit on its number of arguments. 5106 5107 * h.h, struct.h, list.c: better IsMember (from Chris Behrens). 5108 5109 * s_serv.c: don't let a user introduce a new server. 5110 5111Fri Mar 21 19:53:36 1997 Christophe Kalt 5112 5113 * h.h, struct.h, ircd.c, s_conf.c, s_misc.c, s_serv.c, 5114 config.h.dist: server can now cache the MOTD in memory (from Chris 5115 Behrens). See CACHED_MOTD #define. 5116 5117 * service.h, channel.c, s_serv.c, s_service.c, s_user.c: additions 5118 for services. 5119 5120 * s_misc.c: added missing parameter for check_service_butone(). 5121 5122 * INSTALL completed and converted to sgml 5123 5124 * s_serv.c: MyRealloc(NULL, size) isn't portable. 5125 5126Tue Mar 18 17:59:26 1997 Christophe Kalt 5127 5128 * 2.9.3b10 5129 5130 * channel.c, hash.c, res.c, s_serv.c, s_service.c, s_user.c, 5131 whowas.c: penalties tuned again. (added Volker Paulsen's anti SPAM 5132 hack). 5133 5134 * s_err.c, s_serv.c: minor changes to RPL_STATS* 5135 5136 * s_bsd.c: authclnts[] was not always initialized. 5137 5138 * ircd.c: buffer in ircd_readtune() lacked initialization. 5139 5140 * s_service.c: fixed buffer overflow. 5141 5142 * send.c, support.c: # of arguments cleanup. 5143 5144 * list.c, res.c, s_service.c: casts to suppress warnings. 5145 5146 * h.h, dbuf.c: bufalloc, dbufblocks, poolsize now 5147 unsigned. (some checks might be needed, poolsize can really get 5148 big). 5149 5150 * s_misc.c: removed duplicate code in exit_client(). 5151 5152 * parse.c: 5153 5154 * Added more notices when generating SQUITs for unknown 5155 servers. 5156 * removed bogus else. 5157 5158Fri Feb 28 09:34:36 1997 Christophe Kalt 5159 5160 * s_err.c, s_serv.c: Added 2 more fields to RPL_TRACELINK. 5161 5162Thu Feb 27 14:50:37 1997 Christophe Kalt 5163 5164 * s_serv.c: /connect by servername didn't work for c lines (from Eumel) 5165 5166Wed Feb 26 16:48:36 1997 Christophe Kalt 5167 5168 * s_bsd.c: removed (old) redundant code concerning VIF. 5169 5170 * config.h.dist: CLONE_MAX and CLONE_PERIOD could be undefined. 5171 5172 * common.c: match() cleanup. 5173 5174Thu Feb 13 17:27:53 1997 Christophe Kalt 5175 5176 * res.c, res_init.c, res_mkquery.c, ircd.c, s_bsd.c: renamed 5177 res_init() to ircd_res_init() to avoid conflict (ULTRIX). 5178 5179 * hash.c, struct.c: cleanup of hashing functions. 5180 5181 * match.c, parse.c, send.c, common.h, channel.c, hash.c, s_bsd.c, 5182 s_misc.c, s_serv.c, s_service.c, s_user.c, note.c, ignore.c: 5183 5184 * _match() changed to match() and the check for maximum 5185 "recursion" slightly changed. 5186 * match() and matches() removed (stubs from when match 5187 was recursive?). 5188 * All occurrences of matches() changed to match(). 5189 * this saves one function call per match. 5190 5191 * send.c: Added 2 parameters to sendto_serv_butone(). 5192 5193 * s_err.c, s_serv.c: Added one field to RPL_TRACELINK. 5194 5195Sun Jan 26 20:02:34 EET 1997 Vesa Ruokonen (ruokonen@aapo.it.lut.fi) 5196 5197 * 2.9.3b8 5198 5199 * support.c, h.h, list.c: gcc -Wall cleanups. 5200 * h.h, struct.h, chkconf.c, s_conf.c, s_serv.c: 5201 created V:lines for checking connecting client parameters. 5202 passed as PASS command parameters. A matching V:line. 5203 refuses the connection (version number & compile flags). 5204 * struct.h, channel.c, s_debug.c: 5205 penalty threshold used for limiting KICK params. 5206 * struct.h: initial QUEUELEN calculation tuned. (->BUFFERPOOL). 5207 * c_msg.c: more verbose m_pong(). 5208 * channel.c, s_serv.c, s_user.c, whowas.c: 5209 penalties tuned for commands generating global bcast. 5210 * hash.c: converted multiplication to hashtable lookup to speed. 5211 up function calls. (from Core) 5212 * ircd.c, s_bsd.c: added truncation for non-appended writes. (_root_) 5213 * s_user.c: prefix for voice capability in channel list of WHOIS reply 5214 changed from '+' to '!'. 5215 * s_user.c: drop PONGs with bad origin. 5216 store connection parameters from PASS temporarily to info 5217 field in contstant locations. 5218 * s_user.c: m_umode() fixed (from Core). 5219 5220Wed Jan 15 14:42:43 1997 Christophe Kalt 5221 5222 * s_bsd.c: 5223 5224 * mysk was initialized by empty password in M line. 5225 5226Tue Jan 14 24:62:34 EET 1997 Vesa Ruokonen (ruokonen@aapo.it.lut.fi) 5227 5228 * parse.c, channel.c, s_user.c: cleanup of find_functions(), 5229 _nickserv replaced by _service. 5230 * h.h, : setup_ping() takes aConfItem pointer as parameter now. 5231 * sys.h: #elif expanded to #else #if for compability 5232 * s_bsd.c: inetport(P:line) changed to support VIFs better. 5233 More info about listening ports into /stats l. 5234 UDP ping is initialized from M:line, not anymore from P:line. 5235 * s_numeric.c: cleanups in numeric processing. 5236 * Makefile.in, Makefile.irc, Makefile.ircd: makedepend fix 5237 * configure.in: zlib check moved to end, as it can interfere 5238 other checks when libs aren't in default paths. 5239 5240Mon Jan 13 09:11:04 1997 Christophe Kalt 5241 5242 * ircd.c: 5243 5244 * made the display of version (flag -v) more verbose. 5245 5246 * regenerated configure (with autoconf 2.12; thanks digital). 5247 5248 * s_user.c: 5249 5250 * fixed, and extended KILL reasons for `standard' 5251 collisions. (both victims u@h are now shown). 5252 5253 * send.c: 5254 5255 * fixed the logic when sending mass message/notice to a 5256 server mask. 5257 5258 * configure.in, Makefile.in: 5259 5260 * fixed detection & use of zlib using the environment 5261 variable ZLIB_HOME (from Vesa). 5262 5263Thu Jan 9 13:09:36 1997 Christophe Kalt 5264 5265 * struct.h, ircd.c: 5266 5267 * added -b command line switch to let the server start 5268 even if the ircd.tune file is corrupted (mostly from 5269 Magnus Tjernstrom). 5270 5271 * s_conf.c: 5272 5273 * udp listen was setup even if port was defined to be 0. 5274 5275Wed Jan 8 12:35:03 1997 Christophe Kalt 5276 5277 * h.h, s_bsd.c, s_conf.c: 5278 5279 * port field in M configuration line is used again, now to 5280 define on which port the server will listen for UDP pings. 5281 5282 * hash.c: 5283 5284 * restricted commands to opers (from Vesa). 5285 5286 * send.c: 5287 5288 * sendto_match_butone() had a broken behaviour, 5289 brought back the old (2.8.21) behaviour. 5290 5291 * s_bsd.c: 5292 5293 * fixed negociation of compression for outgoing 5294 connections. 5295 5296 * moved the "rejected connection" notice to &LOCAL. 5297 5298 * SLOW_ACCEPT #ifdef's changed to #ifndef's to get what 5299 one should expect from the define name ! 5300 5301 * made inetport() more readable, and added check on empty 5302 string parameter (from Vesa). 5303 5304 * highfd isn't defined when _DO_POLL_ is defined, so don't 5305 use it in debug notices (from Vesa). 5306 5307 * break changed to continue because ??? (from Vesa). 5308 5309 * s_user.c: 5310 5311 * fixed KILL notice sent on nick collision (was using 5312 ident reply for remote clients). 5313 5314 * allowed oper!user@host.foo to send global message/notice 5315 to #*.foo 5316 5317 * s_serv.c, s_user.c, s_bsd.c, s_debug.c: 5318 5319 * changed the PASS command semantic (from Vesa). 5320 5321Fri Jan 3 14:47:52 1997 Christophe Kalt 5322 5323 * s_bsd.c: 5324 5325 * completed virtual hosts support (M line). 5326 5327 * config.h.dist: 5328 5329 * AIX has poll(), use it. 5330 5331Mon Dec 30 15:08:20 1996 Christophe Kalt 5332 5333 * s_bsd.c, h.h: 5334 5335 * added support for virtual hosts (P line). 5336 5337Wed Dec 18 12:08:29 1996 Christophe Kalt 5338 5339 * bsd.c: 5340 5341 * fixed read_message() bugs resulting from the merge. 5342 5343 * channel.c: 5344 5345 * limited the number of possible kicks to MAXMODEPARAMS. 5346 5347Mon Dec 16 09:36:54 1996 Christophe Kalt 5348 5349 * list.c: 5350 5351 * don't free serv->user too early. 5352 5353 * removed duplicated(?) away memory count. 5354 5355Fri Dec 13 10:28:43 1996 Christophe Kalt - Hmm, Friday the 13th! 5356 5357 * config.h.dist, s_auth.c, s_user.c, s_debug.c: 5358 5359 * minor tuning. 5360 5361Thu Dec 12 10:34:47 1996 Christophe Kalt 5362 5363 * struct.h, s_auth.c, s_debug.c: 5364 5365 * added memory usage stats for ident replies. 5366 5367 * send.c, s_auth.c, s_misc.c: 5368 5369 * fixed boundaries problems with long ident replies. 5370 5371Wed Dec 11 17:42:29 1996 Christophe Kalt 5372 5373 * struct.h, send.c, s_auth.c, s_bsd.c, list.c, s_conf.c, s_misc.c, 5374 s_user.c: 5375 5376 * added auth field to struct Client to eventually store 5377 long `OTHER' ident replies. It is only used in logs, and 5378 notices (not in matches against configuration lines). 5379 5380 * config.h.dist: 5381 5382 * added #define SLOW_ACCEPT (default). 5383 5384 * added #define CLONE_CHECK (default). 5385 5386 * s_bsd.c: 5387 5388 * fixed config line reference counter. 5389 5390 * added CLONE_CHECK code (check_clones() from 5391 pgoncalves@mail.telepac.pt (Pedro Goncalves)). 5392 5393 * added SLOW_ACCEPT (previous behaviour) code. 5394 5395 * merged the 2 versions of read_message(), fixing some 5396 (buggy) difference between them. 5397 5398 * merged two for() in read_message(). 5399 5400 5401Mon Dec 2 11:02:54 1996 Christophe Kalt 5402 5403 * s_user.c: 5404 5405 * changed error notice 5406 5407 * send.c: 5408 5409 * #*.mask messages now propagated to other servers. 5410 5411 * s_service.c: 5412 5413 * added missing else. 5414 5415 * config.h.dist, s_debug.c, channel.c: 5416 5417 * removed all references to V28PlusOnly 5418 * made NoV28Link defined by default 5419 5420Wed Nov 27 18:09:42 1996 Christophe Kalt 5421 5422 * struct.h, class.c, ircd.c, s_bsd.c, s_conf.c, s_serv.c: 5423 5424 * added lowercase c config line 5425 5426Tue Oct 1 22:29:31 1996 Christophe Kalt 5427 5428 * added config.h to dependancies in Makefile.ircd 5429 5430 * config.h.dist, h.h, struct.h, packet.c, send.c, ircd.c, s_bsd.c, 5431 s_debug.c, s_serv.c, s_user.c, s_err.c, list.c, Makefile.ircd, 5432 configure.in: 5433 5434 * added #define ZIP_LINKS and s_zip.c. 5435 * made configure look for the zlib (-lgz). 5436 * implemented server-server zlib compression. 5437