- tls_openssl: cleanly build with openssl 3.0; use OSSL_STORE api to retrieve dh parameters; replace deprecated functions
- 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
- The `general::dots_in_ident` configuration directive has been renamed to `general::specials_in_ident` and now covers the '-' and '_' characters in addition to '.'
- 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.
- Valid characters allowed in user names for local clients are now [A-Za-z0-9._-]
- Bump copyright years
- whowas.h, whowas.c: rename list/hash dlink_node members of the Whowas struct to actually make sense
- Stylistical changes
- monitor.h, monitor.c: monitor_find_hash() doesn't need to be externally visible
- extban.h: whitespace change
- Revert echo-message changes for now
- Implemented IRCv3.2 `echo-message` extension
- Rudimentary `cap-notify` support
- Removed Connection::cap_client; renamed Connection::cap_active to Connection::cap
- Add FLAGS_CAP302 to client flags for clients that support the CAP 302 extension
- Rename Connection::caps to Connection::capab
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.h: update comment
- monitor.h, monitor.c: change Monitor::name to pointer type
- Replace WATCH with IRCv3.2 MONITOR
- For consistency, the `general::network_desc` configuration directive has been renamed to `general::network_description`
- Remove serno.h
- 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'
- Remove CAPAB_QS. Quit Storm removal is default behavior for more than 20 years now.
- Remove CAPAB_SVS
- Implement accept() deferring. Closes github issue #4
- Style corrections; reformatting
- Cleanup ip address matching routine in various places
- Added 'client' option to listener::flags
- Removed MAXIMUM_LINKS_DEFAULT
- Implemented channel mode 'K'. KNOCK cannot be used on channels with that mode set.
- channel_mode.c:channel_modes(): minor optimization to save potentially redundant member_find_link() calls
- 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
- 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
- Replace remaining occurrences of IsMember with find_channel_link and remove IsMember entirely
- Store tls version/cipher in Client::tls_cipher for later use
- Rename Client::certfp to Client::tls_certfp
- server_hunte(): drop the 'parc' argument. It's no longer needed.
- Refactor Message flags
- Track how many times a command has been issued via ENCAP in Message::ecount. Can be seen in /stats m now.
- parse.h: documenting
- Each type of command handler now has its own min/max argument count pair; remove remaining argument checks from all modules
- Reformatting of various header files in some places
- event.h: add missing 'extern' to 'event_base' to fix broken build with gcc 10 as reported by Dominic Hargreaves. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=957377
- 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
- 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
- propset
- Move channel invitation related functions to channel_invite.c
- Rename most occurrences of 'client_p' to 'client'
- propset
- 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.
- Renamings: tls_new_cred -> tls_new_credentials tls_free_cred -> tls_free_credentials tls_verify_cert -> tls_verify_certificate
- tls_wolfssl.h: fixed minor documenting issue
- tls_gnutls.h: remove extraneous #if !defined(HAVE_LIBCRYPTO). HAVE_LIBGNUTLS and HAVE_LIBCRYPTO can't be defined at the same time.
- reference.conf, tls_gnutls.h: documentation updates
- propset
- Implemented experimental support for wolfSSL. Minimum supported version is 4.3.0
- Replaced most occurences of 'SSL' with 'TLS'
- 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
- Supported TLSv1.3 cipher suites can now be configured explicitely via the new 'serverinfo::tls_cipher_suites' configuration directive
- channel.h: remove unused ShowChannel macro
- 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
- Bump copyright years everywhere
- 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
- 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
- Command handlers are now of type void again
- Renamed 'creationtime' Channel structure member to 'creation_time'
- misc.h: use IEC prefixes
- Actually remove send_queued_all() as it is no longer needed
- auth.h: remove unused AuthRequest::node
- Run try_connections() once every five seconds
- Expire gecos and resv denies on the fly while looking them up
- Move oper_privs_as_string() from conf.c to m_stats.c
- Removed general::tkline_expire_notices configuration directive and added user mode +X (sees *LINE expiration notices) instead
- Made read/write functions use ssize_t
- whowas: rename hashv to hash_value
- Lower TLS handshake timouts to 5 seconds. Add separate TLS_HANDSHAKE_TIMEOUT enum to tls.h
- ipcache.h: documentation update
- Killed CurrentTime
- Should be using monotonic clock almost everywhere now; sort out mixture and misuse of 'firsttime', 'lasttime' and 'since' in the Connection structure
- Update documentation in some files
- 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: 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
- Add address_compare() and make use of it in some places
- Cleanup server connecting related code even further - Make comm_connect_tcp() take less arguments and remove unused dns resolving functionality
- 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
- 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
- Move CAN_SEND_ enum from channel_mode.h to channel.h
- 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
- The 'general::ignore_bogus_ts' configuration option has been deprecated
- fdlist: change F->desc to a pointer and use xstrdup to copy description
- fdlist.h: remove unused F->connect.S; reduce FD_DESC_SIZE to 80
- Update copyright years
- conf.h: remove unused CidrItem struct
- Get rid of version.c
- modules: replace MODULE_FLAG_CORE and MODULE_FLAG_NOUNLOAD with dedicated variables; fixed the ircd from crashing in case reloading a module fails
- auth: replace AM_DOING_AUTH and AM_DNS_PENDING with dedicated variables
- Rewrites to have parse_handle_command() end the flood grace period. MODE and TIME no longer ends the grace period.
- client.h: remove last traces of Connection::allow_read
- Get rid of Connection::allow_read and have parse_client_queued() determine max lines to be processed
- server_die(): remove die/restart enum. Use bool instead.
- More bool conversion. This should be everything now.
- More parse_aline() tweaks
- Stylistic changes
- Cleanup parse_aline() related code
- 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
- Use bool data types in some places
- Cleanups to add_id and del_id; have these function take a dlink_list pointer to the channel's banmask list
- Use a boolean type for chan_mode::only_servers and chan_mode::only_opers
- channel_mode.h: remove excessive const
- channel_mode.(c|h): get rid of the specialized chm_op, chm_hop, and chm_voice functions and just have chm_flag instead
- ircd_getopt.h: remove unused ENDEBUG from argtype
- hostmask.h: remove mask_addr() prototype
- client.h: whitespace cleanups
- 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.
- class_ip_limit_add, class_ip_limit_remove: use void pointers for 'addr'
- Rewrite class based subnet limiting to use a patricia trie
- Rename Channel:locmembers to Channel::members_local
- patricia.c:ascii2prefix(): don't allow to overflow 'save'; change size of 'save' to INET6_ADDRSTRLEN
- ipcache: rewrite to use patricia
- patricia: add patricia_make_and_lookup_addr()
- watch: cache hash values
- Minor cleanup to fd_open()
- Further cleanups to log.c
- Killed Connection::aftype. Use Client::ip.ss.ss_family instead.
- Killed userhost.c. Rewrote everything to use ipcache.c
- propset
- Move svstag related code into its own files
- Documentation changes
- Implemented channel mode 'N' which prevents users from changing their nick while in a channel with that mode set
- 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.
- Add channel_get_list() to channel.c which should be used when accessing channel_list outside of channel.c
- Stylistic changes
- 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
- 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()
- Rip out mempool
- defaults.h: change NETWORK_NAME_DEFAULT and NETWORK_DESC_DEFAULT
- Move fd_dump() to m_stats.c; rename it to stats_fdlist()
- Fixed bug spotted by Erick J. Velez where ircd would not remove RPL_WHOISOPERATOR based svstags when deoppering.
- "JOIN 0" is now no longer supported
- Style corrections
- 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.h: removed 'country_id' libgeoip leftover from Client struct
- Remove experimental libgeoip support
- 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
- Update copyright years
- Have s_bsd.c:comm_accept() take a fde_t pointer instead of a struct Listener
- 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.
- client.h: remove outdated comment on Client.host
- Remove UMODE_HIDDENHOST as we don't need a separat mode for that
- user.h: remove prototypes for functions that no longer exist
- server_capab.h, server_capab.c: propset
- Add server_capab files
- Move all CAPAB related code to server_capab.c, and server_capab.h
- Fixed NULL pointer dereference in chm_nosuch()
- 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
- 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
- Removed CAPAB_IE and CAPAB_EX. These are mandatory for some years now.
- Removed redundant 'Count.max_loc_cli'; use 'Count.max_loc' instead
- Rename get_client_name() to client_get_name()
- 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
- 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()
- Update copyright years
- patricia.h: remove 'user1' data pointer from the _patricia_node_t struct
- Use unsigned where appropriate
- Import FLOODTIME changes from p4
- 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, patricia.h:New_Patricia() fixed compile warning; removed useless 0 assignments
- patricia.c, patricia.h: rewrite prefix_toa() to suck less
- patricia.h: add missing prototype for try_search_best()
- patricia.c, patricia.h: indenting; remove extraneous parentheses
- 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: removed unused header includes
- patricia.h, patricia.c: removed void_fn_t typedef
- patricia.h, patricia.c: get rid of BSD data types
- Minor style corrections and constifications
- Implement INVITE expirations
- motd.h: increase MOTD_LINESIZE to 321
- 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.
- 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_pseudo.h, conf_pseudo.c: added pseudo_get_list() for later use
- Fixed more svn properties as pointed out by jackal
- Fixed svn properties
- 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.
- Minor cleanup to send_umode() to get rid of the redundant struct Client * pointer
- Merge send_capabilities() and show_capabilities() into get_capabilities()
- token_vector(): use unsigned where appropriate
- Move initialize_server_capabs() from ircd.c to server.c and rename it to server_capab_init()
- Rename init_resolver() to resolver_init()
- Rename init_netio() to netio_init()
- Minor cleanup to client/channel burst logic
- Rewrite invite handling to be more flexible for future additions such as client based invite throttling, invite expiration, etc
- conf.c: removed unused cluster_a_line() prototype
- whowas.h: documentation
- ircd_defs.h: increase REASONLEN to 260
- Removed KILLLEN; use REASONLEN instead
- ircd_defs.h: add TOPICLEN documentation
- ircd_defs.h: improve NICKLEN documentation
- mempool.h: #undef MEMPOOL_STATS
- modules.h, modules.c: avoid using HYB_PATH_MAX for module_path::path
- Rename Client::whowas to Client::whowas_list
- numeric.h: remove irrelevant comment
- Further cleanups to recent WHOWAS changes
- 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
- 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: doxygen
- conf.h: removed now unused MaskItem::count
- Show some stats about allocated listeners in /stats z
- Remove unused header includes
- Remove excessive 'const'
- client_attach_svstag(): remove excessive 'const'
- 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.
- fdlist.h: removed FILEIO_V2 define
- Remove useless header includes
- client.h: remove unused struct MaskItem declaration
- Constification
- conf_resv.h: removed unused struct ResvExemptItem members
- svn propset
- conf_gecos.h, conf_gecos.c: fixed copyright info
- Add conf_gecos.*
- Cleanup/separate XLINE / gecos{} conf implementation
- Cleanup/separate RESV conf implementation
- 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(). "
- Improve libGeoIP support
- conf_cluster: remove useless header include
- Move service {} block configuration management into its own module
- Renamed 'mod_clear_paths()' to 'modules_conf_clear()'. Further simplification to modules_conf_clear()
- conf_cluster, conf_shared: remove unused header includes
- Move resv.* to conf_resv.*
- svn propset
- conf.h: removed old shared_items leftover
- 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*: more copyright fixups
- 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
- Remove useless raw_result -- from Adam
- stdinc.h: removed openssl header includes which no longer should be here
- conf.h, conf.c: remove now unused ConfigServerInfo.rsa_private_key
- tls_gnutls.h: fixed compile error
- tls_gnutls.h, tls_gnutls.c: minor cleanups
- conf_pseudo.h, conf_pseudo.c: fix/update copyright header
- Remove MaskItem::rsa_public_key
- propset
- Incorporate gnutls support by Adam & Attila
- watch.h, watch.c, m_watch.c: rename some variables for consistency
- 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
- Rename 'non-standard' RPL_ENDOFTRACE to RPL_TRACEEND
- Renamed MyCalloc to xcalloc
- Update copyright years
- Cache channel name lengths
- 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
- resv.txt, stdinc.h: comment/documentation updates provided by jackal
- 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
- USERHOST_REPLYLEN I never liked. Gone.
- Fixed bug where setting the path/filename via the -klinefile, etc. switches would not have any effect. Reported by gp.
- Add CMEMBER_STATUS_FLAGS / CMEMBER_STATUS_FLAGS_LEN and make use of it in some places (replaces some magic values sprinkled in the code)
- memory.h: removed unused header include
- channel.h, channel.c: declared can_join() as static
- Added channel mode +T which forbids NOTICEs to be sent to a channel
- parse.h: remove MessageHandler typedef
- Move report_dns_servers() from res.c to m_stats.c
- server.h: update doxygen comments
- Add channel::invite_delay_channel configuration option
- 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
- Implement ircv3.2 chghost client capability support
- Implement ircv3.2 invite-notify client capability support
- Merge sendto_channel_local_butone() functionality into sendto_channel_local() and get rid of sendto_channel_local_butone()
- Add valid_uid() for later use
- defaults.h, conf.c: get rid of this WATCHSIZE_MIN, WATCHSIZE_DEFAULT magic
- Make mem-usage counters use size_t and use the %zu conversion specifier accordingly
- Rename 'xconf_item' list to 'gecos_items'
- user.h: removed unused show_isupport
- Move user_oper_up() from user.c to m_oper.c
- Add all the missing irc-operator flags to /stats o output
- conf.h: whitespace changes
- client.h: more documentation updates
- client.h: more documentation updates
- client.h: add some rather useful documentation to Connection::lasttime
- ipcache.h, ipcache.c: constification
- Rename event::enabled to event::active
- 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'
- Rename uconf_items to shared_items and oconf_items to operator_items
- client.h: document Client::connection
- client.h: if HasOFlag is being used on remote clients, something is wrong. Let it crash instead of silently ignoring it.
- client.h: removed pointless cruft in the SetClient macro
- client.h: clean up some nonsense in the SetOper/ClearOper macros
- patricia.h: remove trailing whitespaces
- Added serverhide::flatten_links_file configuration option and get rid of LIPATH
- Renamed serverhide::links_delay configuration directive to serverhide::flatten_links_delay
- Removed CHALLENGE in favour or ssl certificate fingerprint enabled operator {} blocks
- Add dissect_time() from HOPM and make use of it in some places
- server.h: swap keywords on find_capability()
- Removed that dirty strtoken definition in stdinc.h
- motd.h, motd.c: have motd_signon() use date_iso8601()
- Change myctime() to use strftime() instead of ctime(); rename myctime() to date_ctime()
- m_stats.c:show_iline_prefix(), report_auth(): let remote opers see auth blocks {} with spoofs and k/x-line exempts - client.h: removed now unused MyOper macro
- ircd_defs.h: minor correction to the USERHOST_REPLYLEN definition
- ircd_defs.h: increase KILLLEN and REASONLEN to 240
- Added 'close' to irc-operator flags
- Database files and links.txt are now stored in /var/lib instead of /etc
- Make use of enum in some places; make use of the HasFlag() macro some more; minor style corrections
- client.h: wrong value assigned to OPER_FLAG_UNRESV
- Added 'resv' and 'unresv' operator flags
- client.h: style corrections
- 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
- hostmask.h, hostmask.c: use const keyword where appropriate
- Get rid of smalldate() and replace all instances of it with date_iso8601()
- Added date_iso8601() for later use
- Implement ircv3.1 account-notify extension
- Move userhost related code from hash.c to userhost.c
- Use an embedded list node for the ListTask struct
- Remove splitmode checking
- Rename several functions in channel.c to comply with naming convention
- 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
- 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
- Cleanup/fix names of several #ifndef INCLUDED_*
- channel.h: rename FLOOD_NOTICED to MSG_FLOOD_NOTICED
- Get rid of the IsRegistered() macro, which is a rather dangerous macro for coders who add new connection states
- Make use of enum in more places
- Get rid of UMODE_ALL
- Make use of enums some more
- Make use of the *Flag() macros in some more places
- Move show_events() from event.c to m_stats.c. Remove now unused prototypes.
- Set keyword and eol-style properties
- Removed RPL_YOURID. Clients don't need to know about their associated UID nor is the information of any use for them
- Rename oper_up() to user_oper_up()
- Rename user_usermodes_init() to user_modes_init()
- Moved all ISUPPORT related code to isupport.c; renamed several functions to meet our coding convention
- Move all SID/UID related code to id.c
- Automatically generate sid on startup if none is configured. Patch provided by Adam
- Moved NICKNAMEHISTORYLENGTH definition to whowas.h
- Added 'xline_exempt' to auth{} block flags
- conf_db.h, conf_db.c: remove functions/definitions we don't need
- Use C99-style initializers in all struct Message items - Removed MFLG_SLOW - Removed DUMMY_HANDLER
- Renamed clear_invites() to clear_invites_channel() - Added separate clear_invites_client()
- hostmask.c:find_conf_by_address(): constification
- Get rid of valid_comment()
- Removed glines - Added kline_min_cidr, kline_min_cidr6, dline_min_cidr and dline_min_cidr6 configuration options
- Minor cleanups to CAPAB related code
- patricia.h: removed some windows support leftovers
- Reject remote k-line requests that don't have enough non-wildcard characters
- Changed some function to void if we don't need a return value - Have some other functions return saner values
- Removed TS_DOESTS, DoesTS, and related code
- Changed some members of the Ban structure to use fixed-size arrays
- defaults.h: tweaked TS_WARN_DELTA_MIN and TS_MAX_DELTA_MIN; allow minimum values of 1
- 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
- ircd.h: removed useless comment
- 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
- conf.h, conf.c:cluster_a_line(): made 'capab' and 'cluster_type' unsigned types
- Renamed SVIDLEN to ACCOUNTLEN
- ircd_defs.h: add a note that NICKLEN should not be touched as the maximum allowed nickname lenght can be changed in the ircd.conf file. NICKLEN is actually only a hard limit
- 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
- 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
- Renamed idle_time_get() to client_get_idle_time()
- server.h: removed redundant struct MaskItem declaration
- ircd.h: 'int unsigned' -> 'unsigned int'
- Update documentation in some places
- 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
- numeric.h, numeric.c: moved ERR_SSLONLYCHAN numeric to 489 to match with insp/unreal
- Allow servers to send as many CAPAB messages as they want, regardless of TS6; Removed CAP_CAP
- Added channel mode +C which prevents users from sending CTCPS to a channel
- ircd.h: fixed compile error
- numeric.h, numeric.c: moved ERR_OPERONLYCHAN numeric to 520 to match with insp/unreal
- conf_class.c: removed duplicated code
- Fixed compile warnings
- Minor cleanups and optimizations to usermode handling
- Update copyright years
- patricia.c, patricia.h: add proper copyright/license header
- 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
- Added general::stats_m_oper_only configuration option
- Added 'opme' to irc-operator flags
- channel_mode.h: increased MAXMODEPARAMS to 6
- 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
- general::hide_spoof_ips is now deprecated
- Get rid of NOCAPS
- Renamed variables; const correctness - Removed IsConfOperator macro
- numeric.h, numeric.c: removed now unused ERR_GHOSTEDCLIENT
- Const-correctness
- Removed init_host_hash()
- Renamed clear_ban_cache() to clear_ban_cache_channel() to separate it better from the clear_ban_cache_client() function
- Renamed exempt::coid to exempt::country_id
- Renamed Client::svid to Client::account
- 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
- Removed ChModeChange::mems
- Removed pointless test for UMODE_DEAF in both sendto_channel_local() and sendto_channel_local_butone()
- Added support for the "extended-join" client capability
- Constification
- 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
- Don't assemble umode buffer twice in send_umode_out()
- Renamed Channel::chname to Channel::name
- ircd.h: changed Counter structures to anonymous structure
- Renamed 'localClient' Client structure member to just 'connection'
- numeric.h, numeric.c: removed unused ERR_RESTRICTED
- Renamed struct LocalUser to struct Connection
- Update GPL 2 license headers
- Replaced RPL_NEWHOSTIS with RPL_VISIBLEHOST
- Fixed previous changes to parse.h
- parse.h: moved structure member
- Implemented pseudo {} blocks (service aliases) - Fixed compile warnings with -Wmissing-field-initializers
- Instead of silently truncating WHO at 500 replies, added ERR_WHOLIMEXCEED numeric to inform users about the /who limit being exceeded
- Add topic mask option to /list
- event.h: removed typedef
- Fixed compile warnings
- 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()
- auth.h: update documentation
- res.h: add documentation about RFC1035_MAX_DOMAIN_LENGTH definition
- Renamed various variables
- Rewrite sendto_realops_flags_ratelimited() so it can be used in other places as well
- Added listener_release() and make use of it
- Removed ipv6 detection. We now assume all systems that run hybrid have ipv6 availability and sockaddr_storage.
- Fixed resolver/auth issues with too long hostnames
- Minor documentation updates
- Unset FLAGS_IPHASH on source_p in exit_client() when removing from ipcache
- listener.h, listener.c: use HOSTIPLEN for Listener::name; update documentation
- ipcache.h: update documentation
- 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
- Re-arranged ConfigServerInfo structure
- Removed unused ConfigServerInfo structure member
- Renamed structures to meet code conventions
- event.h: style correction
- event.h: replaced shorts with ints
- 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
- Cleaned up ipcache
- Improved AWAY throttling to allow for better fine-tuning
- Backported auth code related cleanups from newio branch
- 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.
- auth.h, s_bsd.h: removed unused function declarations
- Renamed serv_list to local_server_list
- Renammed global_serv_list to global_server_list
- Bring back channel->locmember list
- Removed hooking system
- event.c, event.h: update copyright headers
- 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()
- ircd.h, ircd.c: change some structures to anonymous structures
- Removed supported.h
- Add CHACCESS_REMOTE for servers remote Clients
- 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
- client.h: fixed comment
- Removed LocalUser.last_nick_change as well as LocalUser.number_of_nick_changes. Now using existing struct which is also being used for INVITE/KNOCK throttling.
- channel.h: removed Channel.last_invite; it's not used anymore
- Got rid of SEND_UMODES. We now propagate all modes.
- Renamed OPER_FLAG_K to OPER_FLAG_KLINE
- client.h: update/fix comments
- Renamed global_channel_list to channel_list
- Renamed set_channel_topic() to channel_set_topic()
- Fixed SVSJOIN/SVSPART issues
- Added max_channels to class{} blocks
- 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{}
- Fixed bunch of compile warnings with -Wconversion
- Ugly-fix compile warning
- Moved duplicated code used by m_svspart.c and m_part.c, aswell as m_svsjoin.c and m_join.c to channel.c
- Use 'unsigned' whenever possible
- ircd.h: use 'unsigned' whenever possible
- client.h: fixed spelling error
- client.h: fixed compile warnings with -Wsign-conversion
- Added general::throttle_count idea from p4
- Use unsigned whenever possible
- Removed OPERWALL. Use GLOBOPS instead.
- Made the INVITE/KNOCK throttling logic less aggressive as requested by Adam
- send.h: update comment
- Removed ONLY_CHANOPS; let non-ops see +I/+e lists, too
- stdinc.h: whitespace commit
- /INVITE without any parameters now shows a list of channels a client is invited to
- 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
- channel_mode.h: removed outdated comment
- Removed unused ChModeChange.client
- send.h: removed anonops leftovers
- Removed CHFL_DEOPPED flags which is no longer needed with TS6
- conf.h:struct config_file_entry: changed 'oper_only_umodes' and 'oper_umodes' to unsigned int types. Otherwise we may expect integer overflows in the future if more user modes get added.
- conf.h: removed extraneous comma
- send.h: removed unused kill_client_serv_butone() prototype
- stdinc.h: disable printf format __attribute__
- Replaced remaining sendto_one() with sendto_one_numeric(). SND_EXPLICIT idea derived from ircu.
- Removed RPL_STATSNLINE
- find_address_conf(): constification
- doxygen
- Removed unused macros; cleaned up comments
- Added usermode +p which hides channel list in WHOIS
- Added usermode +q which hides idle and signon time in WHOIS
- Renamed MyMalloc() to MyCalloc()
- conf.h: remove invalid/useless comments
- conf.h: remove unused macros
- Renamed general::warn_no_nline to warn_no_connect_block
- Get rid of LOCAL_CHANNELLEN; change CHANNELLEN to 50
- defaults.h: revert previous change
- Doxygen - Update help/undline
- Moved files: s_user.c -> user.c s_misc.c -> misc.c s_serv.c -> server.c
- Style corrections
- Removed pointless comments
- Moved s_auth.c to auth.c
- gline.h: updated comment
- Moved irc_res.c to res.c - Moved irc_reslib.c to reslib.c
- Moved s_gline.c to gline.c
- Moved set_user_mode() to m_mode.c
- Readded FLAGS_BLOCKED
- Undo -r3215 for now
- Made server_estab() and sendnick_TS() use 'static' keyword
- Made irc_nscount an unsigned type
- Made free_list_task() only take one parameter
- Made safe_list_channels and list_one_channel only take two parameters
- Style corrections/constification
- Clean up redundant/unused header includes
- Re-add CHW capability to cope nice with rb
- Worked towards improving documentation
- Incorporate Adam's writev() patch
- Have /info report MPATH and SPATH aswell
- Fixed compile error in ms_sid() - Cleaned up find_chasing(). Removed useless third 'chasing' argument.
- Get rid of the HasID() macro
- Get rid of the ID() macro
- Get rid of kill_client()
- Incorporate Adam's exit_client/quit storm cleanups Note: QS is mandatory now
- More client_p removal cleanups
- Get rid of restart() wrapper function
- parse.h: removed redundant comment
- Fixed now outdated comments
- Removed client_p pointers from everywhere
- Removed unused client_p pointer from all chm_* channel mode handlers
- Get rid of halfop -> op rewriting for servers that don't support halfops
- Server now no longer accepts TS5 links
- Update dbuf.h, dbuf.c
- send.h: update sendto_one_notice() prototype
- 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.
- conf.h: made some more constants use an enum
- s_auth.h: made 'flags' an unsigned int type
- modules.h: use an enum for flag types
- conf_class.h: use an enum for flag types
- listener.h: use an enum for flag types
- defaults.h: removed MSGPATH definition
- m_stats.c, conf.h: removed unused CONF_FLAGS_LIMIT_IP and CONF_FLAGS_NOMATCH_IP definitions
- Renamed ts_warn() to sendto_realops_flags_ratelimited()
- Removed FAKEHOST server capability for now
- 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
- numeric.h: removed some other unused numeric constants as pointed out by Adam
- numeric.h: removed unused RPL_HOSTHIDDEN numeric constant
- hostmask.c: get rid of this (type & ~0x1) hack
- 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
- client.h: add separate definition for services IDs instead of using HOSTLEN
- Clean up stupid pointer magic passed to the channel mode handlers.
- irc_res.h: update copyright/license header
- s_auth.c, s_auth.h: optimized so we save unecessary auth_doing_list traversals. Patch provided by Adam.
- s_serv.h: removed unused header include
- modules.h: removed unused header include
- send.c: made some things use an enum.
- Clean up all files in include/ (fixed indentation, removed whitespaces/tabs) - Fixed copyright years
- Implemented "userhost-in-names" client capability
- channel_mode.h: fixed long-standing bug where +p channels have been show in the /whois reply
- channel_mode.h: made some things use an enum. Removed unused header include.
- Use the i/o subsystem to execute scheduled writes. Patch provided by Adam.
- s_serv.h: made some things use an enum
- send.c, send.h: made some things use an enum
- Clean up all files in include/ (fixed indentation, removed whitespaces/tabs) - Fixed copyright years
- Fixed indentation, removed whitespaces/tabs, update copyright header
- Added 'unxline' oper privilege for better fine tuning
- Made irc numeric use an enum
- hook.h, hook.c: fixed indentation, removed whitespaces/tabs
- Clean up all files in modules/ (fixed indentation, removed whitespaces/tabs) - Fixed copyright years - Made module handlers int type for later use
- 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
- Fixed server name leak for hidden servers in /who, /whois and /whowas
- Cleaned up RPL_WHOISADMIN hack
- 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
- include/client.h: add UMODE_CALLERID, UMODE_SOFTCALLERID to SEND_UMODES
- Fixed ID_or_name macro as reported by Adam <adam@anope.org>
- Renamed kill_client_ll_serv_butone() to kill_client_serv_butone() just to satisfy Adam's OCD
- src/send.c: fixed several compile warnings with -Wsign-conversion
- Administrators are now able to see user modes a user has set via /whois
- Got rid of find_kill() and find_gline() wrapper functions
- 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
- Stole ircu's RPL_WHOISACCOUNT numeric
- find_person(): fixed naming convention - find_chasing(): reduced required arguments
- Removed rfc1459_command_send_error() message handler
- include/patchlevel.h: changed patchlevel to hybrid(TRUNK)
- motd.(c|h): fixed core with zero byte length ircd.motd. Reported by Fawkes
- Remove msgq, and xsnprintf source files for now
- ircd_defs.h: increased PASSWDLEN to 128
- find_accept(): solved XXX
- ircd_defs.h: increased KILLLEN, REASONLEN, KICKLEN, and AWAYLEN to 180
- White-space commit / style corrections
- Added XLINE and RESV logging types
- Stole ircu's outbound message queue implementation for later use
- conf.c:valid_tkline(): minor cleanups
- 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
- client.h: add UMODE_HIDDENHOST to SEND_UMODES
- 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()
- Added general::stats_u_oper_only 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.
- 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()
- Moved disable_remote_command configuration directive from general{} block to serverhide{] block
- Removed Client::client_host and Client::client_server members
- Removed usermode +C
- Fixed debug assertion being triggered on ident lookup as reported by Stuart Walsh
- 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
- include/defaults.h: remove unused INIT_LOG_LEVEL define
- Cleanup ISUPPORT code and get rid of message.c
- Cleanup flattened links code
- Implement motd{} configuration blocks based on ircu's implementation
- 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.
- get_member_status(), valid_wildcard(): constification
- resv.c: move valid_wild_card_simple() to conf.c
- Got rid of CONF_HUB enum type
- Got rid of CONF_CLASS enum type
- Removed testline and testmask
- Fixed compile error
- 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
- Overhaul HELP system
- 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
- Removed unused OFLAG_OPER_SPY definition
- Added usermode F (remote client connect/exit notices) on public request
- Implemented channel mode +M. Clients that haven't identified their name with NickServ may not speak in a channel that has this mode set
- Removed channel::quiet_on_ban configuration option. This feature is now enabled by default
- 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
- Moved report_confitem_types() to m_stats.c
- Forward-port -r1920 [Dropped PCRE support]
- Removed operflag 'nick_changes'. Operators can now set +n at will
- Made find_capability() return an unsigned int
- Added basic support for libGeoIP - Added exempt configuration option to resv{} blocks
- Constification
- Cleanup m_map.c - Implemented serverhide::hide_services configuration option
- numeric.h: cosmetical cleanups; removed useless comments
- numeric.(c|h): remove RPL_TEXT, re-add RPL_RSACHALLENGE
- Constification, replaced few sprintf with snprintf
- s_misc.h: fixed compile warning with -Wunsuffixed-float-constants
- Fixed some compile warnings
- conf.h: removed MaskItem::hnext member
- Add ERR_CHANBANREASON (numeric 485)
- Remove current msg locale implementation
- Revert to -r1831
- 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
- Removed recently added m_svshost.c. Services may now change the host of a specific user via "SVSMODE <timestamp> <target> +x <hostname>"
- Cleanup/reorganize header file layout - Fixed naming convention in some places
- Replaced all occurrences of ircsprintf with sprintf/snprintf and killed sprintf_irc.(c|h)
- 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
- Fixed some other invalid conversion specifiers
- 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
- Forward-port -r1742 [ircd.pid should be in /var/run instead of /var]
- 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
- Improved WEBIRC authentication; added 'webirc' to auth::flags
- /info now also shows pathnames of g-/x-line database files
- conf_db.c: import backup/restore cleanups from 5.1.24
- 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
- add mempool.(c|h)
- 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
- minor MaskItem structure cleanup
- Finish stabilizing/cleanup of conf parser
- First pass of conf parser stabilization/cleanup
- More config subsystem cleanups
- 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
- flesh out new *line database handling - simplify temporary bans
- read_uint8, write_uint8: use uint8_t instead of unsigned char
- 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
- 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
bump patchlevel to 8.0.0
- Removed remnants of MFLG_UNREG which is no longer needed with the current implementation of message handlers
- 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
- bump patchlevel to 8.0.0rc1
- 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
bump patchlevel to 8.0.0beta3
- Removed all unused references to GPATH and glinefile. There's no glines.conf.
- Move HOSIPLEN, IDLEN and PASSWDLEN to ircd_defs.h
- Removed use_invex, use_except and use_knock configuration options. These features are now enabled by default
- removed serverhide::disable_hidden configuration option - update NEWS
- Add back AWAY throttling, now that we allow changing away messages without unsetting AWAY in the first place
- 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
- bump patchlevel to 8.0.0beta2
- must propagate UMODE_REGONLY to other servers, otherwise message-blocking won't work for remote clients
- 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
- Minor constification changes
- Merged m_away() and mo_away(). Also, /away is no longer time-limited. - Same goes for /list
- Don't allow m_module.la to be unloaded
- 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
- 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)
- parse.c: make msg_tree_parse() only take one argument - client.h: rearrange structures
bump version to 8.0.0beta1
- 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
- decrease HOSTIPLEN to 45 - fix some buffers that should use HOSTIPLEN+1
- 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
- s_bsd.c:close_connection(): fixed connection scheduling
- rename some struct AccessItem members
- 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.h: remove unused CONF_NOLIMIT definition
- remove operlog and logpath from config_file_entry structure
- 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.
- 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
- change back CLEANUP_TKLINES_TIME to 60 seconds
- cleanup temporary k/d/g line code
- Remove temporary RKLINES/RXLINES leftovers
- Cleanup hostmask.c. Make it use dlink list manipulation routines
- change KEYLEN semantics. KEYLEN no longer includes space for the trailing \0
- 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
- remove clear_tree_parse()
- cleanup and rewrite whowas.c to use the dlink list manipulation routines - increase NICKNAMEHISTORYLENGTH to 16384
- minor cleanups to the getopt code
- move conf_yy_input and conf_yy_fatal_error to conf_lexer.l - conf_lexer.l: replace a strcpy with strlcpy
- 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.
- increase IRCD_MAXNS to 3
- hostmask.c, rng_mt.c: avoid use of long int types
- Sort out unused ConfItem flags
- client.h: cleanup Client flags - send.h: remove unused prototypes
- 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
- 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
- remove unused variables
- s_serv.h: sort out unused CAPABS, remove unused capabtab[]
- minor cleanups and fixes to the new logging system - decrease LOG_BUFSIZE to 1024
- Killed include/m_info.h
- remove tls_version from server_info struct
- rsa.h: remove verify_private_key prototype
- 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
- 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
- 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
- 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
- remove AX_ENABLE_SYSLOG. This is now obsolete with the new logging subsystem
- added CIDR support for operator{} blocks - operator "name"{} is no longer supported
- Rewrite and cleanup half-broken logging subsystem. Logfile rotating is not working yet
- 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
- 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.
- remove unused dynlink_init() prototype
- rename mod_list to modules_list and make it static - remove now unused _modinit and _moddeinit prototypes
- Getting rid of rlimits.h. Relying on RLIMIT_NOFILE is more than enough nowadays
- remove now obsolete members of the module struct
- 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.
- remove RKLINE, aswell as RXLINE. Regular expression based x/k-lines should be added via ircd.conf only
- doxify client.h
- 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
- remove deprecated add_loacl_domain prototype
- 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
- 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
- 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
- Implemented SVSMODE
- UMODE_REJ goes to usermode 'j' - add UMODE_REGISTERED ('r') (registered nickname)
- preliminary services support
- create ircd-hybrid-8 "branch"
- recreate "trunk"
release time - bump patchlevel to 7.3.0
- add new channel modes O and S
- Style cleanups - Doxify hook.c
- fixed several compile warnings
- Improve multi-prefix client capability support
- Update NEWS file - Minor optimization to update_client_exit_stats close_connection - Move MaxConnectionCount/MaxClientCount to Counter struct
- 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)
- 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
- 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
- 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
bump patchlevel to rc1
- Move do_local_user to m_user.c
- Sort out unneeded arguments of some user registration functions
- move Client.serial to LocalUser struct
- remove old dot_in_ip6_addr configuration option. this is now obsolete.
Bump version to 7.3.0rc
- 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()
- fixed compile errors as reported by Peter Evans
- branch off trunk to create 7.3 branch
- move ircd-hybrid-7.2 to trunk
- 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
- 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
- doxyfy
- 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
- removed references to struct DNSReply
- 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.
- remove add_local_domain
- fix possible auth/dns related memleaks
- added a mersenne twister basedn prng
- avoid using native basename() since some implementations may or may not modify passed data
- added ssl_server_protocol configuration option to servinfo{}. valid flags are 'sslv3' and 'tlsv1'
- implement proper GUNGLINE support
- propset svn:keywords - remove simple.conf. example.conf.quick is good enough
- squash several compile warnings
- lp64\llp64\ilp32 portability fixes
- move m_error.c to modules/
- added protoype for modules_valid_suffix()
- fixed compile with compressed links
- 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
Completely redo the build system. Now uses libtool and automake. Suggest you clean out your tree and then do ./autogen.sh.
- Move etc/example.efnet.conf to etc/example.efnet.conf.in - Update configure.ac
- Added new 'server' option to listener::flags
- Major cleanup of build system (Stu should review this) Basically move shared stuff like help messages modules to datadir Try to keep to the original layout under prefix if --datadir --sysconfdir --localstatedir are not given - Make the example files have reasonable defaults, this bites me all the time anyway.
- Killed s_stats.c
- Got rid of Serv.dep_users and Serv.dep_servers
- on_allow_list and allow_list are no longer needed. Removed
- 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
svn propset svn:keywords
Backported WATCH
bump version to 7.2.3
- make 709 numeric work for dronemon
- Add +C - add etrace -full Reviewed by: cryogen, bear
- Fixed ban cache as reported by ThaPrince
bump version to 7.2.2
- Rebuilt configure using autoconf 2.60
- 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
+ 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.
- 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
- 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
- Removed dalloca.h
- 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
- 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
- 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.
- Backported add_connection() speedups
bump version to 7.2.1 (release)
- Can't use irccmp for qsort(), so let's use stricmp() when compiling on wins0x
- Removed unused struct DNSQuery pointer from Listener structure
- Fixed static build for m_cap() (fix doesn't need to get forward-ported to HEAD) - Added BS alias for BOTSERV
- 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.
- 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.
- 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)
- Fixed compile errors
- 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()
- Finish off TBURST (untested)
- propset svn:keywords "Id" modules/m_tburst.c - Added CAP_TBURST definition to get m_tburst.c compile
- Backported revision 315 (trimmed memory usage by moving invited dlink_list to LocalUser struct)
- bump patchlevel to 7.2.1beta - stub 7.2.1beta1 in RELNOTES and add BETA verbage
- bump patchlevel to 7.2.0 - update RELNOTES - bump version in specfile
- Fixed core on /modunload, /modrestart
MFC: + removed invite_ops_only, controlled by +p now + sorted ircd.conf:channel{} a bit
- 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
- CHANNELLEN vs. LOCAL_CHANNELLEN fix. Local JOINs are limited to 50chars whereas remote SJOINs/JOINs can be upto 200chars for backwards compatibility.
- 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
MFC: switch to static "SVN" string
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