- extban_usermode.c: minor cleanup/dedupe
- tls_openssl: cleanly build with openssl 3.0; use OSSL_STORE api to retrieve dh parameters; replace deprecated functions
- Allow 'hideidle' and 'hidechans' to be set in 'general::oper_only_umodes'
- Replace IsFloodDone() occurrences with HasFlag()
- Treat 0 minute klines as permanent ones; rename valid_tkline() to valid_aline_time(); remove TK_SECONDS/TK_MINUTES cruft
- s_bsd.c:ssl_handshake(): unregister from i/o events and reset read/write handlers before entering auth. server.c:server_tls_handshake(): likewise
- conf.c:attach_iline(): just let the client silently in if their class is full and they are exempted from limits. No point in explicitely telling them that their class is full and they have exceed_limit = yes
- user.c, m_server.c: remove IsDead() tests in register_local_user() and server_estab() that are no longer needed. ages ago, the sendto_* functions used to call exit_client() (via dead_link())
- match.c: use bool in some places
- Revert accidental changes to qstring regex
- Change MAX_INCLUDE_DEPTH to 5
- The `general::dots_in_ident` configuration directive has been renamed to `general::specials_in_ident` and now covers the '-' and '_' characters in addition to '.'
- channel_mode.c:send_mode_changes_client(), send_mode_changes_server(): don't send the appending space in the TMODE/MODE message in case paracount == 0
- s_bsd.c:add_connection(): fixed stupidly broken 'ipv6 loopback address irc-sanitizer' logic
- Change accept/callerid related code to no longer re-use the 'struct split_nuh_item' and have its own 'struct AcceptItem' instead. Minor other cleanups to callerid related functions.
- Recreate autogenerated lexer file
- conf_lexer.l: port over C comment handling we introduced to hopm a while ago
- conf_class.c:class_ip_limit_add() return 'true' even in case of overruling. Add note why pnode->data needs to be increased in case of overruling, too
- conf.c: move class_ip_limit_add() from conf_attach() to attach_iline() where all the other session limit tests take place. Moving this is safe as it is guaranteed that a auth conf can never be attached twice.
- conf.c: refactor conf_check_client()
- Valid characters allowed in user names for local clients are now [A-Za-z0-9._-]
- res.c:res_readreply(): remove pointless 'continue'
- user.c:introduce_client(): use sendto_server() to actually benefit from shared data buffers
- client.c:exit_client(): documenting
- res.c: remove timeout_resolver() wrapper; remove unused 'next_time' calculation in timeout_query_list() as this function is run each second anyway
- Bump copyright years
- Final removal of backwards compatibility code for ircd-hybrid 8.2.22 and below. Also, minimum supported version of Anope is now 2.0.8.
- motd.c:motd_memory_count(): include memory allocated for motd->mask and cache->path
- whowas.h, whowas.c: rename list/hash dlink_node members of the Whowas struct to actually make sense
- send.c:sendto_match_servs(): rename 'cap' to 'capab'; remove useless test on 'capab'
- Stylistical changes
- monitor.h, monitor.c: monitor_find_hash() doesn't need to be externally visible
- monitor.c:monitor_del_from_hash_table(): replace dlinkFind/dlinkDelete combo with dlinkFindDelete
- monitor.c: deduplicate (add monitor_free() function)
- extban.c:extban_get_isupport(): remove useless post-increment on 'p'
- Revert echo-message changes for now
- send.c:sendto_channel_butone(), sendto_anywhere(): test for IsDead() before actually calling send_message()
- send.c:sendto_anywhere(): use a separate buffer for sending the echo message as we always need to have the sender in the n!u@h format here
- Implemented IRCv3.2 `echo-message` extension
- Rename Connection::caps to Connection::capab
- isupport.c:isupport_init(): add BOT=B to RPL_ISUPPORT as proposed in https://github.com/ircv3/ircv3-ideas/issues/43
- Re-create autogenerated parser files
User mode `B` has been implemented. Clients with that mode set are marked as a bot in both `WHOIS` and `WHO`. This mode can only be set by IRC operators (as long as the `bot` directive is set in `general::oper_only_umodes`), servers, and services. This mode can for example be used to mark HOPM as official network bot.
- numeric.h, numeric.c: move RPL_WHOISTEXT to 339
- monitor.c:monitor_count_memory(): add +1 for '\0'
- monitor.h, monitor.c: change Monitor::name to pointer type
- user.c:register_local_user(): reduce buffer size from 512 to (sizeof("Invalid username []") + sizeof(client->username))
- Stylistical changes
- conf_parser.y: as of bison 3.5, an explicit POSIX yacc compliance warning is thrown when %type isn't applied to non-terminals
- monitor.c: update documentation
- Rebuild autogenerated files
- Replace WATCH with IRCv3.2 MONITOR
- channel.c:channel_send_members(): replace IRCD_BUFSIZE with sizeof(buf)
- conf_class.c:class_find(): minor readability improvement
- ircd.c: tweak event_try_connections interval. try_connections() gets called every 15 seconds.
- channel.c:channel_send_mask_list(): fixed issue with truncated ban masks
- For consistency, the `general::network_desc` configuration directive has been renamed to `general::network_description`
- Restore backwards compatibility mode for non RHOST server. Final removal is scheduled for the end of 2020.
- Remove serno.h
- Switch to 6 arg SERVER/SID commands
- id.c:valid_sid(), valid_uid(): don't allow lowercase letters in server/user IDs. Changes provided by Adam.
- User mode 'u' and 'b' have been removed - Spam/flooding notices that previously have been sent to user mode 'b' now go to user mode 'f'
- conf.c, user.c: "Too many connections", "auth {} block is full", and "Too many clients, rejecting" server notices now no longer go to user modes u/f, but go to user mode j (rejection notices) instead
- conf.c:conf_check_client(): remove listener information from unauth server notice
- channel.c:check_spambot_warning(): move assignment
- Remove CAPAB_QS. Quit Storm removal is default behavior for more than 20 years now.
- Remove CAPAB_SVS
- conf_class.c:class_mark_for_deletion(): eliminate somewhat stupid typecasting
- m_stats.c, listener.c: listener->active is of type bool. Use true/false where appropriate; change inetport() to bool
- Implement accept() deferring. Closes github issue #4
- Stylistic changes
- client_svstag.c: whitespace change
- Style corrections; reformatting
- Cleanup ip address matching routine in various places
- conf.c:operator_find(): allow matching against client->realhost; deduplicate
- tls_gnutls.c:tls_set_ciphers(): fixed broken string conversion specifier
- Make use of listener_has_flag() in various places; client-only listeners are now marked with a 'C' in "/stats P"
- channel.c:channel_send_namereply(): update documentation
- Added 'client' option to listener::flags
- user.c: remove unused header include
- user.c:introduce_client(): remove old backwards compatibility code for non rhost servers
- server.c:write_links_file(): rename 'target_p' to 'client'
- Removed MAXIMUM_LINKS_DEFAULT
- Implemented channel mode 'K'. KNOCK cannot be used on channels with that mode set.
- packet.c:parse_client_queued(): use 'return' consistently. 'break' needs to be used only in case of a state change
- channel_mode.c:channel_modes(): minor optimization to save potentially redundant member_find_link() calls
- tls_gnutls.c, tls_openssl.c, tls_wolfssl.c: fixed ret vs. retlen vs. length inconsistency
- tls_openssl.c: clear OpenSSL's error queue before SSL_get_error() invocation
- channel.c:channel_send_namereply(): remove show_eon argument. In hybrid we no longer have a case where a names reply needs to be sent with no RPL_ENDOFNAMES
- Rename channel_member_names() to channel_send_namereply()
- Extban $t of type 'acting' has been implemented. This extban allows matching based on TLS protocol version and/or cipher suite
- extban_channel.c: documenting
- Rename find_channel_link() to member_find_link()
- Add member_get_prefix_len() and make use of it in some places; rename get_member_status() to member_get_prefix()
- Move remove_a_mode() from m_join.c to channel.c and rename it to channel_demote_members(); have m_sjoin.c make use of it as well
- whowas.h, whowas.c: rename Whowas::online to Whowas::client
- s_bsd.c:comm_checktimeouts(): minor cleanups; remove pointless tests on timeout handlers
- s_bsd.c:comm_setflush(): really set F->flush_timeout to 0 if called with timeout = 0; same goes for comm_settimeout()
- Replace remaining occurrences of IsMember with find_channel_link and remove IsMember entirely
- send.c: restructuring & reformatting
- Fixed remaining style issues
- auth.c:auth_release_client(): move copying of x->host to x->realhost to conf.c:verify_access()
- Remove hardcoded numeric digit from RPL_WHOISCHANNELS
- Remove hardcoded numeric digit from RPL_NAMREPLY
- parse.c:parse(): move comment to where it really belongs to
- Store tls version/cipher in Client::tls_cipher for later use
- Rename Client::certfp to Client::tls_certfp
- parse.c:parse(): remove redundant IsDead test
- parse.c:parse_handle_numeric(): unconfuse some extra smart looking condition
- server_hunte(): drop the 'parc' argument. It's no longer needed.
- Style corrections
- parse.c:parse_handle_command(): re-added MyClient() test to allow handlers to be re-used for remote clients
- Refactor Message flags
- Track how many times a command has been issued via ENCAP in Message::ecount. Can be seen in /stats m now.
- Each type of command handler now has its own min/max argument count pair; remove remaining argument checks from all modules
- Fixed various style inconsistencies
- user.c:register_local_user(): remove assert() on client->servptr that's now pointless
- Move setting of client->servptr to more appropriate places
- channel_mode.c:add_id(): actually store the raw ban mask in ban->banstr for servers/remote clients (fixes github issue #18)
- channel.c:msg_has_ctrls(): fixed issued with high ascii erroneously being parsed as control characters due to overflowing 'p' (github issue #19)
- channel_invite.c:invite_find(): add some basic documentation
- Change m_userhost() and m_ison() so sendto_one_numeric() can be used
- Replace some occurrences of sprintf with snprintf
- Fixed style inconsistencies in various places
- Removed 'spoof_notice' from auth::flags. Spoofs are not 'hard spoofs' anymore as they used to be back in the days. The real host can always be seen via /whois. Also with vhosts now this notice doesn't make much sense anyway
- Remove strtok_r() compatibility code
- ircd.c:setup_fdlimit(): fixed setrlimit() throwing EINVAL on macOS/catalina (#16 on github)
- Masking of k- and i-lines to regular users has been removed. Just with other stats, reporting to regular users can now only be enabled or disabled. - Free memory pointed to by client->connection->password in register_local_user()
- Remove unused header includes
- propset
- Add src/extban_nick.c
- Extban $n of type 'acting' has been implemented. This extban prevents matching users from changing their nick while in the channel. Users with voice or above are not affected. - Channel mode +N has been changed so channel members with +v can change nick names, too
- tls_wolfssl.c: make use of recently added wolfSSL_CTX_set1_groups_list if available. Kudos to the guys at wolfSSL for implementing it that fast.
- propset
- autoreconf
- Move channel invitation related functions to channel_invite.c
- user.c:introduce_client(): rename 'server_p' to 'server'
- extban.c:extban_format(): break early as there can't be more than one acting or matching extban
- motd.c:motd_lookup(): check against client->realhost, too
- client.c: rename some occurrences of 'source_p' to 'client'
- Rename most occurrences of 'client_p' to 'client'
- extban_account.c:extban_account_matches(): replace irccmp with strcmp
- extban_server.c: allow $s to be used for invite exceptions
- extban_account.c:extban_account_matches(): logic fixes so $a:* actually matches any logged-in user
- extban.c:extban_get_isupport(): remove extraneous cast
- propset
- Re-create autogenerated files
- Extbans have been implemented. Main implementation done by Adam for p4. Currently supported extbans: Matching: $a:<account> Matches users logged into a matching account. $c:<channel> Matches users that are on the given channel. An additional prefix of either @, %, or + can be specified to test for certain channel privileges. $o:<class> Matches IRC operators that have joined a class matching the mask. $r:<realname> Matches users with a matching realname. $s:<server> Matches users that are connected to a server matching the mask. $u:<modes> Matches users having the specified user modes set or not set. $z:<certfp> Matches users having the given TLS certificate fingerprint. Acting: $j:<banmask> Prevents matching users from joining the channel. $m:<banmask> Blocks messages from matching users. Users with voice or above are not affected.
- ircd.c: remove unused header inclusion
- Re-create parser files
- Renamings: tls_new_cred -> tls_new_credentials tls_free_cred -> tls_free_credentials tls_verify_cert -> tls_verify_certificate
- conf.c:conf_read_files(): minor cleanup; kill 'filename' pointer
- conf.c:conf_read_files(): remove second buffer which doesn't make any sense here
- channel.c:find_bmask(): bmasks are now tested against x->realhost, too
- tls_gnutls.c:tls_new_cred(): verify gnutls_global_init() run
- server_tls_handshake(), ssl_handshake(): make use of client_get_name()
- conf_parser.y: style corrections; mostly whitespace changes
- Stylistic changes
- Stylistic changes
- propset
- Move ax_with_tls.m4 to ax_arg_with_tls.m4
- The --enable-openssl, --enable-gnutls switches, and their disabling counterparts --disable-openssl and --disable-gnutls, have been replaced with the --with-tls switch which takes one of the following options: 'openssl', 'wolfssl', 'gnutls', and 'none'. If nothing has been specified, configure tries to autodetect in the following order openssl/libressl -> gnutls -> wolfssl.
- autoreconf
- Implemented experimental support for wolfSSL. Minimum supported version is 4.3.0
- tls_gnutls.c, tls_openssl.c: tls_get_cipher, tls_get_version: reduce buffer sizes
- Minimum supported GnuTLS version is 3.6.5 now
- tls_openssl.c:tls_new_cred(): (re)set default ciphers if there aren't any defined in the configuration
- Replaced most occurences of 'SSL' with 'TLS'
- tls_openssl.c:tls_new_cred(): stylistic changes
- tls_openssl.c:tls_new_cred(): despite being mentioned in the manual, feeding SSL_CTX_set_ciphersuites with an empty list doesn't work
- tls_openssl.c:tls_get_cipher(): drop the explicit bits used information as this is redundant
- Rebuilt parser files
- In the serverinfo {} block, the following configuration directives have been renamed: ssl_certificate_file -> tls_certificate_file ssl_dh_param_file -> tls_dh_param_file ssl_dh_elliptic_curve -> tls_supported_groups ssl_cipher_list -> tls_cipher_list ssl_message_digest_algorithm -> tls_message_digest_algorithm - In the operator {} block, the following configuration directives have been renamed: ssl_certificate_fingerprint -> tls_certificate_fingerprint ssl_connection_required -> tls_connection_required - In the connect {} block, the following configuration directives have been renamed: ssl_cipher_list -> tls_cipher_list ssl_certificate_fingerprint -> tls_certificate_fingerprint
- tls_openssl.c:tls_new_cred(): default to X25519:P-256 groups
- Rebuilt parser files
- Supported TLSv1.3 cipher suites can now be configured explicitely via the new 'serverinfo::tls_cipher_suites' configuration directive
- tls_gnutls.c, tls_openssl.c: stylistic changes
- tls_openssl.c:tls_new_cred(): log a warning in case SSL_CTX_set_cipher_list failed
- tls_openssl.c: further modernization: replace SSL_CTX_set_tmp_ecdh with SSL_CTX_set1_groups_list
- Minimum supported version of OpenSSL is 1.1.1 now; modernize tls_openssl.c, drop/replace usage of obsolete functions
- tls_openssl.c:tls_new_cred(): fixed compile warning
- conf_parser.y:reset_block_state(): deduplicate
- OpenSSL now runs with automatic curve selection if no curve is defined in serverinfo::ssl_dh_elliptic_curve
- server.c:write_links_file(): replaced kind of redundant snprintf() with just strlcat() appending the LF character
- conf.c:conf_dns_callback(): kill a memcpy()
- Merge conf_dns_lookup into conf_resolve_host
- Rename several functions in conf.c as follows: set_default_conf -> conf_set_defaults read_conf -> conf_read validate_conf -> conf_validate lookup_confhost -> conf_resolve_host check_client -> conf_check_client read_conf_files -> conf_read_files clear_out_old_conf -> conf_clear
- Change conf:check_client() to a boolean type
- user.c: merge check_xline() into register_local_user()
- Bump copyright years everywhere
- tls_gnutls.c:tls_verify_cert(): we're actually not interested in the length of the certificate list. i.e. pass NULL as second argument to gnutls_certificate_get_peers().
- Rebuilt parser files
- The connection timeout for connect{} blocks can now be configured via the 'connect::timeout' configuration directive
- hash: move initialization of 'hashf_xor_key' into strhash() and kill hash_init() - hash.c: stylistic changes
- Various stylistic changes
- channel_mode.c:get_channel_access(): fixed compile error with --enable-assert
- Rename struct Membership to ChannelMember - Rename Channel::last_knock to last_knock_time - Rename Channel::last_invite to last_invite_time - Rename chptr to channel
- modules.c: whitespace change
- Command handlers are now of type void again
- Renamed 'creationtime' Channel structure member to 'creation_time'
- tls_gnutls.c:tls_new_cred(): fixed segfault issue in case there's no DH parameter file. Reported by Dominic Hargreaves <dom@debian.org>
- tls_gnutls.c:tls_new_cred(): test the return value of gnutls_dh_params_init() and act accordingly
- s_bsd.c:setup_socket(): enable TCP_QUICKACK
- PR #14 by albert-github: Correction of some obvious documentation bugs
- hostmask.c:try_parse_v4_netmask(): made 'addb' of type uint8_t
- s_bsd.c:comm_connect_tcp(): fixes to -r9033
- conf_class.c:class_find(): fixed logic that wouldn't allow to pick up inactive classes leading to '/rehash' not updating existing classes and rather creating duplicates
- misc.c:address_compare(): improve readability
- s_bsd.c:comm_connect_tcp(): kill another memcpy()
- parse.c:parse(): replace IsDefunct() test with IsDead(). Checking for FLAGS_CLOSING and FLAGS_KILLED is redundant at this point.
- hostmask.c:try_parse_v6_netmask(): change 'unsigned short' to 'uint16_t'
- hostmask.c: commit message from p4: fix stack out of bounds write when parsing v6 netmasks. Additionally fix the check for the number of given cidr bits to be > the number of parsed bits to not erronously parse valid v6 masks as hosts.
- hostmask.c:try_parse_v4_netmask(): make UBSan shut up
- listener.c:listener_make(): another memcpy() bites the dust
- listener.c:inetport(): kill pointless copying of listener->addr
- res.c:do_query_number(): kill another memcpy()
- Kill a few memcpy() not needed in some places
- Actually remove send_queued_all() as it is no longer needed
- send.c:send_queued_all(): deduplicate
- send.c:sendto_common_channels_local(): remove pointless test on 'user->connection->serial' as 'user' is skipped in the loop anyway and never gets a new serial set. This is a remainder of when that logic used to work differently.
- send.c: stylistic changes
- send.c: replace remaining IsDefunct() tests with IsDead()
- client.c:exit_client(): add assert()
- Run try_connections() once every five seconds
- client.c, server.c: use monotonic time for server connection cycle
- Expire gecos and resv denies on the fly while looking them up
- Move oper_privs_as_string() from conf.c to m_stats.c
- Recreate parser files
- Removed general::tkline_expire_notices configuration directive and added user mode +X (sees *LINE expiration notices) instead
- tls_gnutls.c, tls_openssl.c: stylistic changes
- tls_gnutls.c: avoid maintaining multiple priority strings
- Made read/write functions use ssize_t
- send.c:send_queued_write(): refactoring
- packet.c:read_packet(): minor cleanup; don't break the loop if we can just return here
- packet.c:read_packet(): read until EAGAIN for non TLS clients, too
- whowas: rename hashv to hash_value
- send.c: split up if statements
- Lower TLS handshake timouts to 5 seconds. Add separate TLS_HANDSHAKE_TIMEOUT enum to tls.h
- Fixed issue where timeouts set with comm_setselect() were not working as in most places this function has been called with seconds when it really expected milliseconds. Removed all related multiply/divide by 1000 nonsense that's sprinkled in the code as ircd currently does support one-second granularity anyway.
- client.c:client_get_name(): remove outdated comments
- auth.c: change ident timeouts to 4/4
- Killed CurrentTime
- ircd.c:main(): improve seed generation
- Use proper conversion specifiers in some places; remove pointless casts
- Should be using monotonic clock almost everywhere now; sort out mixture and misuse of 'firsttime', 'lasttime' and 'since' in the Connection structure
- event.c:event_time_set(): fixed logic error
- event.c:event_time_set(): fix compile warning
- Use monotonic time for client->connection->last_privmsg
- channel.c:check_spambot_warning(): remove extraneous parentheses
- Make more timers use monotonic time
- Add support for monotonic clocks and have some timers make use of it; remove event_set_back_events()
- Replace gettimeofday() with clock_gettime(). We're not falling back to gettimeofday() for old/weird systems that don't have clock_gettime()
- auth.c:auth_connect_callback(): allow a read timeout of 3 seconds
- auth.c:auth_delete(): eliminate possible race conditions
- auth.c: remove auth_timeout_queries() and related code. Just let the dns and identd timeouts finish the request - Removed IDENTTIMEOUT from '/set' options. We now no longer allow users to change this on runtime. identd timeout is 5 seconds now
- user.c:user_set_hostmask(): send CHGHOST to the client whose host gets changed
- auth.c:auth_dns_callback(): replace `EmptyString()` test with just `namelength == 0`
- auth.c:auth_free(): set auth->client pointer to NULL
- auth.c:auth_dns_callback(): minor readability improvements
- Add address_compare() and make use of it in some places
- server.c:server_connect_callback(): remove redundant memcpy(). Address is already being copied to client->ip in server_connect()
- Remove redundant x.ss.ss_family = res->ai_family assignments. This is already set by getaddrinfo()
- Recreate parser files
- Cleanup server connecting related code even further - Make comm_connect_tcp() take less arguments and remove unused dns resolving functionality
- server.c:server_connect(): cleanup address binding related mess
- Regenerate parser files
- The 'serverinfo::vhost' and 'serverinfo:vhost6' configuration directives have been deprecated. If you need to bind() a specific address you can specify one in the connect {} block - The 'connect::vhost' configuration directive has been renamed to 'connect::bind'
- getopt: rename YESNO to BOOLEAN
- config_parser.y: minor style corrections
- conf_parser.y: reject connect{} configuration entries with invalid server names
- conf_lexer.l: remove unused 'passwd'
- conf_lexer.l: remove unused 'quarantine'
- client.c:check_conf_klines(): skip dead clients on the unknown_list, too
- server.c: move SetHandshake to proper place
- Fixed bug where handshaking servers wouldn't timeout
- client.c:check_pings_list(): remove various tests as we don't process anything else than clients and server that have finished registration
- conf_connect_allowed, find_conf_by_address, find_address_conf, find_dline_conf: drop the aftype argument
- Made comm_get_sockerr() and comm_accept() take a fde_t pointer as argument
- tls_gnutls.c, tls_openssl.c: disable TLSv1.1
- s_auth.c:auth_read_reply(): use sizeof(buf)-1 instead of RFC1413_BUFSIZ for recv()
- send.c:sendto_match_servs(): add IsDead test
- client.c:exit_client(): remove extraneous IsDead test. sendto_one() already does that.
- auth.c: sprinkle some assert()
- channel.c: fixed previous changes to is_banned()
- Tidy up some enums; misc style corrections
- Use bool for SetOptions.autoconn
- Made Connection::oper_warn_count_down unsigned; clean up some logic in check_spambot_warning()
- Made Connection::join_leave_count and SetOptions::spam_num unsigned
- Recreate autogenerated files
- No longer enforce a lower limit of MAXCLIENTS_MIN on GlobalSetOptions.maxclients and ConfigServerInfo.default_max_clients
- Recreate autogenerated files
- The 'general::ignore_bogus_ts' configuration option has been deprecated
- tls_gnutls.c, tls_openssl.c: disable TLSv1.0
- ircd.c: added setup_fdlimit(); move max file descriptor check out of fdlist_init()
- fdlist.c:fd_note(): don't leak memory on F->desc if it is already allocated
- fdlist: change F->desc to a pointer and use xstrdup to copy description
- Recreate autogenerated files
- conf_lexer.l: made ieof() use bool; minor style corrections
- autoreconf
- Update copyright years
- autoreconf
- Get rid of version.c
- conf.c:verify_access(): improve readability
- auth: replace AM_DOING_AUTH and AM_DNS_PENDING with dedicated variables
- Sprinkle some assert()
- Rewrites to have parse_handle_command() end the flood grace period. MODE and TIME no longer ends the grace period.
- Get rid of Connection::allow_read and have parse_client_queued() determine max lines to be processed
- packet.c: made extract_one_line() of type size_t
- server_die(): remove die/restart enum. Use bool instead.
- Boolify
- Stylistic changes
- Move resv_find() test out of resv_make()
- More bool conversion. This should be everything now.
- AUTHORS, version.c: update my email address
- Fix Coverity CID 1475602: Memory - illegal accesses (UNINIT)
- More parse_aline() tweaks
- Further parse_aline() cleanups; get rid of find_user_host() - /KLINE and /DLINE now no longer supports nick names
- Stylistic changes
- Cleanup parse_aline() related code
- tls_none.c:tls_new_cred(): fixed bool conversion mistake. Should return 'true' here
- Make use of bool even more
- Make use of the bool data type in some more places
- Make use of the bool data type in some more places
- Make use of the bool data type in some places
- Use bool data type in struct Whowas
- channel_mode.c:chm_simple(): remove hardcoded CHACCESS_HALFOP oplevel test to allow channel mode modules to register their own oplevel in the future
- Cleanups to add_id and del_id; have these function take a dlink_list pointer to the channel's banmask list
- channel_mode.(c|h): get rid of the specialized chm_ban, chm_except, and chm_invex functions and just have chm_mask instead
- Use a boolean type for chan_mode::only_servers and chan_mode::only_opers
- channel_mode.(c|h): get rid of the specialized chm_op, chm_hop, and chm_voice functions and just have chm_flag instead
- patricia.c:ascii2prefix(): fixed compile warning
- Stylistic changes
- patricia.c:patricia_clear(): remove commented out xfree(). For this we have patricia_destroy()
- ipcache, conf_class: use separate trees for ipv6 and ipv4 addresses. Until fixed, this is to work around a patricia.c limitation/bug where a ipv6 and a ipv4 prefix can share the same tree node in case they have the same length and bit pattern.
- patricia.c:patricia_clear(): must set patricia->head to NULL
- conf_parser.y: run class_ip_limit_rebuild() only in case the class{} settings have changed
- class_ip_limit_add, class_ip_limit_remove: use void pointers for 'addr'
- Rewrite class based subnet limiting to use a patricia trie
- conf_db.c:open_db_read(): simplify
- Fixed style inconsistencies in various places
- client_svstag.c:svstag_attach(): documentation
- Rename Channel:locmembers to Channel::members_local
- patricia.c: stylistic changes
- patricia.c:ascii2prefix(): don't allow to overflow 'save'; change size of 'save' to INET6_ADDRSTRLEN
- patricia.c:ascii2prefix(): Fix CID 1474567: Memory - illegal accesses (RETURN_LOCAL). Using "string", which points to an out-of-scope variable "save".
- patricia.c:comp_with_mask(): fix compile warning with -Wshift-negative-value
- Makefile.am: add patricia.c to ircd_SOURCES
- ipcache: rewrite to use patricia
- patricia: add patricia_make_and_lookup_addr()
- watch: cache hash values
- Sprinkle some assert(); cleanup existing ones
- Minor style corrections
- channel.c:channel_do_join(): deduplicate
- modules.c: style corrections
- s_bsd.c:ssl_handshake: use 'F' instead of 'client_p->connection->fd'
- s_bsd_epoll.c: remove syscall.h header include
- s_bsd_epoll.c: get rid of the fixed size ep_fdlist and add support for a growing epoll_event array. Some code derived from libevent.
- s_bsd_epoll.c: use epoll_create1 w/ EPOLL_CLOEXEC
- s_bsd_epoll.c:comm_setselect(): use memset 0 on 'ep_event'
- Minor cleanup to fd_open()
- user.c: style corrections
- auth.c: style correction; add some assert() to auth_error()
- Style corrections
- fdlist.c: initialize 'highest_fd' with -1 so we don't run into problems if we ever have a fd == 0 in fdlist_update_highest_fd(), which currently is highly unlikely
- AUTHORS, version.c: purge a bunch of yada yada yada
- channel.c: channel_do_join() is called for local clients only; use NULL as first argument to sendto_server()
- Style corrections
- Further cleanups to log.c
- log.c: further cleanups
- log.c: cleanups to improve readability; remove pointless log_set_file() call in ilog()
- Killed Connection::aftype. Use Client::ip.ss.ss_family instead.
- Recreate autogenerated files
- Killed userhost.c. Rewrote everything to use ipcache.c
- pseudo {} blocks aka services aliases are now reported via "STATS s"
- propset
- Move svstag related code into its own files
- conf_gecos.c, conf_resv.c: stylistic changes
- auth.c: deduplicate; minor cleanups
- Implemented channel mode 'N' which prevents users from changing their nick while in a channel with that mode set
- s_bsd_epoll.c:comm_setselect(): add assert()
- conf_pseudo.c:pseudo_message_handler(): stylistic changes
- Recreate conf_parser
- Move pseudot_stats() to m_stats.c
- Report configured pseudo {} blocks in '/stats R'. For now we use the numeric 227. Maybe there's some other numeric that's more suitable for this.
- conf.c:clear_out_old_conf(): free ConfigServerHide.hidden_name
- Stylistic changes
- Add channel_get_list() to channel.c which should be used when accessing channel_list outside of channel.c
- Stylistic changes
- conf_gecos.c: remove unused header include
- Allow a matching function to be passed to conf_service.c:service_find()
- Stylistic changes
- Rename some functions to comply with naming convention
- Remove CHW and HOPS server capabilities. These are mandatory for quite some time now.
- Rename some functions to comply with naming convention
- ircd_signal.c:setup_signals(): use NULL instead of 0 as third argument for sigaction()
- server.c:serv_connect_callback, finish_ssl_server_handshake: cleanups; immediately continue with read_packet()
- client.c:client_free(): remove some assert() that are now no longer valid
- client.c:dead_link_on_read(): replace two report_error with a sendto_realops_flags/ilog combo
- list.c: revert 'dlinkDelete(): reset m->data as well'
- Rename attach_conf() -> conf_attach(), detach_conf() -> conf_detach(); clean up documentation
- Move close_connection() from s_bsd.c to client.c
- Clean up some awful CONF_SERVER handling in serv_connect()
- hash.c:free_list_task(): properly unlink nodes from their lists even though memory is freed solely for debugging purposes
- autoreconf
- Rip out mempool
- s_bsd_epoll.c, s_bsd_kqueue.c: make use of epoll_event.data.ptr and kevent.udata
- Move fd_dump() to m_stats.c; rename it to stats_fdlist()
- client.c: moved clear_invite_list(), and del_all_accepts() calls from exit_one_client() to exit_client()
- Fixed bug spotted by Erick J. Velez where ircd would not remove RPL_WHOISOPERATOR based svstags when deoppering.
- autoreconf
- "JOIN 0" is now no longer supported
- fdlist.c: remove unused header includes
- res.c:restart_resolver(): Added sanity test. ResolverFileDescriptor might be NULL at this point
- auth.c: added some assert()
- autoreconf
- mempool.c:mp_pool_init(): fixed compile warning with --disable-mempool
- Style corrections
- auth.c:make_auth(): fixes to previous commit
- auth.c:make_auth(): properly assign 'auth' to 'auth->client->connection->auth'
- s_bsd_kqueue.c:comm_select(): fixed another compile error
- s_bsd_kqueue.c:comm_select(): fixed build
- Restore fd_table. No longer allocate fde_t items from within any other structures like the AuthRequest, or Connection structure - struct AuthRequest once again is no longer allocated from within the Connection structure
- client.c:client_free(): fixed assert() broken by previous commit
- client.c:client_free(): inspect most of the relevant 'struct Client' and 'struct Connection' members
- autoreconf
- autoreconf
- The memory pooling allocator can be disabled with the --disable-mempool switch now
- Recreate parser files
- autoreconf
- Remove experimental libgeoip support
- client.c:client_free(): set client_p->connection = NULL after freeing it
- Clean up remaining sizeof() to sizeof(variable)
- s_bsd.c: removed useless auth.h header include
- auth.h, auth.c: reformating; rename some functions to comply with naming convention
- auth.h, auth.c: made release_auth_client() 'static'; removed declaration in auth.h
- auth.c:auth_delete(): clear AM_DOING_AUTH, and AM_DNS_PENDING flags as appropriate
- auth.c:release_auth_client(): use the AddFlag macro
- list.c:dlinkDelete(): added assert()
- client.c:exit_client(): added assert(); style correction
- client.c:exit_aborted_clients(): deduplicate
- list.c:dlinkDelete(): reset m->data as well
- client.c:client_free(): fixed compile error introduced by previous changes
- client.c:client_free(): sprinkle some assert()
- mempool.c:mp_pool_new(): minor clarification in some debug log message
- ircd.c:main(): show 'ircd_version' and 'serno' in 'Server ready' message
- Update copyright years
- channel.c:check_spambot_warning(): stylistic changes; improve readability
- channel.c:check_spambot_warning(): remove extraneous parentheses
- motd.c:motd_lookup(): fixed indentation
- s_bsd.c: from p4: add_connection(): clean up logic for ips beginning with :
- Change RPL_WELCOME to rfc2812 style now that we have the realhost information in Client::realhost
- Have s_bsd.c:comm_accept() take a fde_t pointer instead of a struct Listener
- channel_mode.c:set_channel_mode(): use explicit NULL
- flex 2.6.4
- channel_mode.c:channel_modes(): fixed invalid test
- client.c, user.c: show the real host in client connect/exit notices
- auth.c: add documentation
- auth.c: have auth_dns_callback() to check for invalid hostnames rather than in user.c:register_local_user()
- Store real host information in Client.realhost and extend the UID message to send the actual host. This allows operators to see the real host of a client in /whois and /whowas.
- Remove UMODE_HIDDENHOST as we don't need a separat mode for that
- server_capab.h, server_capab.c: propset
- Add server_capab files
- autoreconf
- Move all CAPAB related code to server_capab.c, and server_capab.h
- irc_string.c: sync strlcpy() and strlcat() with latest versions from openbsd
- channel_mode.c: replace some two-case switches with just a small if/else if
- Update Riedel's email address
- channel_mode.c:chm_simple(): drop redundant mode changes; deduplicate
- Fixed NULL pointer dereference in chm_nosuch()
- channel_mode.c:cmode_tab[]: use designated initializers
- Get rid of chm_registered() and chm_simple_oper()
- Cleanup channel mode table handling
- Add RPL_ETRACEEND numeric taken from irc2.11
- Add UMODE_MAX_STR enum to user.h and make use of it in relevant places
- user.c:show_lusers(): get rid of redundant tests
- Fixed style inconsistencies in various places
- numeric.c: add channel modes 'Lu' to RPL_MYINFO
- channel_mode.c: constification; remove useless comments
- Rebuilt configuration parser files
- Implemented channel mode 'L'. Channels with that mode set can make use of an extended ban list size specified with the new 'channel::max_bans_large' configuraton option. This mode can be set only by irc-operators or servers.
- Add chptr->mode.mode manipulation macros
- channel_mode.h, channel_mode.c: use 'unsigned' in some places
- Implement channel mode 'u' which hides bmasks (+b/+e/+I) to non-chanops everywhere
- configure.ac: remove test for sys/resource.h
- send.c: replace IsDefunct() test in sendto_wallops_flags(), and sendto_realops_flags() with just IsDead()
- send.c:sendto_realops_flags(): only allocate a single dbuf_block instead of multiple ones depending on how many recipient there are
- send.c:sendto_realops_flags(): initialize 'ntype' with "???"
- channel.c:channel_make(): commenting
- channel.c: fixed style inconsistencies
- channel_mode.c: fixed an issue in chm_key() where "MODE #chan +k-k bla bla" would result in a "MODE #chan +k-k *" sent back to clients.
- channel_mode.c:send_mode_changes_client(): remove senseless code
- channel_mode.c:chm_ban, chm_except, chm_invex: add some comments about the max length of 'mask'
- channel_mode.c: send_mode_changes_(client|server): remove length test on parabuf; minor other cleanups
- channel_mode.c: send_mode_changes_(client|server): rename variables; 'nc' -> 'modecount', 'mc' -> 'paracount'
- channel_mode.c: fixed possible issue in send_mode_changes_(client|server) where it wouldn't strip the trailing space on TMODE with more than MAXMODEPARAMS parameters
- Removed CAPAB_IE and CAPAB_EX. These are mandatory for some years now.
- Fixed old bug where lusers/stats u would report an invalid max local connection count in RPL_STATSCONN
- Removed redundant 'Count.max_loc_cli'; use 'Count.max_loc' instead
- Rename get_client_name() to client_get_name()
- server.c: stylistic changes
- server.c:server_hunt(): use 'tmp' instead of 'node->data'
- client.c: stylistic changes
- numeric.c: made ERR_SSLONLYCHAN more descriptive as requested by r0d3nt
- Made server_hunt() return a const pointer
- Cleanup some bad mess in mo_trace(). This also fixes some bug where we would get RPL_TRACELINK replies with "ac2ptr_is_NULL!!" from remote servers including SIDs or UIDs.
- Get rid of Count.local
- Get rid of Count.myserver
- Get rid of Count.total
- No longer put servers on the 'global_client_list'. This was just bad.
- client.c: merge update_client_exit_stats() into exit_one_client()
- Rename some functions in client.c to comply with naming convention
- Rename some functions in auth.c to comply with naming convention
- Rename hunt_server() to server_hunt()
- Move check_server() from server.c to m_server.c; rename it to server_check()
- 'opers_bypass_callerid' now defaults to 'yes'
- send.c: style corrections
- send.c:sendto_channel_butone(): split long if statement
- send.c:sendto_channel_butone(): test IsDefunct() on 'target_p->from' instead of 'target_p' as it can be a remote client
- misc.c: add some comments
- conf_resv.c:resv_find(): remove explicit initialization on 'node' and 'list'
- conf_class.c:class_init(): make things look saner
- motd.c:motd_lookup(): don't retrieve ClassItem pointer when there's no need to
- Update copyright years
- Style corrections
- channel.c:channel_do_join(): rename variable
- mempool.c: remove useless NULL assignment
- patricia.c: whitespace change
- Style corrections in several places
- Make hash.c:free_list_task() use dlinkDelete() instead of dlinkFindDelete()
- Rebuilt parser files
- Import FLOODTIME changes from p4
- patricia.c: style corrections; remove unused header includes
- aptricia.c, patricia.h: add patricia_try_search_exact_addr() and patricia_try_search_best_addr()
- patricia.c, patricia.h: prefix several externally visible functions with patricia_
- patricia.c: white-space changes
- patricia.c: removed several 0 assignments not needed with calloc()
- patricia.c, patricia.h:New_Patricia() fixed compile warning; removed useless 0 assignments
- patricia.c:ascii2prefix() fixed compile warning
- patricia.c: cleanup New_Prefix2()
- patricia.c: cleanup ascii2prefix()
- patricia.c, patricia.h: rewrite prefix_toa() to suck less
- patricia.c: mostly white-space changes
- patricia.c:Deref_Prefix(): removed pointless assert(); stylistic changes
- patricia.c: remove PATRICIA_MAX_THREADS define we no longer need
- patricia.c, patricia.h: indenting; remove extraneous parentheses
- patricia.c: use xfree() instead of free()
- patricia.c: remove 'num_active_patricia' not needed
- flex 2.6.2
- patricia.h, patricia.c: cleanup prefix_toa() to fit our needs; make it use snprintf()
- patricia.h, patricia.c: constification
- patricia.h, patricia.c: we don't need these functions outside patricia.c
- patricia.h, patricia.c: kill _prefix4_t struct. we can afford the little extra memory
- patricia.h, patricia.c: removed void_fn_t typedef
- patricia.c:make_and_lookup(): make it work with both ipv4 and ipv6; add pointer tests as ascii2prefix() can return NULL
- patricia.c:try_search_exact(): add missing NULL return
- patricia.c:try_search_exact(): make it work with both ipv4 and ipv6; add pointer tests as ascii2prefix() can return NULL
- patricia.c:try_search_best(): make it work with both ipv4 and ipv6; add pointer tests as ascii2prefix() can return NULL
- patricia.h, patricia.c: get rid of BSD data types
- Minor style corrections and constifications
- Rebuilt parser files
- Implement INVITE expirations
- hostmask.c: try_parse_v6_netmask()/try_parse_v4_netmask(): set address family accordingly. parse_netmask(): zero out 'addr'
- conf.c:conf_error_report(), yyerror(): use const
- channel.c, dbuf.c: stylistic changes
- conf.c:conf_error_report(): fixed compile warning
- motd.c:motd_cache(): stylistic changes
- Rebuilt parser files
- user.c:send_umode(): fixed compile warning (-Wshadow) on centos and possibly others
- Added 'channel::max_invites' configuration directive
- Get rid of clear_ban_cache_channel() and clear_ban_cache_client(). Use clear_ban_cache_list() instead.
- Get rid of clear_invites_channel() and clear_invites_client(). Use clear_invite_list() instead.
- s_bsd_kqueue.c:kq_update_events(): make 'zero_timespec' a const struct
- conf.c: fixed a lineno off-by-one for parser warnings in included configuration files
- conf_lexer.l: replace a snprintf with strlcpy
- conf_lexer.l:cinclude(): we don't use yyin
- Add stripws() to irc_string.c; make warnings about syntax errors with multiple whitespaces look nicer
- Show GnuTLS/OpenSSL library/header versions in /INFO as suggested by Adam
- conf_lexer.l: cleanup config include stack code (Adam)
- version.c: update metalrock's email
- AUTHORS, version.c: fix inconsistency
- Add Andrew Strutt to AUTHORS and version.c
- Remove excessive const keyword on dlink_node pointers
- conf_pseudo.h, conf_pseudo.c: added pseudo_get_list() for later use
- conf_lexer.l: update filename for \file
- Fixed more svn properties as pointed out by jackal
- hostmask.c:add_conf_by_address(): stylistic changes
- Fixed svn properties
- conf.c:conf_rehash(): from p4: Log when rehashing due to sighup
- list.c: fixed typo in comments
- send.c:sendto_match_servs(): move test
- user.c:register_remote_user(): remove TS5 leftover
- Re-built autogenerated files
- Change userhost.c to deal with ip addresses only. Also we no longer care about usernames/ident replies. Due to the hash function in hash.c not ideal for ip addresses, we'll be using either iphash.c, or patricia.c soon for this.
- channel.c:channel_part_one_client(): update comment
- s_user.c: rename variables for consistency
- user.c:send_umode_out(): replace MyClient test with just MyConnect
- Minor cleanup to send_umode() to get rid of the redundant struct Client * pointer
- res.c: minor stylistic changes
- res.c: reslist::id is now of unsigned type; remove reslist::sent which we currently don't need
- res.c:send_res_msg(): remove extraneous parentheses
- Merge send_capabilities() and show_capabilities() into get_capabilities()
- server.c: style corrections
- token_vector(): use unsigned where appropriate
- hash.c: fixed previous commit to free_list_task()
- hash.c:free_list_task(): we really want to use dlinkFindDelete() here instead of just dlinkDelete()
- Move initialize_server_capabs() from ircd.c to server.c and rename it to server_capab_init()
- user.c:register_local_user(): style correction
- Rename init_resolver() to resolver_init()
- Rename init_netio() to netio_init()
- channel.c, m_message.c: stylistic changes
- Rewrite invite handling to be more flexible for future additions such as client based invite throttling, invite expiration, etc
- channel.c:channel_do_join(): const correctness
- channel.c:add_invite(): trim down client's invite list until there are no more than ConfigChannel.max_channels entries on the list
- channel.c:add_invite(): fixed possible core with channel::max_channels = 0
- conf.c:check_client(): removed redudant sockhost info in server notice
- server.c:find_servconn_in_progress(): replace match() call with irccmp()
- server.c:show_capabilities(): remove "TS" which is irrelevant info
- Update AUTHORS and version.c
- attach_connect_block(), check_server(): replace match() calls with irccmp() since the strings that are to be compared cannot contain wildcards anyway
- channel_mode.c: cosmetical changes
- reslib.c:add_nameserver(): remove useless test on 'res'
- mempool.c:mp_pool_get(): stylistic change
- modules.h, modules.c: avoid using HYB_PATH_MAX for module_path::path
- whowas.c:whowas_make(): fixed potential core when general::whowas_history_length is set to 0
- whowas.c:whowas_trim(): use dlink_list_length
- whowas.c:whowas_trim(): fixed test on whowas_list.tail
- client.c:free_client(): fix broken assert()
- Rename Client::whowas to Client::whowas_list
- hash.c: remove unused header includes
- event.c: remove unused header includes
- conf.c:read_conf_files(): removed isupport_rebuild() call no longer needed
- watch.c: remove unused header include
- client.c:find_chasing(): remove useless cast
- whowas.c: remove unused header include
- Further cleanups to recent WHOWAS changes
- Rebuilt autogenerated files
- whowas.c: documentation
- whowas.c: documentation
- ircd.c:main(): actually call whowas_init() now
- Change whowas system to use a linked list instead of othe this monolithic WHOWAS table - Size of the whowas nick name history length is now configurable
- Minor style cleanups & constification
- parse_aline() cleanups
- Remove useless parameters from operator_find()
- Cleanups to operator/connect block lookup routines
- numeric.h, numeric.c: remove unused ERR_NOADMININFO
- whowas.c: rename some variables for consistency
- whowas.c: doxygen
- list.c: cleanup/dedup dlinkFindDelete()
- Remove artificial cap of minimum required size of the dh parameter file
- send.c:sendto_realops_flags(): use sendto_one_notice()
- parse.c:parse(): change length to size_t type
- numeric.c: RPL_TRACEUNKNOWN: use proper conversion specifier for 'uintmax_t'
- Cleanup more conversion specifiers
- Show some stats about allocated listeners in /stats z
- Remove unused header includes
- Remove excessive 'const'
- client_attach_svstag(): remove excessive 'const'
- client.c:exit_client(): improve user logging
- conf.c:clear_out_old_conf(): removed double motd_clear() call which somehow sneaked in
- Now that we got time_t to work nicely on openbsd with snprintf's conversion specifiers, we ran into a similiar issue on Raspbian/ARMv7's time_t which is of signed 32 bit and doesn't cope at all with %j. Instead of doing tricks, get rid of time_t everywhere and forever and use uintmax_t instead which has at least a 'standardized' conversion specifier associated with it.
- Constification
- Re-built parser files
- conf_parser.y: fixed triggered assert with user = "" in auth {} blocks
- svn propset
- conf_gecos.h, conf_gecos.c: fixed copyright info
- autoreconf - re-create parser files
- Add conf_gecos.*
- Cleanup/separate XLINE / gecos{} conf implementation
- tls_none.c:tls_new_cred(): return 1 if no tls support is available so conf_handle_tls() doesn't exit the process
- conf_pseudo.c: renaming for consistency
- conf_resv.c:resv_make(): move code
- Further fixes to resv rewrite
- conf_resv.c:resv_make(): actually add the item to its corresponding list
- Re-create parser files
- Cleanup/separate RESV conf implementation
- ircd.c: ensure ircd.log is set up properly before calling tls_init()
- tls_openssl.c: removed logging to stderr which is closed at this point anyway
- tls_none.c: add missing tls_handshake() dummy
- Let's do this better
- Don't exit out with GnuTLS when there's no key and/or certificate
- Leave fd 3 open for GnuTLS < 3.3.10 that don't have https://gitlab.com/gnutls/gnutls/commit/684b825f5f78cc7ad1f61be232fd20ee0bc5b56f " When gnutls_global_init() is called manually from the application check the urandom fd for validity That addresses the issue where a server closes all open file descriptors and then calls gnutls_global_init(). "
- Minor simplifications on clearing lists
- Re-create parser files
- conf_service.c:service_clear(): free() service->name
- Improve libGeoIP support
- Re-create parser files
- autoreconf
- Move service {} block configuration management into its own module
- Renamed 'mod_clear_paths()' to 'modules_conf_clear()'. Further simplification to modules_conf_clear()
- whowas_off_history(), pseudo_clear(), client_clear_svstags(): simplifications
- conf_cluster, conf_shared: remove unused header includes
- Recreate parser files
- autoreconf
- Move resv.* to conf_resv.*
- tls_openssl.c: removed extraneous curly braces not needed with c99
- conf.c:conf_handle_tls(): use EXIT_FAILURE
- conf.c: documenting
- conf.c:oper_privs_as_string(): rename variables
- conf.c:oper_privs_as_string(): adjust/improve buffer size
- send.c:sendto_match_servs(): fixed longstanding issue where we would cluster to non-CLUSTER capable servers
- svn propset
- conf.c:clear_out_old_conf(): clear ClusterItems
- Regenerate parser files
- autoreconf
- Clustering has been broken in -r7159. Rewrote most of the shared/cluster implementation to be less obscure. This introduces a little bit of code duplication, but increases readability, is less error prone, and reduces memory consumption a bit.
- tls_gnutls.c: explicitly disable SSLv3 for releases prior to 3.4
- tls_gnutls.c: add %SERVER_PRECEDENCE to priorities
- tls_openssl.c: removed test on OPENSSL_VERSION_NUMBER which is no longer needed
- tls_openssl.c:tls_new_cred(): set ciphers from serverinfo::ssl_cipher_list which somehow got lost in the rewrite
- version.c: replace occurences of Hybrid with ircd-hybrid
- send.c:sendto_match_servs(): allow for 0 cap
- tls*: more copyright fixups
- Re-built parser file
- Fixed bug where shared & cluster confs would not get removed from their associated list and memory free'd (SHARED_ALL sets all bits and therefore IsConfDatabase(x) == true
- autoreconf
- Move report_crypto_errors from rsa.c to tls_openssl.c - Move binary_to_hex from rsa.c to misc.c - Removed rsa.c & rsa.h
- More copyright -- from Adam
- Fix gnutls error handling -- from Adam
- Fix cert leak in tls_verify_cert -- from Adam
- Remove useless raw_result -- from Adam
- conf.h, conf.c: remove now unused ConfigServerInfo.rsa_private_key
- tls_gnutls.h, tls_gnutls.c: minor cleanups
- Re-create parser files
- conf_pseudo.h, conf_pseudo.c: fix/update copyright header
- conf_parser.y: removed bunch of unused/redundant header includes
- tls_openssl.c: style corrections
- conf_parser.y: removed some cruft
- tls_gnutls.c:tls_get_cipher(): make the string look similar to the openssl variant (add protocol information)
- Remove some HAVE_TLS
- propset
- Re-generate parser files
- autoreconf
- Incorporate gnutls support by Adam & Attila
- watch.h, watch.c, m_watch.c: rename some variables for consistency
- Constifications; style cleanups in some places
- Rebuilt conf_parser.c
- Operators can now REHASH on remote servers; requested by astrutt - REHASH now requires at least one parameter which currently might be one of CONF, MOTD, or DNS
- channel.c: replaced a couple of MyClient() tests with just MyConnect()
- user.c:introduce_client(): replaced a MyClient() test with just MyConnect()
- Rename 'non-standard' RPL_ENDOFTRACE to RPL_TRACEEND
- Renamed MyCalloc to xcalloc
- hash.c:hash_init(): deal with genrand_int32() returning 0
- channel.c:channel_send_mask_list(): avoid using list->length directly. use dlink_list_length() instead
- Update copyright years
- hostmask.c:hostmask_send_expiration(): initialize 'ban_type' to something saner to display in case we hit the switch's default case
- Remove trailing whitespaces
- Cache channel name lengths
- auth.c: change start_auth_query() to void
- auth.c: fixed core on ident lookup if comm_open() fails
- dbuf.c:dbuf_put_args(): improve/clarify documentation
- client.c:get_client_name(): adjust size of 'buf'
- client.c:check_pings_list(): adjust size of 'buf'
- Move IRCD_MAXNS to reslib.h, rename it to RESLIB_MAXNS, and increase it to 8
- Allow general::ts_warn_delta, and general::ts_max_delta to become 0
- s_bsd.h, s_bsd.c:comm_connect_tcp(): change the 'timeout' parameter to a time_t to match up with the other comm_* functions
- s_bsd.c:comm_connect_tcp(): move comments to proper place
- channel_mode.c:chm_limit(): move variable
- client.c:conf_try_ban(): initialize 'ban_type' to something saner to display in case we hit the switch's default case
- client.c: fixed SVSTAG memory leak with remote clients
- conf.c:read_conf_files(): add 'T' to CHANMODES
- misc.c:time_dissect(): adjust size of 'buf'
- channel_mode.c: minor cleanup/optimization to the v/h/o mode handlers
- Fixed bug where setting the path/filename via the -klinefile, etc. switches would not have any effect. Reported by gp.
- auth.c:auth_connect_callback(): remove two pointless remove_ipv6_mapping() calls
- channel.c:channel_part_one_client(): optimization; don't call can_send() when there's no need to
- Add CMEMBER_STATUS_FLAGS / CMEMBER_STATUS_FLAGS_LEN and make use of it in some places (replaces some magic values sprinkled in the code)
- Remove unused header includes
- channel.h, channel.c: declared can_join() as static
- parse.c: clean up some assert()
- hostmask.c:add_conf_by_address(): minor improvement for ILP64
- channel.c:channel_part_one_client(): fixed broken test on can_send(). Suppressing part messages was completely broken for ages
- Added channel mode +T which forbids NOTICEs to be sent to a channel
- client.c:check_pings_list(): replace %d conversion specifier with %ji
- client.c:exit_client(): add sockhost field to far client exit notices; swap 'comment' with 'sockhost' in local client exit notices to match up with connection notices
- conf.c, numeric.c: use the appropriate conversion specifier for unsigned int
- res.c: remove unused header includes
- Move report_dns_servers() from res.c to m_stats.c
- CAPAB_SVS is now mandatory
- Removed backwards compatibility hack for older servers that allowed client->sockhost being "0"
- Removed client->account backwards compatibility hacks for 8.1
- isupport.c, match.c: casemapping is 'ascii' now
- user.c:report_and_set_user_flags(): remove the 'Congrats' from server notices
- numeric.c: made RPL_YOUREOPER look more serious
- ircd.c: style correction
- Rebuilt parser/lexer files
- Add channel::invite_delay_channel configuration option
- misc.c:time_dissect(): fix compile warning on CentOS
- misc.c:time_dissect(): fix compile warning on CentOS
- Use the %ju conversion specifier for time_t and get rid of these non-portable (unsigned long) casts; replace some uint64_t with uintmax_t
- user.c:user_set_hostmask(): really should be using sendto_common_channels_local() instead of sendto_channel_local() for sending AWAY, otherwise we would end up sending multiple AWAY messages to clients.
- Implement ircv3.2 chghost client capability support
- user.c:user_set_hostmask(): make use of sendto_channel_local() for sending 'AWAY' to avoid walking target_p->channel twice
- Merge sendto_channel_local_butone() functionality into sendto_channel_local() and get rid of sendto_channel_local_butone()
- s_user.c:valid_username(): moved 'dots' to innermost scope
- Add valid_uid() for later use
- Increase default values of 'max_watch' and 'max_accept' to 50
- ircd.c: move code
- autoreconf
- user.c:user_set_hostmask(): replace a MyClient() test with just MyConnect()
- defaults.h, conf.c: get rid of this WATCHSIZE_MIN, WATCHSIZE_DEFAULT magic
- Revert the Debian reproducible build patch for now. For some reason it does not work for me under OpenBSD and havent yet figured out what the issue is.
- server.c:serv_connect(): update comments
- server.c:check_server(): removed oudated comment
- server.c:try_connections(): remove outdated comment
- Make mem-usage counters use size_t and use the %zu conversion specifier accordingly
- Rename 'xconf_item' list to 'gecos_items'
- conf.c:oper_privs_as_string(): unbreak episode 2
- conf.c:oper_privs_as_string(): unbreak; make it display "0" in /stats o in case there are no privileges specified
- Move user_oper_up() from user.c to m_oper.c
- Add all the missing irc-operator flags to /stats o output
- Rename variables for consistency
- Rebuild parser file
- RSA keys with less than 2048 bits are no longer supported; same applies to the DH param file
- channel.c, motd.c: rename variables
- channel.c: rename some variables
- conf_parser.y: whitespace change
- Rebuilt parser file
- conf_parser.y: style cleanups
- conf_parser.y: removed CHALLENGE leftover
- whowas.c: rename variables
- ipcache.h, ipcache.c: constification
- ircd.c: use EXIT_FAILURE instead of some magic value to be passed to exit()
- conf.c, conf_parser.y: use EXIT_FAILURE instead of some magic value to be passed to exit()
- Rename event::enabled to event::active
- conf.c:set_default_conf(): removed useless NULL assignments already done by clear_out_old_conf()
- Rebuilt parser/lexer files
- Fixed bug where changing 'serverhide::flatten_links_delay' would not have any effect - Allow disabling the 'event_write_links_file' event with 'serverhide::flatten_links_delay' being zero - Get rid of 'config_serverhide_entry::links_disabled'
- Use client->name when updating the fd's associated name record with fd_note()
- Rename uconf_items to shared_items and oconf_items to operator_items
- patricia.c: remove trailing whitespaces
- Rebuilt parser/lexer files
- server.c:read_links_file(), write_links_file(): do some logging if we cannot fopen links.txt
- Added serverhide::flatten_links_file configuration option and get rid of LIPATH
- Renamed serverhide::links_delay configuration directive to serverhide::flatten_links_delay
- Rebuilt lexer/parser files
- Removed CHALLENGE in favour or ssl certificate fingerprint enabled operator {} blocks
- hostmask.c: style correction
- hostmask.c: removed irrelevant comment
- Add dissect_time() from HOPM and make use of it in some places
- s_bsd_devpoll.c, s_bsd_epoll.c:init_netio(): we don't care about the real value of errno
- s_bsd_kqueue.c:init_netio(): improve error reporting
- memory.c:outofmemory(): removed redundant logging. server_die() already does the logging
- Use EXIT_FAILURE in some places instead of hardcoded values
- conf.c:conf_connect_allowed(): cleanup redundant test on 'conf'
- Removed that dirty strtoken definition in stdinc.h
- Replace obsolete usleep() with nanosleep()
- motd.c, send.c: use %zu conversion specifier for size_t types
- Fixed inconsistent style in several places
- packet.c: fix another typo
- packet.c: fix typo
- motd.h, motd.c: have motd_signon() use date_iso8601()
- Change myctime() to use strftime() instead of ctime(); rename myctime() to date_ctime()
- Rebuilt Makefile.in
- Allow the maintainers of the debian ircd-hybrid package to have their own BUILD_DATE shown in the RPL_CREATED numeric. Patch submitted by Dominic Hargreaves <dom@debian.org>, slightly modified by me to fit ircd-hybrid needs
- misc.c: change date_iso8601() to use the %T conversion specifier
- misc.c: cleanup date() and make it use strftime()
- server.c:check_server(): removed redundant test on server_conf; constification
- Rebuilt parser files
- Added 'close' to irc-operator flags
- ircd.c:set_time(): server_die() already does the logging plus notification, no need doing it twice
- ircd.c: misc cleanups
- auth.c: rename auth_pending_list to auth_list
- Make use of enum in some places; make use of the HasFlag() macro some more; minor style corrections
- ircd.c: move some function calls in main()
- Re-create parser files
- Added 'resv' and 'unresv' operator flags
- Re-create parser files
- The general::oper_pass_resv configuration directive has been deprecated. Added the join:resv and nick:resv operator flags for better fine tuning
- Rename functions in userhost.c to comply with naming convention
- parse.c:parse_remove_unknown(): use get_client_name()
- hostmask.h, hostmask.c: use const keyword where appropriate
- server.c: make use of get_client_name() in some places; fixed some other get_client_name() calls to use the right argument value
- Fixed some server related get_client_name() calls where HIDE_IP is used instead of SHOW_IP. get_client_name() already deals with hide_server_ips and falls back to HIDE_IP if IP hiding is enabled.
- misc.c: style corrections
- Get rid of smalldate() and replace all instances of it with date_iso8601()
- misc.c: for consistency, have myctime() to behave like the other date/time functions when called with an argument being 0
- log.c: made log_write() use date_iso8601()
- Added date_iso8601() for later use
- misc.c: optimize time/date functions for subseqent calls with same argument value
- hostmask.c: revert to -r6318. Needs more thinking.
- hostmask.c:find_address_conf(), find_dline_conf(): add accurate timeout check. A k/d-line might have been already expired since we run cleanups every minute
- server.c:serv_connect_callback(): constification
- autoreconf
- Move userhost related code from hash.c to userhost.c
- server.c:try_connections(): get rid of MIN_CONN_FREQ and allow class::connectfreq to work properly with values lower than 300 seconds; update comment for clarification
- Use an embedded list node for the ListTask struct
- getopt.c: use pointer arithmetic instead of array subscripting
- getopt.c: fixed inconsistent use of 'error' vs. 'Error'
- Rebuild parser files
- Remove splitmode checking
- Rename several functions in channel.c to comply with naming convention
- Rebuilt parser file
- Rename several functions in event.c to comply with naming convention
- Rename several functions in listener.c to comply with naming convention
- Move show_ports() from listener.c to m_stats.c
- Remove unused header includes
- channel_mode.c:channel_modes(): removed useless FLAGS_SERVICE test on client_p. We don't need that here.
- Make server_die() use enum; minor cleanups here and there
- Rename server capabilities flags from CAP_* to CAPAB_*
- Make use of enum in more places
- conf.c:valid_wild_card_simple(): allow for short names (less than min_nonwildcard_simple) that don't have wildcards in it
- Get rid of the IsRegistered() macro, which is a rather dangerous macro for coders who add new connection states
- Rebuild conf_parser.c
- Get rid of UMODE_ALL
- Make use of the *Flag() macros in some more places
- client.c:get_client_name(): minor documentation change
- user.c:user_oper_up(): remove useless assert()
- Move show_events() from event.c to m_stats.c. Remove now unused prototypes.
- restart.c:server_die(): use EXIT_SUCCESS/EXIT_FAILURE
- ircd.c:check_pidfile(): re-enable logging
- Set keyword and eol-style properties
- Removed slang in comment
- Removed RPL_YOURID. Clients don't need to know about their associated UID nor is the information of any use for them
- isupport.c:isupport_rebuild(): make coverity shut up (CID 1308362)
- Rename oper_up() to user_oper_up()
- Rename user_usermodes_init() to user_modes_init()
- autoreconf
- Moved all ISUPPORT related code to isupport.c; renamed several functions to meet our coding convention
- Re-create autogenerated files
- Move all SID/UID related code to id.c
- server.c:generate_sid(): replace snprintf/strlcpy combo with just snprintf
- Automatically generate sid on startup if none is configured. Patch provided by Adam
- m_message.c, numeric.c: changed RPL_UMODEGMSG numeric format to match with insp/ratbox/chary as suggested by Adam and jackal
- autoreconf
- server.c:hunt_server(): prioritize wildcard lookups on server names as suggested by Adam. Could have used some dlinkAddTail magic for clients to keep the list ordered by servers and clients but introducing a second loop in hunt_server() makes things more obvious. Also it should be investigated if there's still good a reason for putting servers on the global_client_list.
- Re-built parser files
- conf_parser.y: always rebuild CIDR lists
- conf_lexer.l: fixed typo introduced in previous commit
- Re-generate parser files
- Added 'xline_exempt' to auth{} block flags
- channel.c:channel_do_join(): removed useless test on conf->reason
- client.c:conf_try_ban(): use the proper conversion specifier
- client.c:conf_try_ban(): minor cleanups
- hostmask.c:try_parse_v4_netmask(): fixed possible OOB read
- Removed useless header includes
- conf.c:parse_aline(): removed test on target_server. There's no command that doesn't support the "ON" option
- Recreate parser/lexer files
- Removed the 'havent_read_conf' configuration directive as it only caused a whole lot more trouble than it actually helped
- Style corrections
- conf_db.h, conf_db.c: remove functions/definitions we don't need
- '!' and '@' are no longer threated as wildcard characters
- auth.c: use C99-style array initialization
- s_bsd.c: use C99-style array initialization
- Use C99-style initializers in all struct Message items - Removed MFLG_SLOW - Removed DUMMY_HANDLER
- Style corrections; removed trailing whitespaces
- conf.c:expire_tklines(): deduplicate
- channel.c:clear_invites_client(): add missing documentation
- Renamed clear_invites() to clear_invites_channel() - Added separate clear_invites_client()
- hostmask.c:find_conf_by_address(): constification
- conf.c:clear_out_old_conf(): also don't remove database based XLINE and RESVs from their associated linked list(s)
- hostmask.c:clear_out_address_conf(): removed useless test on arec->conf->until. Temporary server bans are always stored in the databases, so it's enough to test for IsConfDatabase()
- conf.c:clear_out_old_conf(): also don't clear out RESVs that have been set with the RESV command
- conf.c:clear_out_old_conf(): fixed bug where REHASH would clear all x-lines that have been set with the XLINE command
- Get rid of valid_comment()
- Configuration related server notices are now admins only as they potentially could leak passwords and other sensitive data to irc operators that don't have administrator privileges
- user.c:report_and_set_user_flags(): removed g-lines leftover in server notice
- Recreate autogenerated files
- Removed glines - Added kline_min_cidr, kline_min_cidr6, dline_min_cidr and dline_min_cidr6 configuration options
- numeric.c: use C99 array initialization
- conf_parser.c: rebuilt
- conf_parser.y: fixed error messages as pointed out by Adam
- conf.c:conf_add_class_to_conf(): cleaned up duplicated code
- Minor cleanups to CAPAB related code
- Reject remote k-line requests that don't have enough non-wildcard characters
- sendnick_TS(), introduce_client(): use the %u conversion specifier for unsigned ints
- conf.c:find_user_host(): removed unused 'flags' argument
- parse.c:msg_tree_parse(): cleaned up an assert()
- Changed some function to void if we don't need a return value - Have some other functions return saner values
- Regenerate parser/lexer files
- Removed unused HIDE_SPOOF_IPS and GLOBAL_KILL tokens
- Changed some members of the Ban structure to use fixed-size arrays
- channel_mode.c:add_id(): removed useless IsServer() test
- Mostly whitespace changes
- channel_mode.c: moved 'if (!mode_count)' test from send_mode_changes_client() to set_channel_mode()
- channel_mode.c: renamed send_mode_changes() to send_mode_changes_client(); have send_mode_changes_server() called from set_channel_mode()
- channel_mode.c:chm_ban(), chm_except(), chm_invex(): replaced memcpy() with strlcpy()
- user.c:register_remote_user(): removed strcmp() mess from remote connection notices (backward compatibility for older servers using "0" in UID messages for spoofed hosts)
- ircd.c:write_pidfile(): removed the PID from the error message
- client.c: cleanup some comments
- client.c:make_client(): default client_p->account to '*'
- user.c: incorporate Adam's add_one_to_uid() rewrite
- ircd.c:main(): replaced pointless comment with a more descriptive one
- auth.c:auth_connect_callback(): saved a strlen(); hardened test of send()'s return value to ensure all bytes were sent
- Rebuilt parser files
- conf_parser.y: removed YY_NO_UNPUT define which was an undocumented feature and has been deprecated for many years now. Proper way is to use 'nounput' in the scanner options.
- numeric.c: RPL_WHOREPLY: use %u conversion specifier for unsigned ints
- conf.h, conf.c: renamed some structures to match naming convetion of other structures
- Constifications
- WHOWAS now shows IP addresses to irc operators - Changed RPL_WHOISACTUALLY numeric string. In the future it will also show the *real* hostname once we distinguish between spoofs/vhosts and real hosts
- Re-generate parser files
- Fixed core in conjunction with OSX 10.10/possibly other system when parsing pseudo{} blocks as reported by Daniel Oaks - Reverted -r4080, -r4609 and 4106 as they only cause undefined behavior on some systems
- Sprinkle some assert()
- client.c: whitespace changes
- conf.h, conf.c:cluster_a_line(): made 'capab' and 'cluster_type' unsigned types
- Style corrections only
- channel_mode.c:chm_operonly(): half-ops that are irc operators may now add/remove channel mode 'O' (ircops only channel), too
- conf_parser.y: forgot to remove the unused T_MAX_CLIENTS token
- ircd.c:write_pidfile(): cosmetical fixes to fopen/fputs error messages to be consistent with all other error messages
- user.c: update documentation
- Don't make use of CAP_TS6 as we no longer need it, but still send it to other servers via CAPAB for backward compatibility
- Changed SVSTAG to use user modes
- Regenerate parser/lexer files
- Added oper::whois configuration option which allows to override the default RPL_WHOISOPERATOR numeric string shown in /whois.
- Cleanups to the svstag implementation
- Finish basic SVSTAG implementatio
- Fixed style in several places
- Renamed idle_time_get() to client_get_idle_time()
- conf.c:get_oper_name(): use IRCD_BUSIZE for buffer size and be done with it
- conf.c:read_conf_files(): ad channel mode 'C' to CHANMODES isupport
- conf.c:set_default_conf(): add all possible oper-only user modes to ConfigGeneral.oper_only_umodes
- Allow to disable the NOTICE/PRIVMSG anti-flood mechanism by setting 'default_floodcount' to 0
- auth.c:sendheader(): fixed compile warnings with -Wformat-security
- Re-generate parser/lexer files
- Fixed bug where "/rehash" would always reset the "MAX", "JFLOODTIME", and "JFLOODCOUNT" values that have been changed from within IRC via the "/set" command - Renamed the following ircd.conf configuration directives to be more descriptive: max_clients -> default_max_clients join_flood_count -> default_join_flood_count join_flood_time -> default_join_flood_time - Updated related ircd.conf documentation accordingly
- ircd.c:initialize_global_set_options(): tweaked joinfloodcount and joinfloodtime defaults; Removed XXX comment.
- numeric.c: fixed inconsistent use of "You are" and "You're"
- numeric.h, numeric.c: moved ERR_SSLONLYCHAN numeric to 489 to match with insp/unreal
- ircd.c: fixed compile warning. Apparently some gcc have issues with compound literals in conjunction with -Wmissing-field-initializers
- numeric.c: added channel mode C to RPL_MYINFO
- channel.c:can_send(): better not to modify the message pointer
- Added channel mode +C which prevents users from sending CTCPS to a channel
- Minor cleanups here and there
- m_message.c: sanitize msg_client(); fixed some logic errors in the flooding code
- ircd.c:main(): removed pointless chdir() calls as spotted by Adam
- memory.c:MyFree(): removed extraneous pointer test
- packet.c: made extract_one_line() unsigned
- packet.c:extract_one_line(): constification; renamed variable
- numeric.h, numeric.c: moved ERR_OPERONLYCHAN numeric to 520 to match with insp/unreal
- Re-create autogenerated parser/lexer files
- conf_lexer.l, conf_parser.y: removed entropy gathering daemon leftovers
- packet.c: from p4: change extract_one_line to not over agressively strip whitespace from buffers
- conf_class.c: removed duplicated code
- bison 3.0.3
- Fixed compile warnings
- libtool 2.4.5, automake 1.15
- Minor cleanups and optimizations to usermode handling
- m_gline.c, m_kline.c, motd.c: need to check against client->sockhost as well
- Update copyright years
- Fixed grammar error as pointed out by Adam
- user.c:register_remote_user(): show ip addresses in remote connection notices aswell
- Fixed compile warnings
- patricia.c: fixed another compile warning
- patricia.c: fixed more compile warnings
- patricia.c: use MyCalloc/MyFree
- patricia.c, patricia.h: add proper copyright/license header
- patricia.c: removed Windows NT related code
- patricia.c, patricia.h: ipv6 is mandatory
- patricia.c, patricia.h: fixed some compile warnings
- Added latest patricia.c, patricia.h from Net-Patricia-1.22 for later use
- conf.c:validate_conf(): use 'EmptyString'
- match.c: style corrections to match()
- send.c: removed unused header includes
- channel_mode.c: don't allow ban masks to be added that start with a colon
- Added general::stats_m_oper_only configuration option
- motd.c:motd_create(): fixed indentation
- Added 'opme' to irc-operator flags
- Style corrections
- client.c: removed useless assert()s
- send.c:sendq_unblocked(): const correctness
- Removed useless assert()s
- The general::true_no_oper_flood configuration option has been deprecated. Operators still can have higher 'flood' limits with no_oper_flood = yes; hoewever, they are no longer allowed to bypass RecvQ limits.
- Cleaned up style; reformatting; const correctness
- Add m4/ax_arg_libgeoip.m4 and tidy up configure.ac a bit
- Add m4/ax_arg_enable_assert.m4 and tidy up configure.ac a bit
- Style corrections; constifications
- Fixed compile warnings due to shadowed global variables on RHEL/maybe other distros
- user.c:register_remote_user(): modernize old 2.8 notice
- general::hide_spoof_ips is now deprecated
- user.c, m_server.c: ip addresses are always propagated via UID regardless of ip spoofs
- Get rid of NOCAPS
- libtool 2.4.4
- parse.c:parse_handle_numeric(): removed extraneous parentheses
- Renamed variables; const correctness
- user.c:user_set_hostmask(): skip target_p when sending JOINs to channel members
- conf.c:conf_add_class_to_conf(): improve warning if there's no proper class associated with an oper{} block
- user.c:check_xline(): removed pointless test on 'conf->reason'
- Renamed variables; const correctness - Removed IsConfOperator macro
- numeric.h, numeric.c: removed now unused ERR_GHOSTEDCLIENT
- send.c: further fixes to send_message_remote()
- parse.c:parse(): spelling fixes
- parse.c: get rid of parse_cancel_clients()
- send.c: replaced remaining DLINK_FOREACH_SAFE with just DLINK_FOREACH
- send.c: unbreak and sanitize send_message_remote()
- conf_pseudo:m_pseudo(): constification
- Style corrections; renamed variables
- misc.c:ssl_get_cipher(): added dash between ssl/tls version and ciphers to match other ircds
- numeric.c: added 'h' (half-op) to supported channel modes in RPL_MYINFO
- Fixed compile warning
- Set reasonable default ciphers if there aren't any specified in general::ssl_cipher_list
- Style corrections
- Style corrections; fixed comments
- fdlist.c: removed set_fdlimit() wrapper function
- Const-correctness
- user.c:init_isupport(): removed +e/+I values from EXCEPTS/INVEX tokens
- hash.c: constifications
- hash.c:free_list_task(): removed pointless MyConnect() test
- auth.c:start_auth_query(): removed archaic comment
- auth.c:auth_connect_callback(): use report_error() for reporting failed getsockname() or getpeername() calls
- auth.c: constifications
- auth.c:auth_connect_callback(): decreased size of 'authbuf'
- auth.c: constifications
- user.c:report_and_set_user_flags(): fixed typo in comment
- auth.c: constification
- Removed init_host_hash()
- conf_class.c: fixed coding convention issues
- listener.c:listener_accept_connection(): no need to send the NUL byte
- Renamed clear_ban_cache() to clear_ban_cache_channel() to separate it better from the clear_ban_cache_client() function
- Constification
- channel_mode.c:add_id(), del_id(): replaced sprintf() with snprintf()
- client.c, m_who.c: style corrections
- Renamed exempt::coid to exempt::country_id
- Renamed Client::svid to Client::account
- Renamed variables
- Renamed variables
- channel.c, channel.h: added clear_invites() and make use of it - ms_sjoin.c:ms_sjoin(): clear invites if the introduced channel has lower TS
- send.c:sendto_anywhere(): replaced MyClient() test with MyConnect()
- send.c: added some assert(); removed useless test in send_message_remote
- Renamed variables
- Removed ChModeChange::mems
- send.c:sendto_match_servs(): style corrections
- Removed pointless test for UMODE_DEAF in both sendto_channel_local() and sendto_channel_local_butone()
- Added support for the "extended-join" client capability
- channel_mode.c, send.c: style corrections
- Constification
- channel.c:msg_has_ctrls(): update documentation
- send.c, client.h: changed Connection::serial to an uint64_t
- Removed hybrid 6 leftovers
- /WHOWAS now shows the name of the services account a user was logged in - Prepare whois_person() for target_p->svid[0] being '*' for user that aren't logged into a services account
- numeric.c: correction to RPL_ENDOFMODLIST
- ircd.c:ssl_init(): removed newline character from ilog()
- parse.c:parse(): renamed variable
- Improved RPL_LOAD2HI numeric
- channel.c:channel_find_last0(): style correction
- ircd.c:ssl_init(): added two 'return' even though they are not reached
- ircd.c:write_pidfile(): use strerror() if fopen() fails
- parse.c:parse(): update documentation
- Enable ECDH for OpenSSL 0.9.8o and above
- s_bsd.c:ssl_handshake(): use CONNECTTIMEOUT instead of hardcoded value - server.c:ssl_server_handshake(): use CONNECTTIMEOUT instead of hardcoded value
- ircd.c:write_pidfile(): removed extraneous parentheses
- ircd.c: style corrections
- server.c:ssl_server_handshake(): correctly timeout outgoing connects
- ircd.c:ssl_init(): disabled session tickets aswell as session cache
- watch.c:watch_add_to_hash_table(): fixed typo in comment
- client.c:check_conf_klines(): removed useless !IsClient() test
- user.c: style corrections
- user.c:valid_nickname(): minor cleanup
- Don't assemble umode buffer twice in send_umode_out()
- user.c:send_umode(): even if source_p == client_p, don't pass both client_p and source_p as arguments
- auth.c:start_auth_query(): removed extraneous ilog(). report_error() already does the logging
- auth.c:timeout_auth_queries_event(): removed logging
- conf.c:find_user_host(): minor cleanup
- server.c:serv_connect(): made failed connection notice more descriptive for remote /connects
- client.c:accept_message(): don't allow +G to override +g
- conf.c:find_user_host(): replaced !IsServer() test with IsClient()
- conf.c: let get_oper_name() deal with servers. Makes it easier to allow servers to add/remove xlines, resvs, etc. without rewriting too much code later on
- conf_parser.y: use SSL_CTX_use_certificate_chain_file() instead of SSL_CTX_use_certificate_file()
- send.c:send_format(): fixed bogus test
- ircd.c: fixed compile warning
- Renamed Channel::chname to Channel::name
- conf.c:find_conf_name(): removed useless match(). with server name masking being removed with TS6, this is no longer needed.
- ircd.c:ssl_init(): add SSL_OP_CIPHER_SERVER_PREFERENCE to server options
- Renamed 'localClient' Client structure member to just 'connection'
- user.c:register_local_user(): cosmetical fixes to server notice
- numeric.h, numeric.c: removed unused ERR_RESTRICTED
- numeric.c: cosmetical fixes
- Renamed variables/definitions to meet coding standards
- Renamed struct LocalUser to struct Connection
- client.c:exit_client(): cosmetical fixes to server exiting notice
- Update GPL 2 license headers
- Replaced RPL_NEWHOSTIS with RPL_VISIBLEHOST
- parse.c: fixed new defect found by coverity
- parse.c:parse(): small optimization as suggested by Adam
- parse.c: constification
- Implemented pseudo {} blocks (service aliases) - Fixed compile warnings with -Wmissing-field-initializers
- numeric.c: fixed ERR_PASSWDMISMATCH numeric string
- numeric.c: update ERR_SERVICESDOWN numeric string
- Fixed double dlinkDelete() in conf_free() - Fixed memory leak with server/oper/auth configuration items
- listener.c: reformatting
- listener.c: renamed ListenerPollList to listener_list
- conf.c:rehash(): moved the strlcpy(me.info,...) to conf_parser.y
- conf.c:conf_free(): fixed possible infinite loop with /stats c as reported by Adam. We now assume that all MaskItem are linked onto some list
- Instead of silently truncating WHO at 500 replies, added ERR_WHOLIMEXCEED numeric to inform users about the /who limit being exceeded
- hash.c:safe_list_channels(): removed outdated comment
- conf_parser.y: removed useless tests on ConfigServerInfo.server_ctx
- ircd.c:ssl_init(): exit if we cannot setup client/server context
- conf.c:set_default_conf(): really default to secp256r1
- Add topic mask option to /list
- hash.c:list_one_channel(): let other users see channelmodes in /list
- Fixed compile warnings
- res.c: style corrections
- memory.c:MyRealloc(): As pointed out by Adam, realloc() can be called with size being 0 which equals to free(). In that case the outofmemory handler shouldn't be triggered.
- s_bsd_poll.c cleanups/fixes provided by Adam
- getopt.c:parseargs(): use xstrdup() instead of malloc/strcpy combo; don't modify memory pointed by the argument vector. Fixes provided by Adam.
- res.c:query_name(): get rid of useless typecasting
- res.c:proc_answer(): error out and leave the client unresolved if we get an unexpected record type
- Removed CNCB typedef
- Removed stupid PF typedef in fdlist.h which prevented both gcc and clang from spitting out a warning about the first argument of s_bsd:ssl_handshake() being an 'int' when it really has to be a 'fde_t' pointer. - Fixed first argument of s_bsd:ssl_handshake() which should be a 'fde_t' pointer instead of an 'int'.
- conf.c:conf_dns_lookup(): use gethost_byname_type() - res.h, res.c: removed gethost_byname()
- res.c:proc_answer(): delete useless castings
- res.c:proc_answer(): use 'unsigned'
- res.c: removed "request_state" enum
- res.c:proc_answer(): applied "Ignore CNAME records in dns queries" fix from p4. ** Ignore CNAME records in dns queries. Allows PTRS to point to CNAMEs which can point to an A/AAAA which resolves to the correct IP.
- res.c: removed "try A if AAAA failed" logic
- res.c:start_resolver(): made /stats F more descriptive about the resolver socket
- user.c:oper_up(): successful operator logins are now announced globally via GLOBOPS
- Renamed various variables
- event.c: update show_events() to make /stats E look nicer
- Rewrite sendto_realops_flags_ratelimited() so it can be used in other places as well
- Added listener_release() and make use of it
- listener.c: reformatting
- listener.c:make_listener(): constification
- res.c: was missing +1 in reslist::name
- res.c:init_resolver(): removed useless memset()
- Removed ipv6 detection. We now assume all systems that run hybrid have ipv6 availability and sockaddr_storage.
- s_bsd.c:comm_accept(): fixed faulty memset()
- Let's allow overlength host name entries in connect {} blocks
- Fixed resolver/auth issues with too long hostnames
- Moved memset() from accept_connection() to comm_accept()
- Unset FLAGS_IPHASH on source_p in exit_client() when removing from ipcache
- ircd.c:main(): use event_add() for comm_checktimeouts
- channel.c:send_mode_list(): constification
- channel.c: moved 'buf' to send_members() and send_mode_list()
- mempool.c:mp_pool_garbage_collect(): c99 style correction
- numeric.c: ERR_NICKTOOFAST: use %u conversion specifier
- Fixed ERR_NICKTOOFAST numeric string to make more sense and to comply with other ircds
- numeric.c: fixed ERR_TOOMANYAWAY numeric string
- listener.h, listener.c: use HOSTIPLEN for Listener::name; update documentation
- ipcache.c: minor cleanup
- Moved ax_check_openssl.m4 to ax_arg_openssl.m4
- Got rid of acinclude.m4
- motd.h, motd.c: renamed Motd::hostmask to just Motd::mask just because it's kinda missleading since the mask can also be a class name
- motd.h, motd.c: clean up/fix comments
- motd.c:motd_cache(): fixed cast
- Removed unused ConfigServerInfo structure member
- Renamed structures to meet code conventions
- Removed select() support
- conf.c:attach_iline(): constification
- ipcache.c:ipcache_get_stats(): constification; depend on the caller to set integers to zero
- svn propset on ipcache.c, ipcache.h
- Moved all ip caching related code to ipcache.c
- conf.c: optimized count_ip_hash()
- conf.c:ipcache_remove_expired_entries(): of course should be DLINK_FOREACH_SAFE
- Cleaned up ipcache
- res.c:res_readreply(): read as many packets as possible from kernel buffer in a single run. This might increase performance for heavy loaded servers doing lots of dns requests. As side-effect it fixes issues with edge-triggered epoll (we're only doing level-triggered right now)
- res.c:res_readreply(): don't grant further retries if the packet couldn't be decoded. We only give it one shot.
- Improved AWAY throttling to allow for better fine-tuning
- res.c: reformatting; style corrections; updated comments
- Backported auth code related cleanups from newio branch
- res.c:res_readreply(): use ssize_t for 'rc'
- Fixed typos all over the place
- conf.c:valid_wild_card_simple(): don't read past the zero character
- conf_parser.y: do some logging if the dh param file can't be opened/read
- conf_parser.y: fixed logging of invalid private key
- Cleaned up and sanitized /challenge related code - rsa.c:get_randomness(): removed EGD support; also don't fall back to RAND_pseudo_bytes() if RAND_bytes() fails. If RAND_bytes() fails, just reject the /challenge request.
- res.c:res_readreply(): removed sparc/alpha hack
- res.c:res_readreply(): don't do anything until we checked for possible fake replies
- res.c:res_readreply(): even if it's not clear if it's possible to receive a response for a query we didn't send, but we better execute auth_dns_callback() immediately instead of waiting until timeout_auth_queries_event() takes action.
- res.c: made timeout_query_list() not require an argument
- parse.c: reformatting
- user.c:register_remote_user(): constification
- user.c:user_welcome(): removed useless test on source_p->id
- client.c: cleaned up style; sprinkled some assert() statements
- Renamed serv_list to local_server_list
- server.c:hunt_server(): removed useless test. Discussed and approved by Adam.
- Renammed global_serv_list to global_server_list
- server.c: cleaned up hunt_server()
- parse.c:handle_numeric(): if source_p is a hidden server, rewrite prefix aswell
- ircd.c:initialize_global_set_options(): removed useless memset()
- server.c:try_connections(): whitespace changes
- Don't add/remove unregistered connections to/from global_client_list
- client.c:exit_one_client(): re-added test on source_p->node.next
- channel_mode.c:clear_ban_cache(): use locmembers list
- Bring back channel->locmember list
- Removed ssl_server_method and ssl_client_method configuration options. ircd now only allows TLSv1, TLSv1.1 and TLSv1.2 protocols depending on the OpenSSL version.
- ircd.c:ssl_init(): removed SSL_OP_TLS_ROLLBACK_BUG from options
- channel.c: from p4: move resv channel oper notice to umode reject
- Removed hooking system
- client.c:exit_one_client(): removed XXX; added an assert() just in case
- ircd.c:ssl_init(): add SSL_OP_SINGLE_DH_USE to options
- ircd.c: removed 'event_check_splitmode'. Changed 'splitmode_event' to run every 5 seconds if server is in splitmode
- event.c, event.h: update copyright headers
- ircd.c:ssl_init(): minor cleanup
- event.c:event_addish(): removed XXX
- event.c: removed unused header includes
- conf_parser.y: fixed stupid bug. no comment there...
- event.c:event_run(): changed 'len' variable to an unsigned int. Note that dlink_list_length() is unsigned int.
- event.c:event_run(): removed unused variable
- Added ssl_message_digest_algorithm configuration option to serverinfo{} block. See doc/reference.conf for more information.
- Make use of binary_to_hex() in ssl_handshake() and ssl_server_handshake()
- rsa.c: make binary_to_hex() more readable
- Allow [ in usernames
- ircd.h, ircd.c: change some structures to anonymous structures
- Removed supported.h
- Add CHACCESS_REMOTE for servers remote Clients
- event.c: fixed issue in event_run()
- mempool.c: run mp_pool_garbage_collect every 3 minutes
- Merged Adam's event system rewrite
- Cleaned up UID introduction / NICK change related code
- Let mp_pool_get() clear memory
- conf.c, conf.h: change some structures to anonymous structures
- ircd.c:ssl_init(): removed SSL_OP_ALL from options
- Added proper ECDH support
- conf.c:set_default_conf(): default to 1 connection per 1 second
- channel.c:check_splitmode(): logic fixes
- Use %u conversion specifier for unsigned ints
- conf.c:conf_connect_allowed(): fixed some logic errors
- conf.c:read_conf_files(): chanmodes c an M were missed in CHANMODES
- channel.c:get_member_status(): document the magic value of 4
- channel.c, channel_mode.c: update documentation in some places
- server.c:try_connections(): removed useless test on conf->class to make coverity shut up. There shouldn't ever be a MaskItem on the server_items list that hasn't a class attached to it.
- Got rid of SEND_UMODES. We now propagate all modes.
- Renamed OPER_FLAG_K to OPER_FLAG_KLINE
- AUTHORS, version.c: added Fawkes to contributors
- channel.c:send_mode_list(): improve documentation
- channel.c:send_mode_list(): renamed variable
- channel.c:send_mode_list(): removed outdated comment
- version.c: fixed compile warning with clang -Winvalid-source-encoding. Fix provided by grawity.
- Removed unused header includes
- s_bsd_epoll.c, s_bsd_kqueue.c: removed defines/prototypes for extremely outdated systems
- channel.c: improve documentation
- send.c:sendto_match_servs(): swap function calls; renamed variable
- Renamed global_channel_list to channel_list
- send.c: fixed stupid 'bug' in sendto_match_servs()
- Renamed set_channel_topic() to channel_set_topic()
- channel.c:channel_do_join(): use chptr->chname if we know the channel exists
- Fixed SVSJOIN/SVSPART issues
- Added max_channels to class{} blocks
- conf.c:valid_wild_card(): use unsigned
- Greatly speedup d-line lookup. Instead of testing every single client against every existing d-line just check the just added ban against connected clients. Also now check d-line _before_ looking for a matching exempt{}
- Moved duplicated code used by m_svspart.c and m_part.c, aswell as m_svsjoin.c and m_join.c to channel.c
- hash.c: Use 'unsigned' whenever possible
- Use 'unsigned' whenever possible
- user.c:add_isupport(): fixed compile warning with -Wconditional-uninitialized
- conf_parser.y: fixed stupid bug that has successfully has hidden itself since Feb 5, 2002
- channel.c: documentation updates
- rng_mt.c: removed trailing whitespaces
- Added general::throttle_count idea from p4
- parse.c:mod_add_cmd(): no need to reset command counters upon module load
- Use unsigned whenever possible
- Removed OPERWALL. Use GLOBOPS instead.
- Made the INVITE/KNOCK throttling logic less aggressive as requested by Adam
- reslib.c: style corrections
- Removed ONLY_CHANOPS; let non-ops see +I/+e lists, too
- Update macros in m4/
- Revert -r3831
- Change to cause a compile error just to see how travis deals with it
- send.c:sendto_channel_butone(): replaced IsServer() test with IsClient()
- send.c:sendto_match_servs(): use DLINK_FOREACH_SAFE() as send_message_remote() might exit client/server
- channel.c: whitespace commit
- conf.c:set_default_conf(): reset ConfigFileEntry.stats_e_disabled
- hostmask.c:mask_addr(): ficed compile warnings: hostmask.c: In function ‘mask_addr’: hostmask.c:332:35: warning: declaration of ‘__v’ shadows a previous local [-Wshadow] hostmask.c:332:35: warning: shadowed declaration is here [-Wshadow] hostmask.c:332:35: warning: declaration of ‘__x’ shadows a previous local [-Wshadow] hostmask.c:332:35: warning: shadowed declaration is here [-Wshadow]
- /INVITE without any parameters now shows a list of channels a client is invited to
- Make sure ConfigChannel.invite_delay_channel and ConfigChannel.invite_delay get initialized in conf.c:set_default_conf(). Also make sure the values are reported in /info. ---This line, and those below, will be ignored-- M modules/m_info.c M src/conf.c
- Added INVITE flood protection/throttling as requested by Adam. This basically works similar as the KNOCK throttling algorithm.
- channel_mode.c, channel_mode.h: constification
- More ms_sjoin() cleanups
- server.c:send_capabilities(): replaced sprintf() with strlcat()
- Added some documentation about find_chasing()
- channel_mode.c: minor cleanups and code rearrangements
- channel_mode.c: get rid of fix_key_old()
- client.c:get_client_name(): minor optimization
- parse.c:cancel_clients(): removed outdated comments
- parse.c:cancel_clients(): be a void function
- Halfops are now part of the ircd core and enabled by default
- channel_mode.c:chm_simple(): channel halfops may now set +p
- channel_mode.c:chm_hop(): channel halfops (%) may now no longer (de)halfop other channel members
- channel_mode.c: irc-operators may now no longer set a channel +O if they are only halfops (%)
- Removed unused ChModeChange.client
- channel_mode.c:send_mode_changes(): removed anonops leftovers
- channel_mode.c: style corrections
- channel_mode.c:chm_operonly(): removed dead code
- Removed CHFL_DEOPPED flags which is no longer needed with TS6
- channel_mode.c: revert changes to channel_modes() for now. apparently there are some other parts that rely on this odd behaviour.
- channel_mode.c:channel_modes(): replaced sprintf with strcat; use %u conversion specifier for unsigned ints
- channel_mode.c:channel_modes(): fix to previous changes
- channel_mode.c:channel_modes(): get rid of trailing spaces if the channel is +k/+l
- channel_mode.c:chm_op(), chm_hop(), chm_voice(): use target_p->name when reporting ERR_USERNOTINCHANNEL
- channel_mode.c: style corrections
- channel_mode.c:send_mode_changes_server(): removed resolved XXX
- user.c:valid_username(): removed extraneous semicolon
- user.c, m_stats.c: whitespace changes
- res.c: removed unused definitions
- channel_mode.c:chm_operonly(): removed dead code
- parse.c: moved *para[] to parse()
- channel_mode.c: removed unused SM_ERR_NOTS; made errorcodes use an enum
- parse.c:handle_numeric(): replaced MyClient test with MyConnect(). find_person() already ensures that target_p is a fully registered client.
- channel_mode.c:chm_operonly(): removed redundant assignment
- parse.c: cleanup comments
- parse.c:add_msg_element(), del_msg_element(): zero initialize pointers for debugging purposes
- parse.c:mod_del_cmd(): make sure the command actually exists in the trie before attempting to remove it. We could end up in a corrupted trie otherwise.
- parse.c:remove_unknown(): use me.id when sending KILL/SQUIT to servers
- parser.c:do_numeric(): fixed stupid bug introduced in -3573
- fdlist.c: style corrections
- fdlist.c: use unsigned whenever possible
- event.c: use unsigned whenever possible
- Use sendto_one_numeric() everywhere
- Replaced remaining sendto_one() with sendto_one_numeric(). SND_EXPLICIT idea derived from ircu.
- user.c:valid_username(): removed extraneous parentheses
- user.c:add_one_to_uid(): use unsigned keyword
- user.c:register_local_user(): removed redundant source_p->localClient->allow_read = MAX_FLOOD_BURST assignment
- Style corrections
- auth.c: constification
- numeric.c: minor conversion specifier cleanups
- Removed RPL_STATSNLINE
- find_address_conf(): constification
- conf_class.c:class_free(): added an assert()
- hostmask.c:delete_one_address_conf(): replaced a DLINK_FOREACH_SAFE with DLINK_FOREACH
- user.c:register_local_user(): removed pointless assignment
- ircd.c:main(): make this "don't run ircd as root!!!11" message look more serious
- channel.c:send_mode_list(): removed TS5 leftover
- Added usermode +p which hides channel list in WHOIS
- Added usermode +q which hides idle and signon time in WHOIS
- Renamed MyMalloc() to MyCalloc()
- client.c:free_client(): sanitize some weird looking assert()
- conf.c:parse_aline(): use CONF_NOREASON for default reason
- numeric.c: fixed RPL_WHOISCHANNELS using wrong numeric
- Renamed general::warn_no_nline to warn_no_connect_block
- channel.c:send_members(): added missing #ifdef HALFOPS
- hostmask.c: style corrections
- rsa.c:binary_to_hex(): use unsigned int
- misc.c:ssl_get_ciper(): get rid of this magic IRCD_BUFSIZE/4. Use IRCD_BUFSIZE instead.
- packet.c: style corrections
- server.c: minor valid_servname() cleanup
- server.c:hunt_server(): save extra has_wildcards() call everytime hunt_server() finds a client/server in the hash tables.
- conf_parser.y: style corrections
- conf_parser.y: removed extraneous strlen(). valid_hostname() already checks for too long hostnames
- conf_parser.y: cleaned up style
- conf_parser.y: fixed bug where the parser wouldn't take time units into consideration for the join_flood_time and throttle_time config options.
- hash.c:list_one_channel(): constification
- hash.c:list_one_channel(): optimize for the admin case
- Fixed possible WATCH core. Fix provided by Adam
- Get rid of LOCAL_CHANNELLEN; change CHANNELLEN to 50
- Style corrections
- channel_mode.c: style corrections
- reslib.c:parse_resvconf(): replaced irccmp with strcasecmp()
- Added m_bmask.c and m_tmode.c
- Moved files: s_user.c -> user.c s_misc.c -> misc.c s_serv.c -> server.c
- Style corrections
- Replaced strcpy() with strlcpy() in some places
- Moved s_auth.c to auth.c
- Moved irc_res.c to res.c - Moved irc_reslib.c to reslib.c
- Moved s_gline.c to gline.c
- Removed useless header includes
- Removed useless header includes
- s_user.c:valid_nickname(): removed redundant assert()
- s_user.c: update/cleanup documentation
- s_user.c:register_local_user(): remove/update pretty outdated comment
- Moved set_user_mode() to m_mode.c
- Readded FLAGS_BLOCKED
- Undo -r3215 for now
- Channel.c: update documentation
- s_serv.c, m_server.c: moved all netburst related code to m_server.c
- irc_res.c: style fixes
- Made irc_nscount an unsigned type
- motd.c:motd_lookup(): replaced MyClient() test with MyConnect()
- hash.c:safe_list_channels(): since we don't allow remote /LIST requests use source_p instead of of source_p->from when testing for sendq exceedance
- Made free_list_task() only take one parameter
- Made safe_list_channels and list_one_channel only take two parameters
- hash.c:delete_user_host(): replaced DLINK_FOREACH_SAFE with DLINK_FOREACH
- conf_db.c: fixed documentation
- Style corrections/constification
- Fixed compile warnings
- mempool.c: style corrections
- Clean up redundant/unused header includes
- whowas.c:whowas_add_history(): constification; sanitize assert()
- s_user.c: reformating
- irc_res.c:make_request(): lowered retries counter to 2
- Re-add CHW capability to cope nice with rb
- conf.c:match_conf_password(): fixed undefined behaviour with crypt() returning NULL since glibc2.17 in certain cases.
- motd.c: update/fix some comments
- Fixed inconsistent style in several places
- client.c:exit_client(): removed another comment that makes no sense here
- client.c:exit_client(): removed outdated comment
- client.c:exit_client(): removed kludgy code, also replaced x->servptr == &me test with just MyConnect(x)
- Fixed inconsistent style in several places
- s_bsd.c: no longer resetting source_p->from in close_connection()
- s_misc.c: mostly style cleanups
- send.c: mostly style cleanups. Removed some useless assert() statements
- hash.c: style fixes only
- Incorporate Adam's writev() patch
- Have /info report MPATH and SPATH aswell
- s_user.c:send_umode_out(): removed unused variable
- Style corrections all over the place
- flex 2.5.39
- hook.c: minor style fixes
- Fixed some comments; cleaned up style here and there
- client.c: optimized find_person(). Removed pointless test.
- client.c:exit_one_client(): remove useless test on source_p->servptr->serv
- Fixed compile error in ms_sid() - Cleaned up find_chasing(). Removed useless third 'chasing' argument.
- send.c:sendto_one_numeric(), sendto_one_numeric(): fixed issue where NOTICE and numerics were destined to the wrong target nick/ID
- Get rid of the HasID() macro
- Get rid of the ID() macro
- Cleanup more places where ID_or_name() is no longer necessary
- Cleanup some places where we no longer need to use ID_or_name()
- s_user.c:check_xline(): use CONF_NOREASON for default reason
- Get rid of kill_client_serv_butone()
- Get rid of kill_client()
- send.c:send_message_remote(): use to->id instead of to->name when propagating the KILL
- Incorporate Adam's exit_client/quit storm cleanups Note: QS is mandatory now
- More client_p removal cleanups
- s_auth.c: made sendheader macro use sendto_one_notice()
- Get rid of restart() wrapper function
- restart.c:server_die(): replaced a sendto_one() with sendto_one_notice()
- restart.c:server_die(): replaced a DLINK_FOREACH loop on serv_list with just sendto_server(). Also make sure to use me.id as sender prefix if possible
- More client_p removal cleanups - parse.c:handle_command: now no longer drop servers if the right amount of parameters isn't given
- parse.c: whitespace changes
- Minor corrections to -r3156 [Removed client_p pointers from everywhere]
- Fixed now outdated comments
- channel_mode.c:chm_voice, chm_hop, chm_op: removed useless IsClient() test
- s_user.c:set_user_mode(): replaced a IsServer () test with MyConnect()
- Removed client_p pointers from everywhere
- s_user.c:send_umode_out(): replaced a DLINK_FOREACH loopn on serv_list with just sendto_server()
- channel_mode.c:chm_limit(): instead of passing an empty buffer to atoi() we just bail out
- channel_mode.c: style corrections
- Removed unused client_p pointer from all chm_* channel mode handlers
- channel_mode.c: style corrections here and there
- channel.c: moved modebuf[] and parabuf[] to send_channel_modes()
- removed unused variables
- channel_mode.c:chm_op, ch_hop, chm_voice: renamed 'targ_p' to 'target_p'
- channel_mode.c: removed unused defines
- channel_mode.c: fixed buglet in send_mode_changes_server()
- Get rid of halfop -> op rewriting for servers that don't support halfops
- s_serv.c:server_estab() moved target_p pointer to inner scope
- Various fixes to previous ts5 removal changes
- Server now no longer accepts TS5 links
- Missed some of the parv[0] removal changes. Fixed.
- numeric.c, m_dline.c: fixed inconsistent use of "can't" and "cannot"
- Removed unused header includes here and there
- Update dbuf.h, dbuf.c
- send.c: removed useless to->from checks
- Added sendto_one_notice()
- Applied Adam's sendto_one_numeric() changes
- Applied dbuf changes as provided by Adam: Refcount dbufs instead of copying the same message to many different buffers.
- send.c:do_numeric(): fixed first parameter of sendto_channel_butone() call
- parse.c:do_numeric(): now use sendto_channel_butone() to also forward numerics that are sent to channels to remote clients
- send.c: cleaned up sendto_channel_butone() as suggested by Adam
- parse.c: removed redundant comment
- parse.c:handle_command(): properly deal with parv[0] which now points to the actual command string
- Applied Adam's "Put the command name in parv[0], not prefix name" patch
- white-space changes / style cleanups
- Renamed ts_warn() to sendto_realops_flags_ratelimited()
- numeric.c, m_set.c: fixed inconsistent use of "can't" and "cannot"
- conf_db.c: fixed inconsistent use of "can't" and "cannot"
- ircd.c:io_loop(): minor cosmetical fixes to the "reloading motd files" server notice
- ircd_signal.c:sigint_handler(): fixed inconsistent "SIGINT received" vs. "received signal SIGTERM" message
- numeric.c: fixed inconsistent use of "can't" and "cannot"
- channel_mode.c: made mode_count, mode_limit, simple_modes_mask unsigned int types
- Removed FAKEHOST server capability for now
- channel_mode.c:send_cap_mode_changes(): fixed bug where MODE is used when it should use TMODE
- channel_mode.c: removed CAP_IE and CAP_EX from channel_capabs[]
- ircd binary is now again placed in /bin instead of /sbin
- Removed CAP_CHW. This is mandatory since hybrid 6.0 beta 25
- ms_bmask(): made mode_type an unsigned int type
- mempool.c: ifdef out destroy_chunks()
- modules.c:load_one_module(): renamed variables to make less confusing
- channel_mode.c: replaced several sprintf() with snprintf()
- client.c:find_person(): fixed mismatching prototype as pointed out by Adam
- Moved "struct config_channel_entry ConfigChannel" from channel.c to conf.c
- Update AUTHORS/version.c; add missing '>' spotted by Dizzie
- conf.c:get_oper_name(): constification
- hostmask.c:find_conf_by_address(): removed pointless password = "" assignment. match_conf_password() already deals with NULL pointers
- hostmask.c:add_conf_by_address(): fixed assert statement
- hostmask.c: minor cleanups to add_conf_by_address()
- Fix to previous changes in -r2997
- hostmask.c: get rid of this (type & ~0x1) hack
- Stole recent /map changes from p4. Network map looks much better now.
- ircd.c:set_time(): replaced snprintf/report_error combo with ilog/sendto_realops_flags
- ircd.c:set_time(): minor style cleanup
- Move myctime() from irc_string.c to s_misc.c
- Added modules_get_list() and made modules_list visible to only modules.c - Fixed naming convetion of other linked lists in modules.c
- Removed sendto_channel_remote()
- register_remote_user(): removed unused realname/gecos parameter
- channel_mode.c: fixed compile error with halfops enabled
- Revert -r1925. We no longer show how many times an oline has been hit.
- match.c: removed unused header include
- channel_mode.c, channel.c: removed unused header include
- channel_mode.c:get_channel_access(): constification
- channel_mode.c: minor optimizations to set_channel_mode()
- Clean up stupid pointer magic passed to the channel mode handlers.
- Two native english speakers, to different opinions; another grammatical error fix to AUTHORS and version.c
- Added Adam to contributors
- s_auth.c, s_auth.h: optimized so we save unecessary auth_doing_list traversals. Patch provided by Adam.
- event.c: fixed compile error
- Clean up all files in include/ (fixed indentation, removed whitespaces/tabs) - Fixed copyright years
- Fixed bug where some irc clients could not reconnect via ssl as pointed out by gp
- Implemented "userhost-in-names" client capability
- hostmask.c: constification
- hostmask.c: style cleanups
- channel_mode.c: fixed indentation, removed whitespaces/tabs, removed unused header includes
- Fixed grammatical error
- Fixed improper use of the ID_or_name macro in several places
- irc_string.c:has_wildcards(): add support for character escaping
- Use the i/o subsystem to execute scheduled writes. Patch provided by Adam.
- motd.c:motd_lookup(): constification
- Moved configuration related code from ircd.c to conf.c
- s_gline.c:find_is_glined(): style cleanup
- send.c, send.h: made some things use an enum
- Fixed indentation, removed whitespaces/tabs, update copyright header
- Regenerate parser
- Added 'unxline' oper privilege for better fine tuning
- Made irc numeric use an enum
- hook.h, hook.c: fixed indentation, removed whitespaces/tabs
- Allow private rsa keys larger than 2048 bits. Reported by Zdenek Kaspar.
- ircd_signal.c: fixed typo in comment
- ircd_signal.c: fixed indentation, removed whitespaces/tabs, removed unused header includes
- ircd_signal.c:setup_signals(): fixed bug where signals stopped from working after restaring the ircd via SIGINT. Spotted and fixed by Adam.
- ircd_signal.c: minor fixes to sigchld_handler()
- Tweak reloading/rehasing config files server notice
- Clean up all files in modules/ (fixed indentation, removed whitespaces/tabs) - Fixed copyright years - Made module handlers int type for later use
- hostmask.c:parse_netmask(): optimize for the ipv4 case
- Renamed ban_them() to conf_try_ban() - conf_try_ban() removed exemption notices that are now redundant
- Greatly speedup k-/g-line lookup. Instead of testing every single client against every single k-/g-line just check the just added ban against connected clients.
- Make PRIVMSG/NOTICE use UID targets if possible
- parse.c, m_message.c: replaced few 512s with IRCD_BUFSIZE; removed useless casts
- hash.c:exceeding_sendq(): constification
- Fixed server name leak for hidden servers in /who, /whois and /whowas
- Fixed kline issue as reported by Andrei Hristow
- conf.c:conf_free(): sanely clear hub/leaf lists fur debugging purposes
- s_bsd.c:ssl_handshake(): reset timeout handler once SSL_accept() has succeeded. Spotted by gp.
- Update copyright years
- Cleaned up RPL_WHOISADMIN hack
- Fixed bug where ircd didn't timeout SSL connections that haven't finished the SSL handshake. Reported by Adam.
- automake 1.14.1
- Fixed EOB not working for remote servers (Fake Direction)
- list.c:dlinkFindDelete(): minor readability improvements
- channel_mode.c:set_channel_mode(): removed legacy code which has been introduced in rev 7.66(CVS) / Sat Dec 14 04:08:38 2002
- Avoid magically sized temporary buffers
- Avoid magically sized temporary buffers
- introduce_client(), sendnick_TS(): fixed buffer overflow if a client has all possible modes set that are defined in SEND_UMODES
- client.c: #include "parse.h"
- event.c:aventAdIsh(): fixed compile warning with -Wunsuffixed-float-constants, replaced rand() with genrand_int32()
- client.c:make_client(): make use of the SetUnknown() macro
- version.c: cosmetical changes
- stats_hooks(), show_events(): no longer sending an extra empty line before RPL_ENDOFSTATS
- Update AUTHORS & version.c
- conf.c:valid_wild_card(): add missing va_end()
- send.c:send_queued_write(): removed pointless cast
- s_bsd_select.c, s_bsd_devpoll.c, s_bsd_epoll.c, s_bsd_kqueue.c, s_bsd_poll.c: style corrections
- ircd.c: show serial number on startup
- send.c: cleaned up style here and there
- send.c:sendto_match_servs(): removed unused variable
- send.c:sendto_anywhere(): removed unreachable code. server never sends SID-prefixed messages to clients
- Removed setup_socket callback - Removed init_comm() as init_netio() can be called directly
- RPL_WHOISMODES now uses the 310 numeric to comply with other ircds
- Fixed compile warnings with --enable-poll and --enable-select
- Administrators may now see channel modes in /LIST
- src/s_bsd_kqueue.c: removed redundant init_netio() prototype; fixed indentation
- src/s_bsd_kqueue.c: fixed compile warning
- src/irc_reslib.c: removed advertising clause
- Applied kqueue() fix by Adam <adam@anope.org>
- Optimized find_person()
- client.c:find_person(): completely disallow UID guessing as suggested by Adam <adam@anope.org>
- Better distinguishing between usermode +g and +G in both /whois and /privmsg as suggested by Adam <adam@anope.org>
- listener.c:show_ports(): fixed ip address leakage even if hide_server_ips is set to 'yes'. Reported by Adam <adam@anope.org>
- bison 3.0.1
- channel.c: optimized find_channel_link() as suggested by Adam <adam@anope.org>
- Renamed kill_client_ll_serv_butone() to kill_client_serv_butone() just to satisfy Adam's OCD
- src/channel_mode.c: fixed small buglet in send_mode_changes() with server hiding enabled. Reported by Adam <adam@anope.org>
- src/numeric.c: added missing +h mode to 004 numeric when building the ircd with --enable-halfops as reported by Adam <adam@anope.org>
- src/send.c: fixed several compile warnings with -Wsign-conversion
- channel_mode.c: fixed warnings with clang
- Administrators are now able to see user modes a user has set via /whois
- Style corrections
- Got rid of find_kill() and find_gline() wrapper functions
- src/send.c: replaced all sprintf() with snprintf()
- src/numeric.c: fixed typo
- Added usermode +W. Users connected via a webirc gateway get this mode set by servers. - /WHOIS now shows whether a client is connected via a webirc gateway
- Added m4/ac_define_dir.m4
- Administrators can now see +s channels in /LIST
- Instead of forcefully adding -Wall -Wextra -Wno-unused -Wcast-qual -Wcast-align -Wbad-function-cast -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wredundant-decls -Wshadow -Wwrite-strings -Wundef to CFLAGS, 'configure' now tests if the flags are understood by the compiler
- Move openssl check to m4/ax_check_openssl.m4
- Initial build system related modernizations - Add -fstack-protector to CFLAGS if available
- Stole ircu's RPL_WHOISACCOUNT numeric
- find_person(): fixed naming convention - find_chasing(): reduced required arguments
- Bison 3.0
- Fixed certificate fingerprint validation for outgoing server connects
- channel.c:can_send(): fixed issue with channel mode +n having no functionality. Reported by Fawkes
- Removed rfc1459_command_send_error() message handler
- s_bsd.c:ssl_handshake(): no need to spam ircd.log with useless ssl errors
- motd.(c|h): fixed core with zero byte length ircd.motd. Reported by Fawkes
- Fixed bug that would prevent servers from linking together if connect::aftype wasn't specified
- Remove msgq, and xsnprintf source files for now
- find_accept(): solved XXX
- hook.c: constification/style corrections
- Fixed core with empty auth::spoof entries
- Automake 1.14
- White-space commit / style corrections
- Added XLINE and RESV logging types
- hostmask.c:hash_text(): removed pointless cast
- ircd.c: temporarily disable FAKEHOST capability
- Fixed Dom's irc-name
- doc/reference.conf: revised reference.conf by Dominic Hargreaves <dom@earth.li> - version.c, AUTHORS: added Dom to contributors list since he helped al lot with GNU/Hurd testing and bugfixing
- motd.c: fixed possible core with "STATS z" as reported by Fawkes
- Stole ircu's outbound message queue implementation for later use
- conf.c:attach_iline(): there should never be a conf that hasn't a class attached to it. Let it crash if it's otherwise
- s_user.c: style corrections, remove useless comment
- conf.c:valid_tkline(): minor cleanups
- s_serv.c:show_capabilities(): fixed buffer oddities
- numeric.c: constificate replies[]
- s_misc.c: constify weekdays[], months[]
- whowas: Renamed functions. add_history -> whowas_add_history off_history -> whowas_off_history get_history -> whowas_get_history
- whowas.c: renamed count_whowas_memory() to whowas_count_memory() - watch_count_memory(), whowas_count_memory(): constification, renamed variables, removed unused variables
- Rename Ban::username structure member to Ban::user
- Added FAKEHOST server capability for later use
- s_user.c:user_set_hostmask(): don't send QUIT message to channels if cycle_on_host_change is turned off
- s_bsd.c:ssl_handshake(): shrink buffer size of md
- Added generall::cycle_on_host_change configuration option as requested by Adam <adam@anope.org>
- s_serv.c: cleanup show_capabilities(). Replace sprintf() combo with strlcat()
- Back out previous changes to detach_conf()
- conf.c:detach_conf(): fixed bug where we didn't call remove_from_cidr_check() in some cases
- Added general::stats_u_oper_only configuration option
- trace_get_dependent(): use unsigned int here
- ircd.c: whitespace commit/style cleanup
- conf_parser.y: don't attempt to copy ciphers if there aren't any
- Add operator::ssl_connection_required configuration option
- Add usermode 'S' (client is connecte via SSL/TLS). Allows services to keep track of what users are connected via SSL, and allows to see ssl-status of remote clients in a /whois.
- rename 'fingerprint' configuration directive to 'ssl_certificate_fingerprint'
- channel_mode.c:add_id(): don't leak server names of servers that are hidden. Patch provided by Adam <adam@anope.org>
- automake 1.13.4
- Change CERTFP implementation to use SHA-256 hashes - Remove base16_encode()
- numeric.c: fixed core introduced in -r2228
- s_user.c:introduce_client(): must send CERTFP on client introduction aswell
- s_bsd.c:ssl_handshake() replaced a xstrndup() with xstrdup()
- Cleanups and fixes to previous commit -r2228
- Implement certificate fingerprint validation for oper{} and connect{} blocks. Some code taken from oftc-hybrid. Hello, stu!
- Added read_links_file()
- conf_class.c: white-space changes
- s_serv.c:write_links_file(): replaced a dlinkAdd() with dlinkAddTail()
- channel.c: optimized can_join(). Do less intensive tests before actually testing for ban/exempt masks
- motd.c: style correction
- Moved disable_remote_command configuration directive from general{} block to serverhide{] block
- Fixes to changes done in -r2164
- motd.c:motd_destroy() don't attempt to unlink a local/remote motd from MotdList.other
- motd.c:motd_cache(): do the stat() before fopen() + improve error reporting in case stat() failed
- Removed Client::client_host and Client::client_server members
- Removed usermode +C
- Style correcions/white-space changes
- Fixed debug assertion being triggered on ident lookup as reported by Stuart Walsh
- automake 1.13.3
- Now that invite- and ban-exempts are hardcoded, there's no need to delete them from ISUPPORT-list on /rehash
- Remove unused temporary_resv list. Move channel_resv_list to conf.c
- motd.c, motd.h: fix compile warnings
- motd.c, motd.h: add support for ip masks
- motd.h, motd.c: minor cleanups. use 'unsigned' whenever possible
- Cleanup ISUPPORT code and get rid of message.c
- Cleanup flattened links code
- Implement motd{} configuration blocks based on ircu's implementation
- Don't let non-SSL users join +S channs if ircd has been compiled without SSL support. Spotted by Stuart Walsh
- m_svsmode(), user_set_hostmask(): minor cleanups and fixes to previous commit
- m_svsmode.c: avoid HostServ floods
- s_user.c:user_set_hostmask(): send a QUIT/JOIN combination to other channel members to avoid desynchronized IALs
- s_user.c:user_set_hostmask(): don't unset FLAGS_IP_SPOOFING if the client's hostname has already been spoofed by an auth{} block based spoof.
- Finished proper implementation of usermode 'x' (UMODE_HIDDENHOST) Only services may set a fakehost via SVSMODE.
- s_user.c, s_serv.c, rsa.c: style corrections; mostly whitespace changes
- get_member_status(), valid_wildcard(): constification
- resv.c: move valid_wild_card_simple() to conf.c
- conf_parser.l, conf_parser.y: style corrections
- conf_parser.y: fixed logic error allowing connect{} blocks that don't have valid send/receive passwords
- s_user.c:report_and_set_user_flags(): minor spelling fixes
- m_version.c: removed confopts(). Configuration options can be seen in /info
- conf_parser.y: match() takes care of multiple globs. no need to run collapse()
- Undo -r1899 for now [Changed RPL_WELCOME to comply with rfc2812]. Looks like this confuses mIRC in conjunction with spoofed hosts
- Fixed broken spoofs
- Removed testline and testmask
- s_serv.c:hunt_server(): removed collapse() call. Let match() deal with it.
- version.c: update copyright years
- Fixed compile error
- Merged valid_username() and clean_user_name()
- automake 1.13.2
- Added 'locops' and 'wallops' to irc-operator flags --- Diese und die folgenden Zeilen werden ignoriert -- M include/client.h M src/conf_parser.c M src/conf_parser.h M src/conf_lexer.c M src/conf_parser.y M src/conf_lexer.l M doc/reference.conf M modules/m_locops.c M modules/m_wallops.c
- m_svsmode(), set_user_mode(): \n, \r, \t aren't treaded specially anymore
- Remove entering_umode and change_umode callbacks in preparation for the modular usermode subsystem
- Removed 'remote', and 'global_kill' oper flags, and added 'connect', 'squit', and 'kill' flags for better fine-tuning instead. Whether or not a specific action is allowed on a remote server can be controlled by appeding the ':remote' flag. For example: 'kill' allows only local clients to be killed, whereas 'kill:remote' allows to issue a KILL for remote clients
- Mostly style cleanups & whitespace changes
- Removed unused OFLAG_OPER_SPY definition
- Only show remote client exit notices if the server sent an EOB
- regenerate parser/lexer
- Added 'nononreg' (+R) to general::oper_umodes
- Added usermode F (remote client connect/exit notices) on public request
- Cleanup previous commit -r1957
- EOB is now send to all servers globally
- Print chunk capacity to debug.log instead of ircd.log
- Tweaked various mempool chunk sizes
- (RPL_REDIR) Change conversion specifiers
- Fixed strange user/oper idle-times shown in /trace
- Implemented channel mode +M. Clients that haven't identified their name with NickServ may not speak in a channel that has this mode set
- Update comment
- conf.c:verify_access(): removed unused variable
- Removed channel::quiet_on_ban configuration option. This feature is now enabled by default
- can_send(): fixed bug where bans were not checked against non-channel members
- can_send(): ops/hops/voices may not speak thru +c; ensure msg_has_controls() isn't called twice for non-chanops
- can_send(): ops/hops/voices may not speak thru +c
- Implemented channel mode +c. Known from other ircds, this mode basically prevents users from sending messages including control codes to a channel that has this mode set
- Move report_resv() to m_stats.c
- "STATS o" now shows how many times an oper{} block has been used. Just like "STATS x|q"
- Moved report_confitem_types() to m_stats.c
- Forward-port -r1920 [Dropped PCRE support]
- Made valid_wild_card_simple() easier to read
- Unidentified/unregistered nicks may not speak in +R channels
- Fixed shared{} blocks not working as expected - Fixed spoofs not working as expected
- Removed operflag 'nick_changes'. Operators can now set +n at will
- channel.c:get_member_status(): removed useless NULL pointer test
- Changed RPL_WELCOME to comply with rfc2812
- Made find_capability() return an unsigned int
- WHOIS may no longer accept wildcards
- Fixed broken compile with libGeoIP disabled
- Fixed core on rehash with resv exempts
- God Damn It; resv exempts should be working now
- Minor fixes to new resv exempt code
- Added basic support for libGeoIP - Added exempt configuration option to resv{} blocks
- Constification
- Added 'nononreg' (+R) to oper::umodes and general::oper_only_modes
- Cleanup m_map.c - Implemented serverhide::hide_services configuration option
- numeric.(c|h): remove RPL_TEXT, re-add RPL_RSACHALLENGE
- Constification, replaced few sprintf with snprintf
- Fixed some compile warnings
- send.c:sendto_common_channels_local(): fixed core which has been introduced in -r1734
- Add ERR_CHANBANREASON (numeric 485)
- Numeric 432 now shows the actual reason of quarantined nicknames
- Remove current msg locale implementation
- m_users, show_lusers: removed extranous arguments to sendto_one()
- bison 2.7.1
- Revert to -r1831
- bison 2.7.1
- Made all numeric defines use the actual string instead of the numeric value which allows to use gcc's printf format attribute - Remove current message locale implementation
- Forward-port -r1741 [Fixed logfiles not getting reopened on /rehash]
- Minor cleanups to hash.c; removed now unused functions, style cleanups
- Quarantined/reserved channels may now contain wildcards
- Renamed example.conf to reference.conf - Due to upcoming feature implementation, resv{} blocks are no longer stackable
- Removed recently added m_svshost.c. Services may now change the host of a specific user via "SVSMODE <timestamp> <target> +x <hostname>"
- Remote server connection and split notices now go to new usermode +e
- set_user_mode(): remove useless debugging notice
- myctime(): replaced strcpy() with strlcpy()
- Cleanup/reorganize header file layout - Fixed naming convention in some places
- Forward-port -r1792 [Added SVSHOST command handler which allows services to change the hostname of a specific user]
- Replaced all occurrences of ircsprintf with sprintf/snprintf and killed sprintf_irc.(c|h)
- Fixed possible core in try_parse_v4_netmask() as reported by bobnomnom
- Forward-port -r1784 [Fix bug where idle time sometimes is 0 even if the client didn't send any private message]
- Forward-port -r1774: - Configuration parser now does support 'year' and 'month' units - Add support for fake idle times to /whois. Known from csircd, this adds min_idle, and max_idle configuration directives to class{} blocks
- Forward-port -r1771 [channel_mode.c: check_string() didn't work right in case string started with a space. (i.e., "MODE #chan +b : c" results in a weird ban mask) Bug got introduced in ircd-hybrid-5/channel.c, Revision 1.26
- Fixed some other invalid conversion specifiers
- %lu conversion specifier has been used when it should be %u
- conf_parser.y: fixed warning introduced by previous commit
- Forward-port -r1740 [Fixed yyerror() not reporting configuration errors in some cases]
- Forward-port -r1750 [IMPORTANT: nick and topic lengths are now configurable via ircd.conf. A max_nick_length, as well as a max_topic_length configuration option can now be found in the serverinfo{} block] - OpenSSL 0.9.8s and higher is now required in order to enable ssl support
- Rebuilt conf_parser.c - Minor logic fixes to recently added away-notify capability
- Forward-port -r1744 [conf_parser.y: fixed fd leak with rsa public keys]
- Quick and dirty workaround to fix build on GNU/Hurd because of undefined PATH_MAX
- Forward-port -r1732 [Dropped support for linux rt signals]
- Add support for "away-notify" client capability
- automake 1.13.1
- parse.c:handle_numeric(): add missing space as reported by Mantas
- automake 1.13
- parse.c:handle_numeric(): implement ircu-based improvements/cleanups which basically avoid reprinting numeric buffers
- src/ircd.c: minor updates to myopts[] commandline options
- Improved WEBIRC authentication; added 'webirc' to auth::flags
- /info now also shows pathnames of g-/x-line database files
- Forward-port -r1685 [STATS q|Q now shows how many times a resv{} block has been matched]
- channel_mode.c: chm_invex, chm_exempt: ban and invite exemptions are now always sent regardless of CAP_IE/CAP_EX
- parse.c:handle_numeric(): added temporary workaround for servers sending numeric 451 (ERR_NOTREGISTERED) in response to the "NOTICE AUTH ..." messages uppon registration
- bison 2.7 & automake 1.12.6 - Update configure.ac
- event.c: fixed bug spotted by Jakub S. where timed events stopped from working if the system's clock is running backwards
- Fixed bug where specifying a listener port without an ip address didn't work
- conf_db.c: import backup/restore cleanups from 5.1.24
- client.c: fixed another compile warning with --enable-assert
- Cleanup unused header file includes - Fixed minor compile warning in conf.c
- memory.c: removed mem_frob() - automake 1.12.5
- Fixed inconsistent svn file properties
- channel.c:send_channel_modes(): now that CAP_IE and CAP_EX are mandatory, let's always send invite/ban exception during a burst
- conf_class.c: remove unused header includes
- add mempool.(c|h)
- hostmask.c:find_conf_by_address: fixed logic error which got introduced in -r1652
- Implemented memory pool allocator which basically is taken from Tor's mempool allocator for Tor cells - Fixed compile warnings in conf_class.c - ./configure --enable-assert works again
- added improved match() stolen from ircu - fixed compile warning in m_module.c
- changed match() polarity. match() now returns 0 on match and 1 on non-match This cleans up several places where function pointers of different matching functions like irccmp/strcmp/match are passed to other functions. - added improved collapse() to match.c
- Fixed class blocks not getting default values set properly - bison 2.6.5
- Fixed few bugs that have been introduced with config rewrite - Set some reasonable default values right after a class has been created
- minor MaskItem structure cleanup
- conf_parser.y: fixed some logic errors
- Finish stabilizing/cleanup of conf parser
- First pass of conf parser stabilization/cleanup
- conf.c: cleanup detach_conf()
- More config subsystem cleanups
- Fixed class limits for oper{} blocks
- Cleanup configuration subsystem - Fixed broken CIDR support for /challenge
- svn propset svn:keywords "Id"
- Add conf_class.c, conf_class.h
- Initial rewrite of the configuration subsystem
- restart.c: since save_all_databases may generate server traffic and log activity, it makes more sense to save the databases _before_ flushing the sendqueue/closing file descriptors
- restart.c: ensure databases get dumped to disk before terminating
- flesh out new *line database handling - simplify temporary bans
- read_uint8, write_uint8: use uint8_t instead of unsigned char
- minor cleanups to conf_db.c; Get rid of 16 bit limitation string lengths
- dbs are now periodically flushed on disc every 5 minutes
- Removed temporary_xlines list
- klines, dlines, xlines, glines and resv now make use of the new database; also, temporary *lines are now stored, so they're not lost after restarting the ircd. This also applies to G-lines.
- src/conf_db.c: Cleanup get_file_version()
- Added conf_db.c based on ircservice's binary database for later use
- bison 2.6.3
- Made m_globops() and ms_globops() use sendto_realops_flags() - Added message-type parameter to sendto_realops_flags() which can be one of SEND_NOTICE, SEND_GLOBAL, SEND_LOCOPS - Forward-port -r1617
- Second time's the charm? Moving svnroot/ircd-hybrid-8 to svnroot/ircd-hybrid/trunk
- modules.c: better error reporting if lt_dlsym() fails for some reason
- client.c:exit_client(): cleanup oddities when removing servers from serv_list. Connecting and HandShaking servers are never added to serv_list, so no need to try to remove them.
- parse.c: whitespace commit
- Removed remnants of MFLG_UNREG which is no longer needed with the current implementation of message handlers
- find_person(): allow services to seek clients by UID even if they're +i
- Replaced TimeStamp based services IDs with more flexible account names
- Removed general::kline_with_reason configuration options. It's now enabled by default - Removed remnants of the broken reject holding code
- Removed general::use_whois_actually configuration directive. This is now enabled by default
- write_links_file(): minor cleanups. Also remove useless assert()
- Fixed an off-by-one with spoofs. Spoofs are now also checked for invalid characters.
- conf.c: r(x|k)line.conf is gone. Don't try to load it on startup
- automake 1.12.4
- ircncmp(): ignored length variable. fixed
- removed server hostmasking leftovers
- fixed minor compile warnings
- removed unused terminal symbols
- Topics as well as user-aways are now sent in a burst by default
- Removed rkline.conf and rxline.conf leftovers. Regular expression based k- and x-lines can be set via ircd.conf only.
- Removed general::client_flood configuration option and added the new 'recvq' configuration directive to class{} blocks. The max size of a receive queue can be seen in "STATS Y" for each class - Update NEWS
- Removed two outdated/invalid XXX tags
- Update fgeek's email
- Update adx's email address
- flex 2.5.37
- automake 1.12.3
- Removed all unused references to GPATH and glinefile. There's no glines.conf.
- bison 2.6.2
- Removed use_invex, use_except and use_knock configuration options. These features are now enabled by default
- bison 2.6.1
- removed serverhide::disable_hidden configuration option - update NEWS
- Made Client::away a fixed-size array at the expense of a somewhat higher memory consumption
- fix msg_channel_flags() so it can deal with messages coming from servers
- removed &localchannels
- remove CAP_TB - add proper TS6 support to TBURST
- s_user.c:oper_up(): information about oper privileges can be obtained via "STATS p|o". No need to send a separate notice on oper-up.
- bison 2.6
- s_serv.c:sendnick_TS(): another TS6 fixup when bursting AWAY
- automake 1.12.2
- Added 'set' to operator privilege flags. Gives access to the "SET" command
- remove g-line acls - added general::gline_request_duration configuration option which simply replaces the harcoded PENDING_GLINE_TIME definition
- s_user.c:oper_up(): use get_oper_name() when announcing an operator
- Minor constification changes
- Added m_module.c and moved mo_module() into it
- Removed OMOTD --- Diese und die folgenden Zeilen werden ignoriert -- M include/defaults.h M include/conf.h M include/numeric.h M include/motd.h M src/s_user.c M src/messages.tab M src/motd.c M src/ircd.c M modules/Makefile.in M modules/m_challenge.c M modules/m_oper.c D modules/m_omotd.c M modules/m_rehash.c M modules/Makefile.am M NEWS
- conf.c: fixed stupid bug which would set the default value of max_chans_per_user to 50 while setting max_chans_per_oper to 0
- Removed MODLOAD, MODRELOAD, MODUNLOAD and MODLIST command handlers. They all have been replaced by the new "MODULE" command which now deals with the LOAD/UNLOAD/RELOAD/LIST parameters.
- Removed "MODRESTART" command. "MODRELOAD *" will now reload all modules.
- Backed-out -r1429. Unregistered clients may again speak in +R channels
- Added channel::max_chans_per_oper configuration directive. The old way was to let ircops join three times the amount of max_chans_per_user. I'd rather would make this a class{} based limit, but this would require us to reprint the ISUPPORT buffer every time a client connects.
- NICKLEN definition no longer respects the trailing NUL character (reverts to old behavior)
- channel.c:can_join(): use strcmp() instead of irccmp() when comparing channel key (+k)
- Unregistered clients may not talk in a +R channel
- parse.c: make msg_tree_parse() only take one argument - client.h: rearrange structures
- update comments "I: line vs. auth{} block"
- automake 1.12.1 & bison 2.5.1
- channel::disable_fake_channels now also disables ascii 29 (mIRC italic) when set to yes. Italic text (ctrl+i) is supported since mIRC 7.0
- "STATS Y|y" now reports CIDR limits as well
- Truncate 'cidr_bitlen_ipv4' to 32 if someone feeds us with a value higher than this. The same applies to 'cidr_bitlen_ipv6' that has a value higher than 128.
- Minor cleanups to check_server(). Checking for long servernames was redundant here, since valid_servername() already does that job. Also make use of match_conf_password()
- Don't try to access aconf->user when aconf is a SERVER_TYPE. aconf->user is a NULL pointer.
- src/conf.c: fixed compile error with openssl disabled
- minor cleanups to the module code
- /info no longer sends information about the platform ircd is running on - remove get_ircd_platform() function - configure: --enable-efnet switch is no longer required
o) Removed channel::burst_topicwho configuration option. Topicsetters are now sent by default
- move has_wildcards() to irc_string.c and make use of it in several places
- match(), match_esc(): remove XXX-comment. Bad idea to have match() rely on collapse()
- decrease HOSTIPLEN to 45 - fix some buffers that should use HOSTIPLEN+1
- src/hash.c: there's no need keep on searching clientTable[] for a server-id if we didn't find it in the idTable[] before.
- src/hash.c: minor style corrections
- conf.c:attach_conf(): remove useless conftype test. conf is now always one of CLIENT_TYPE, SERVER_TYPE, or OPER_TYPE.
- conf.h: remove CONF_LISTEN_PORT and CONF_EXEMPTKLINE #defines - hostmask.h: remove HostMaskEntry structure - hostmask.c: remove find_gline_conf() and find_kline_conf() wrapper functions
- conf_parser.y: removed outdated and missleading comment
- s_bsd.c:close_connection(): fixed connection scheduling
- cleanup match_conf_password(). remove outdated comments
- rename some struct AccessItem members
- conf.c:get_sendq(): fixed an assert()
- conf.c: cleanup get_sendq(), get_client_class() and get_client_ping(). Now that we don't have any other attached conf than CONF_CLIENT|CONF_SERVER|CONF_OPER, we may simply use the last attached conf pointed by x->confs.head
- client.h: get rid of Server::sconf
- Cleanup/rewrite Hub/Leaf-mask configuration. Hub and Leaf configuration items are no longer separately attached to Client structures.
- conf.c: remove CLIENT_CONF leftovers in clear_out_old_conf() clear_out_address_conf() already does the deal.
- Get rid of OPERNICKLEN. Oper login IDs are no longer limited to NICKLEN*2
- Remove all Class related #defines like MaxTotal, MaxSendq, etc. All they do is lead to confusion.
- minor cleanups to s_gline, hostmask.c and m_stats.c. remove useless NULL assignment of dlink_node pointers. the DLINK_FOREACH macros already take care of this.
- autoconf 2.69 & automake 1.12
- hostmask.c: move report_Klines() and report_auth() to m_stats.c
- "UNKLINE bla@bla.net" may accidentaly remove existing klines such as *@bla.* - Fixed
- cleanup temporary k/d/g line code
- Remove temporary RKLINES/RXLINES leftovers
- Cleanup hostmask.c. Make it use dlink list manipulation routines
- Cleanup conf_add_server(). Remove traces of obsolete username verification for incoming server connections.
- Optimize get_oper_name(). No need to walk client_p->localClient->confs. If there's any attached CONF_OPERATOR, it'll always be the last attached one
- conf.c: remove unused prototypes
- whowas.c: sort out header includes
- remove clear_tree_parse()
- free_client(): add some assert()
- watch_init(): remove useless memset since watchTable resides in .bss - replace C++ comments with C comments
- cleanup and rewrite whowas.c to use the dlink list manipulation routines - increase NICKNAMEHISTORYLENGTH to 16384
- minor cleanups to the getopt code
- automake 1.11.5
- move conf_yy_input and conf_yy_fatal_error to conf_lexer.l - conf_lexer.l: replace a strcpy with strlcpy
- conf_parser.y: dh prime size should be at least 1024 bits
- fix odd behaviour of ircncmp with 'n' being 0, plus performance improvements.
- irc_reslib.c: add localhost as default nameserver in case we cannot find a suitable entrie in resolv.conf - irc_res.c:res_ourserver(): no need to test against INADDR_ANY. This is a relict of old BIND versions which added INADDR_ANDY as default nameserver if no other servers could be found.
- hunt_server(): removed extranous match(). me.name cannot contain wilds anylonger. This is basically a fakename leftover.
- hostmask.c, rng_mt.c: avoid use of long int types
- Applied patch to shut up gcc with -Wformat-security enabled. Patch submitted by Moritz Muehlenhoff/Debian Security.
- get_client_name(): only compare client->name with client->host if it's any type of server. Saves thousands of irccmp calls.
- get_client_name(): made IP-masking more logical for ipv6 clients. At least allow determining whether or not a connection is ipv6.
- automake 1.11.4
- Update copyright-years
- init_hash(): remove unused variable
- Squash two other compile warnings. ircd now compiles clean with -Wall -Wextra -Wno-unused -Wcast-qual -Wcast-align -Wbad-function-cast -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wredundant-decls -Wshadow -Wwrite-strings -Wundef
- Remove unused configure tests - Fixed compile warning in conf_parser.c
- Change SHOW_IP, MASK_IP and HIDE_IP into an enum type - Removed unused CONF_SERVER_INFO_TLS_VERSION_* definition
- minor cleanups to the new logging system
- Get rid of fileio.c. Replace some ircsprintf() with snprintf() while on it
- Remove log::timestamp configuration directive. Timestamps are now enabled by default. - Timestamps are iso8601 now
- parse.c: remove unused prototypes
- parse.c: fixed archaic bug which would easily allow para[] being accessed out of bounds. Just to remember: para[] must be able hold: <prefix>+<15params>+<NULL>
- remove unused variables
- minor cleanups and fixes to the new logging system - decrease LOG_BUFSIZE to 1024
- Removed 'ssl_server_protocol' configuration directive and added 'ssl_client_method' and 'ssl_server_method' instead. Both of these options can now be changed at runtime. - src/Makefile.am: swapped order of conf_parser.y and conf_lexer.l - Update example configuration files
- client.h: remove servlink leftovers
- renaming files: ircd_parser.y -> conf_parser.y ircd_lexer.l -> conf_lexer.l s_conf.c -> conf.c s_conf.h -> conf.h s_log.c -> log.c s_log.h -> log.h
- ssl_server_handshake(): better error reporting
- rsa.c:report_crypto_errors: remove ERR_load_crypto_strings call. libcrypto error strings are already registered by SSL_load_error_strings() - rsa.c: remove verify_private_key()
- improve ssl/tls support - cipher suites can now be specified via ircd.conf
- show info about compression/expansion methods on link establishment
- servlink is gone; cleanup and sanitize openssl detection tests
- Implement basic tls connections for server-server links
- remove servlink in preparation for tls links/compression
- add 'dline' and 'undline' operator flags - implement remote dlines mainly for services purposes, but can be used by operators as well - update example configuration files; remove invalid shared::flags entries
- fixed style in some places
- Add user mode +H which simply hides operator status to other users. This solution replaces current method of hidding operator status where the admin mode is not sent to other servers unless hidden_administrator is disabled. - m_who() now takes care whether an operator is hidden or not
- automake 1.11.3
- ircd.c: fix compile warning
- added CIDR support for operator{} blocks - operator "name"{} is no longer supported
- remove useless NULL-pointer assignment
- remove general::burst_away configuration directive. AWAY burst will have to be controlled via connect::flags explicitly.
- automake 1.11.2
- irc_res_mkquery(): fixed compile warning with gcc 4.6
- A file size of 'unlimited' can now be specified for log files
- add log file rotation
- Rewrite and cleanup half-broken logging subsystem. Logfile rotating is not working yet
- parse.c: remove unused variable, plus style cleanups
- move content of msg.h, ircd_handler.h and handlers.h into parse.h and remove headers accordingly - killed common.h - remove m_killhost.c and m_flags.c from contrib/ - sort out unused header includes here and there
- listener.c: remove outdated comment. remove useless header include
- move firsttime, since, and lasttime Client struct members to LocalUser struct - m_watch.c: show_watch() now properly reports signon times. This also fixes an invalid signon time of zero for remote clients.
- rename mod_list to modules_list and make it static - remove now unused _modinit and _moddeinit prototypes
- move remaining functions in dynlink.c into modules.c
- Getting rid of rlimits.h. Relying on RLIMIT_NOFILE is more than enough nowadays
- m_unregistered(): fix 11 years old bug where ircd sends an invalid formatted ERR_NOTREGISTERED string. - ERR_NOTREGISTERED is not rate-limited any longer
- replace all instances of parv[0] with source_p->name
- replace bunch of ircsprintf with snprintf
- oper_up(): if both ConfigFileEntry.oper_umodes and oconf->modes aren't specified, don't give a client any other default oper-modes
- cleanup module loader. Make module api more flexible
- add 'restart'/'module' operator flags which allows better fine tuning whether or not an operator may have access to RESTART/MOD* commands - ircd_parser.y: (oper{}): ensure yy_aconf->port is set to zero, before setting any privilege bits. Fixes odd behaviour with multiple 'flags' entries. Also removed ability to negate operator flags with a tilde '~'. Pretty useless since all operator privilege flags are set to zero by default.
- Start cleaning up macros in client.h. Replace several ClientHasSomeCoolFlag() with simple HasFlag/HasUMode macros.
- add 'globops' to operflags
- Implement GLOBOPS - remove debugging code from parse.c
- make channel::topic and channel::topic_info fixed-size arrays
- implement NICK/UID servicestamps - add "SVS" to server capabilities
- move change_local_nick() from client.c to m_nick.c
- Forward-port r1183: exit_client(): We were accidentally trying to free memory pointed by source_p->lclient_node. Fixed.
- Forward-port r1177: Fix ERR_ACCEPTEXIST numeric string. Two %s conversion specifier have been missed here
- Cleanup and restore older parts of the irc-command parser. Gives back ability to specify maximum amount of parameters that are processed within a command.
- remove idle-time klines - rename LocalUser.last to LocalUser.last_privmsg - m_message.c: reset source_p->last_privmsg even if a client is messaging itself
- several fixes to services compatibility mode
- add usermode +R; only registered clients may message other clients with that mode set - add channelmode +R; only registered clients may join a channel with that mode set
- update s_conf.c:map_to_list
- rename find_server to hash_find_server to satisfy naming convention - pull m_services.c and m_jupe.c from contrib/ - style fixes in some places
- Add service aliases
- Improve services support - Add channelmode +r
- rename clean_nick_name() to valid_nickname() and move it so s_user.c - add SVSNICK module - update Makefile accordingly
- UMODE_REJ goes to usermode 'j' - add UMODE_REGISTERED ('r') (registered nickname)
- preliminary services support
- create ircd-hybrid-8 "branch"
- recreate "trunk"
- Update CHANMODES ISUPORT...
- add new channel modes O and S
- Style cleanups - Doxify hook.c
- replace several ircsprintf with snprintf
- Improve multi-prefix client capability support
- fixed compile warning in ircd.c
- Update NEWS file - Minor optimization to update_client_exit_stats close_connection - Move MaxConnectionCount/MaxClientCount to Counter struct
- User IDs are now shown in client connection notices. Requested by some ircu user.
- update my email address
- Bison 2.5
- we are finally 7.3-STABLE
- add dlink_move_node() and make use of it in several places - reuse LocalUser::lclient_node for local_client_list and serv_list (moving node between unknown_list and serv_list/local_client_list)
- fixed stupid assert() which prevented clients from being added to local_client_list
- replace several ircsprintf with snprintf
- Got rid of irc_addrinfo.c and irc_getnameinfo.c - Fixed broken ipv6 detection due to incorrect use of AC_CHECK_TYPES
- simplify remove_ipv6_mapping() and get rid of inetntoa
- removed all instances of STATIC_MODULES since we don't have static modules anymore - removed m_mkpasswd module from contrib
- Bump up max temporary kline time to 360 days
- removed HUB capability, which was a LL leftover
- cleanup and sanitize m_server.c. remove hostmasking. Improve TS6 suppport
- ircd_parser.y: ensure only valid hostnames can be specified in serverinfo::name
- set_user_mode(): don't unset modes specified in general::oper_only_umodes for remote clients
- Rename bogus_host() found in several modules to check_servname() and move it to s_serv.c - serverinfo::sid is now mandatory and must be specified. ircd won't start otherwise
- Move RPL_ETRACE to messages.tab - CHANGE RPL_WHOISSSL to use the 671 numeric
- move Client.client_host and Client.client_server to LocalUser struct
- Fixed broken configure test for sigio - Update libtool to latest 2.4 release
- rebuild parser
- Updated ltdl to latest 2.2.10 release
- Switch libltdl to recursive build mode
- minor libtool fixups
- rebuild scanner using latest bison 2.4.2 which finally fixed those -Wundef related warnings
- ts_warn(), ilog(): replace two vsprintfS with vsnprintf. We're immortal now!!!!!!!!!111
- Move do_local_user to m_user.c
- Sort out unneeded arguments of some user registration functions
- move Client.serial to LocalUser struct
- Dropped support for old style 'operflag = yes|no;' configuration format
- Made general::kill_chase_time_limit accept time units. too bad this entire crap is still needed even with ts6.
- remove old dot_in_ip6_addr configuration option. this is now obsolete.
- Update copyright years
- contrib/spy_links_notice.c: do not show additional arguments supplied to the LINKS command in spy notices. new behaviour is to simply show the command sent by the client, which exactly behaves like all other contributed spy modules. - remove clean_string()
- automake 1.11.1
- fixed compile errors as reported by Peter Evans
- branch off trunk to create 7.3 branch
- move ircd-hybrid-7.2 to trunk
- Update AUTHORS and add fgeek to contributors. There's still some stuff you have to do, henri!
- Fixed compile with --disable-openssl
- remove pointless check_class() call on ircd initialization
- fix build with poll, select and rt-signal
- rsa.c: removed outdated and missleading comments
- fixed broken cryptlinks as reported by henri - removed deprecated inet_misc.c - removed __attribute__ format, which sometimes really is usefull, even if unportable unless gcc, but for now they only give false warnings
- show_iline_prefix(): fixed an off-by-one when copying aconf->user. strlcpy really isn't hard to understand, is it?
- Add -Wextra -Wcast-align -Wbad-function-cast to CFLAGS if --enable-warnings is specified - Fixed several compile warnings - 64-bit cleanliness fixes, e.g., reorganize data structures to reduce storage/unnecessary padding
- remove tools.(c|h)
- move list manipulation routines from tools.c to list.c - mem_frob() goes to memory.c - sort out redundant/unneeded header includes
- more configure cleanups and modernizations
- add configure test for pcre lib and remove pcre sources from the tree
- continue doxyfying sources
- remove conf_add_d_conf wrapper
- remove unused small_file_date() function
- moved set_initial_nick() to m_nick.c
- remove half done and broken win32 support
- timeout_auth_queries_event(): don't try to close auth->fd twice
- change resolver/auth to use balloc memory pool - ircd.c: init_resolver() has to be called *before* read_conf_files(), otherwise recvfrom() aborts with ENOTSOCK in case there are configured connect{} blocks with a host that needs to be resolved on the very first configuration read.
- delete_resolver_queries(): remove extranous non-NULL test. ptr->data can never be NULL. let it crash, if it ever happens to be
- properly clean out irc_nsaddr_list before re-reading resolv.conf
- remove add_local_domain
- res_readreply(): check for fake replies before doing anything else
- update irc_reslib.c to latest libbind 6.0
- fix possible auth/dns related memleaks
- irc_res.c: fixed wide-spread off-by-one when copying hostnames
- res_readreply, do_query_number: removed ip6.int support. ip6.int delegations were deleted in 2006
- res_readreply(): fix broken logic with ipv6 enabled where we ONLY sent a second A QUERY in case a -broken- nameserver returns NXDOMAIN for AAAA when A record exists. fixed and removed workaround for broken nameservers.
- fixed bug where unregistered clients were not able to complete registration process with /quote PONG <ping_cookie> in case the client was assigned a zero value ping-cookie
- added a mersenne twister basedn prng
- speed up processing of incoming NICK/UID bursts - fixed archaic bug where bursting servers with missconfigured NICKLEN were able to desync the network's nickname database
- remove useless MyConnect tests in m_time() and m_lusers() - remove useless TS6 handling in m_who() since this is sent to local clients only
- avoid using native basename() since some implementations may or may not modify passed data
- removed last traces of crypt.c - add disable-static to libtools options
- remove crypt.c, snprintf.c
- added ssl_server_protocol configuration option to servinfo{}. valid flags are 'sslv3' and 'tlsv1'
- make valgrind shut up when calling epoll_ctl
- implement proper GUNGLINE support
- removed LL leftover in set_default_conf(). now ServerInfo.hub properly initializes on /rehash
- propset keywords
- squash several compile warnings
- remove m_error.c from src/
- lp64\llp64\ilp32 portability fixes
- move m_error.c to modules/
- fixed some configure mess and imported latest libtool sources
- Update autools versions. - Fix acinclude.m4 to work on FreeBSD at least.
-Remove obsolete references to LL
- Fix typo
- bug fix by caf <kevin@sylandro.com>
- Added some missing files - Moved HOSTLEN and USERLEN definition back to ircd_defs.h Those two shouldn't be configurable
- Implemented libtool-ltdl. Only shared modules are supported currently - Several build fixes and cleanups. ircd now builds and runs without any problems - Added back all files to SVN that are needed to built the daemon I really don't want to force other people that want to test the snapshots or svn versions to install yyacc, lex, automake, autoconf and libtool... No problem having required files in svn - Removed some automake maintainer stuff which is kinda useless for us
fix compile warning
Completely redo the build system. Now uses libtool and automake. Suggest you clean out your tree and then do ./autogen.sh.
- Added new 'server' option to listener::flags
- Killed s_stats.c
- Avoid useless irc_getnameinfo calls in several places
- Got rid of Serv.dep_users and Serv.dep_servers
- Backported new ACCEPT code which adds support for n!u@h masks
- Removed LazyLinks in 7.2 to stop people from asking why we keep broken code for half a decade. LL will be implemented in a smarter fashion in due time
- fixed bug which would cause invalid invisible counts on oper-up in case operator::umodes and/or general::oper_only_umodes contains 'invisible'
- change_local_nick(): No need to call clear_ban_cache() twice on source_p
- hash_find_id() should be using strcmp instead or irccmp
svn propset svn:keywords
flex & bison
Backported WATCH
- Fix some compile warnings with gcc 4.2.2 - Update configure.ac
- When a connect block uses a hostname instead of an IP, ircd will connect to the hostname's IPv6 if available, independent of the aftype setting. This causes the ircd to fail to connect to a IPv4 host that also has an IPv6 IP. Submitted By: evilmoon (hgchew) (via Sourceforge bts)
- Fixed occasional core when placing RESVs on channel names as repoared by Christopher A. Bongaarts.
- fix core in temp channel resv - remove unused variable in m_join - update RELNOTES
- fix typo in ircd_parser.y regenerate y.tab.c and lex.yy.c - fix order shown in CLIEXIT - remove mode parsing in ms_join - reflect addiction cconn_full flag
- Add +C - add etrace -full Reviewed by: cryogen, bear
+ fixed off-by-one which turned out to cause large memory overwrites + this is an old one, very hard to catch: 1) FreeBSD system, 2) a lot of clients (preferably 10K+), 3) exiting/reading from/writing to 128+ clients at a time, 4) ircd version where the bug shows up clearly (on 7.3 WHOWASHASH gets corrupted, and somewhat later we have a core: whowas_add_history -> dlinkDelete) This applies to ALL versions of hybrid since 7.0, but is known to disclose most noticeably under 7.3
- Fixed bug in find_conf_exact() which sometimes made CHALLENGE useless
- Misc. fixes to TESTMASK/TESTLINE as reported by Phar Lap - Prevent TESTLINE from reporting k-lines twice - Show the actual k-line reason when reporting k-lines - Test the host part of a u@h mask against the client's sockhost field in TESTMASK - Added support for nick masks to TESTMASK - CIDR is to come in 7.3
- Added missing %s conversion specifier to RPL_MODLIST. Now /modlist shows up whether or not a module is resident
- Fix for the parseargs() fix
- Fixed compile error
- Fixed ban cache as reported by ThaPrince
- Backported r754 (parseargs() didn't accept more than one switch)
+ fixed an old bug that affected our numeric delivery: Spotted by: stu Imagine we have a scenario like this: [origin A on server 0] --> [OUR IRCD] --> [TS6 server] --> [TS5 server and target Z] We'd try to address Z by its null ID only because the next server on the way is TS6. That led to delivery failure in cases like ts6(origin)->ts6->ts6->ts5(target).
+ fixed a bug where auths/klines/glines with digit wildcards (#) were not handled correctly
+ added DEAF isupport
- Rebuilt configure using autoconf 2.60
- fixed core on MODRESTART as reported by xZ/CoolCold
- Also show the full path of .included configuration files when reporting syntax errors. This is just cosmetical.
- Applied nenolod's parse_resvconf() fix
- ACCEPT fixes as reported by ThaPrince
- Fixed small memory leak in delete_auth()
- Updated copyright years in version.c and INSTALL - Bumped version to 7.2.2 in configure.ac and doxygen.conf
- close_connection(): Fixed some harmless bug that could result in incorrect sent statistics in "STATS t" - Updated RELNOTES
+ patch against truncated NAMES output Submitted by: Murat Deligonul <deligonul@gmail.com>
- check_classes(): Only call destroy_cidr_class() on a class that is ready for deletion, otherwise the current cidr count would become unadjusted in case a disabled class gets re-enabled later on.
- Fixed possible core introduced by previous commit - Put some asserts into detach_conf()
- Fixed class limit bug as spotted by stu. ("REHASH" would always reset current user count) - Made "STATS y|Y" show inactive (deleted) classes that still have attached clients
- balloc.(c|h): backported r544 (Killed Block::used_list) - Update RELNOTES
- Rebuilt y.tab.(c|h) using bison 2.3 - Bumped pcrelib version to 6.4. There were no changes since 6.3 that would have affected our hacked version of the pcre library, so this is mainly to satisfy paranoid I-always-need-the-latest-version people
- Fixed compile error in s_auth.c
+ backported numeric changes
- Fixed bug that would exit unknown clients in check_unknowns_list() that are still processing auth/dns queries. Basically check_unknowns_list() should only exit clients that have finished auth/dns and didn't send a NICK/USER combination since they have been released from auth. Reported by ThaPrince.
+ added invisible character ^O (cancel all formatting)
- actually remove the chars that should not be marked as visible chan chars
- At least I noticed it myself, I got it completely backwards when folding in Michael's suggested optimisation.
- optimise Michael's fake channel catcher. Make it work first, then optimise.
- Added channel::disable_fake_channels which disallows creation of channels that have ascii 2, 3, 31 and 160 in their names. - Minor improvements and cleanups to channel name validation routines backported from 7.3
- Fixed compile warning in change_simple_umode as reported by Volk
- Fixed an off-by one bug in the ip limiting code as reported by Volk
- Backported r376 (STATS y now shows the total number of clients in a class) - Rebuilt y.tab.c using bison 2.2
- attach_conf(): We even need to increment CurrUserCount if a class got attached to a server or operator. Spotted by stu. - Removed IRCD_SOCKET_ERROR define
- report_error() expects two %s conversion specifiers as reported by ThaPrince. This function really should get rewritten at given time. It just confuses people.
- Removed dalloca.h
- Added missing sigaction for SIGALRM
- Cosmetical fix to "STATS k|K". temporary regexp based k-lines should be prefixed with 'kR' and permanent ones with 'KR'.
- Backported core fix for regexp k-lines
- Ignore signal SIGXFSZ which killed the ircd process on daxnet because of a file size limit set too low. That way, write() and friends will abort and errno will be set to EFBIG. We may think about a NOTICE which could be sent to operators on a failed write attempt to either the log files or k/x-line files.
- Backported RKLINE fix so the user and host portion of a banmask don't get cut off after 10 and 63 chars, respectively. A split_nuh() rewrite was required for this. - Removed now unused xstrldup() function
- Merged check_xline() and check_regexp_xline into a single function
- Clear the TS6 CAPAB bit possibly set on an unregistered client connection in mr_motd(), mr_admin() and register_local_user(). This is a kludge for now.
- m_restart(): don't send restart notices twice to locally connected clients
- Proper typecasting in newblock()
- Added new general::stats_e_disabled configuration option. Known from RB, all it does is to disable "STATS e", which is a good idea if you have any exempted server ips. - Updated RELNOTES
- The 2nd and 3rd character of a SID may be a digit as well. Spotted by ThaPrince - Fixed compile warnings in log_user_exit()
- log_user_exit(): removed extranous newline character in log message. fixed invalid casts
- Fixed a bunch of compile warnings
- ts6 fixes as explained on irc
- Backported changes made in HEAD to get rid of Channel::locmembers. This is mainly to save about 5megs of ram on networks like efnet where we have about 600k allocated Membership structures.
- Added missing bracket
- can_send: splitted up some bigass if() statement
- Backported accept_connection() cleanup from HEAD
- Backported add_connection() speedups
- Added missing !u@h prefix when sending MODE message back to a client
- Backported msg_tree_parse() speedup
- When checking for first " in a line, make sure it doesn't run off the end of the line before it finds one.
- Fixed static build for m_cap() (fix doesn't need to get forward-ported to HEAD) - Added BS alias for BOTSERV
- register_remote_user(): Fixed bug where we would increase Count.total and source_p->from->serv->dep_users for unregistered remote clients and don't decrease them if we exit the client due to non existand server or fake direction.
- Removed some outdated XXX comments
- channel_member_names(): properly count the number of prefixes that will be written to lbuf
- Backported CAP changes from HEAD since it doesn't affect any of the ircd's core components and should be supported as soon as possible.
- exit_client(): Don't bounce a QUIT back to origin's server Reported by adx
- Yet another mach_chan fix (broken #*chan vs. &chan match logic as pointed out by adx)
- Don't give away IP information unless it's an admin doing /stats P
- Backported match_chan() fix to get /list *chan* to work
- Cleaned up the resolver some more, added some comments
- Redo NXDOMAIN check so IPV6 still works
- Unbreak can_send
- Get rid of can_send_part. This also fixes a bug where voiced clients weren't able to send a PART message to the channel. Reported by ThaPrince.
- Properly close ssl clients
- reported by Jon, resolver was not checking for NXDOMAIN as well as SERVFAIL this caused odd DNS reports and took longer to connect. Tested by Jon (ThaPrince). (backported from head)
- rebuilt y.tab.c
- Fixed bug where "listen { flags = ssl; port 1,2,3; }" would result in only port 1 being set ssl enabled.
- Fixed typo in example.conf and send.c
- Got rid of the last IVARIANT we had and replaced it with two asserts().
- Fixed bug in fd_close() that caused a core when calling restart_resolver()
- Don't try to keep pointers to already freed memory on temporary_resv list when manually removing tempoary N/C resvs.
- Fixed possible core in expire_temp_lines()
- Fixed same problem for SSL_write. Some interesting reference about the problem we experienced can be found at http://www.mail-archive.com/openssl-dev@openssl.org/msg13939.html
- Fixed bug where all ssl clients would get disconnected in certain situations. (reported by many people)
- Add BMASK and TMODE onto message tree when building with static modules. reported by hb505.
+ fixed unaligned memory reference in resolver Submitted by: Immo 'FaUl' Wehrenberg
MFC r396 from ircd-hybrid 7.3 (s_auth.c reliability fixes)
- fixed compile error in sendnick_TS()
- Forward-port banfix from 7.2 (reported by ThaPrince)
+ this should fix sockhost relaying (ThaPrince #1)
- Soft caller ID fix as per ThaPrince (find_channel_link was called with wrong pointer)
- Imported recent channelban changes from HEAD which have been tested extensively. The match_cidr() fix didn't work in the first try, so I'm not going to bother with further debugging. - Removed match_cidr() and comp_with_mask()
- Forgot the half of the fix
- Fixed compile error on srv4 as reported by KEYofR
+ MFC support for halfop->op rewriting.
- Fixed compile error reported by Volk and CoolCold
- As reported by CoolCold: - Updated cmode helpfile - Added support for old-style topicburst = yes|no
- Someone fixed a core in ircd_parser.y but forgot to rebuild y.tab.c, so ircd still kept on coring if using 'umodes' option in operator{}
- Improved topic bursting. Read the comment in s_serv.c:send_tb for further info
- Finish off TBURST (untested)
- Fixed core in case aconf->cipher_preference and ConfigFileEntry.default_cipher_preference are both NULL pointers Reported by opteron-hani via Joan
- Backported revision 315 (trimmed memory usage by moving invited dlink_list to LocalUser struct)
- fixed infinite loop spotted and fixed by *runedude* Jeremy Sayres and my email is runedude@runedude.net
- This is part of the nasty core fix; the y.tab.c and y.tab.h files were committed earlier, I have no idea why this file did not get committed.
+ fixed unportable usage of va_list that make ircd cry on amd64
+ MFC /dev/poll
MFC set +b on opers by default
- Fixed another core on dlclose()
- Fixed core on /modunload, /modrestart
- Fixed problem where configure wouldn't deal properly with openssl 0.9.8 - Rebuilt y.tab.c using bison 2.1
+ 7.1 -> 7.2
- make findmodule_byname case sensitive
MFC: + removed invite_ops_only, controlled by +p now + sorted ircd.conf:channel{} a bit
- Fixed compile error in load_a_module() with glibc that don't have a Link_map typedef
- backported fix from HEAD done by Michael - Fixed bug in sendto_channel_remote() that would cause multiple copies of the same message to be sent to the uplinked server.
- Fixed gcc4 related compilewarnings in inet_ntop6(). Reported by ThaPrince
- Removed LocalUser.port - Removed two extra memsets in make_request()
Backported from HEAD - committed configure changes by nenolod (William Pitcock) to check for HAVE_DLINFO - fixed logic for picking up address for the mod_list
- MFC iorecv/iosend changes to allow charset recoding
- Fixed bug where we would increase Count.invisi even if invisible_on_connect is off
- MFC: fixed register_callback
(backported from HEAD) - irc_res.c would send out hundreds? of retry requests on clients that did not resolve, i.e. SERVFAIL. The code was essentailly ignoring SERVFAIL hence generating request after request after request. This appears to fix this major bug. It would be a good idea to add some logging here however.
- backported from HEAD flush_deleted_I_P is trying to treat MatchItems as if they are AccessItems I am almost sure this function is redundant as well.
- backport fixes from 7.3 (HEAD) for testline and ~ flags
- That one should be the propper fix for GDENY items. Previous fix broke the ability of stacking user/name/action combinations. That fix still needs to go into -HEAD, and VERY important, into 7.1.3. Someone please test this, e.g. write a small dump function that spits out GDENY items.
- CHANNELLEN vs. LOCAL_CHANNELLEN fix. Local JOINs are limited to 50chars whereas remote SJOINs/JOINs can be upto 200chars for backwards compatibility.
- And update the parser files
- At the very least, don't create a gdeny conf with a NULL name, this is bad manners.
- Reverted oper_privs_as_string() back to its previous version which is easier to maintain when adding new operflags. Even the one who wrote the new version introduced a bug by not taking care to keep the oper_flags_table in sync with the OPER_FLAGS_* bits. (which also no one really wants to do ...) - Updated it to deal with new 'remoteban', 'operwall' and 'operspy' flags
- Re-added an equivalent of H6's sixth O-line field (Modes to get on operup). - Updated efnet's example.conf to reflect the new opers_bypass_callerid directive - Misc style corrections to s_user.c while on it
- *hopefully* this hack fixes cryptlinks+ts6 instead of breaking them ;)
- MFC disallow ':' at the beginning and ' ' in server passwords
create 7.2 branch, we can move/rename it as needed.
- svn:keywords
- svn:keywords
- Fix svn:keywords
- imported sources - can be moved later according to the directory/branching scheme, but we need the svn up