- client.c:exit_client(): documenting
- Bump copyright years
- Stylistical changes
- Replace WATCH with IRCv3.2 MONITOR
- Rename find_channel_link() to member_find_link()
- 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
- Move channel invitation related functions to channel_invite.c
- client.c: rename some occurrences of 'source_p' to 'client'
- Rename most occurrences of 'client_p' to 'client'
- 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.
- Replaced most occurences of 'SSL' with 'TLS'
- Bump copyright years everywhere
- Various 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
- client.c:exit_client(): add assert()
- client.c, server.c: use monotonic time for server connection cycle
- client.c:client_get_name(): remove outdated comments
- Killed CurrentTime
- 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
- Use monotonic time for client->connection->last_privmsg
- client.c:check_conf_klines(): skip dead clients on the unknown_list, too
- 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
- client.c:exit_client(): remove extraneous IsDead test. sendto_one() already does that.
- Update copyright years
- More bool conversion. This should be everything now.
- Make use of bool even more
- Make use of the bool data type in some places
- Backport ipcache and class cidr limits rewrite from trunk
- Style corrections
- Killed Connection::aftype. Use Client::ip.ss.ss_family instead.
- Killed userhost.c. Rewrote everything to use ipcache.c
- Move svstag related code into its own files
- Stylistic changes
- Stylistic changes
- Stylistic changes
- Rename some functions to comply with naming convention
- 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
- Rename attach_conf() -> conf_attach(), detach_conf() -> conf_detach(); clean up documentation
- Move close_connection() from s_bsd.c to client.c
- Rip out mempool
- 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.
- 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
- client.c:client_free(): set client_p->connection = NULL after freeing it
- client.c:exit_client(): added assert(); style correction
- client.c:exit_aborted_clients(): deduplicate
- client.c:client_free(): fixed compile error introduced by previous changes
- client.c:client_free(): sprinkle some assert()
- Update copyright years
- client.c, user.c: show the real host in client connect/exit notices
- Fixed style inconsistencies in various places
- Rename get_client_name() to client_get_name()
- client.c: stylistic changes
- 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
- Update copyright years
- Style corrections in several places
- Minor style corrections and constifications
- Get rid of clear_invites_channel() and clear_invites_client(). Use clear_invite_list() instead.
- 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.
- client.c:free_client(): fix broken assert()
- client.c:find_chasing(): remove useless cast
- Minor style cleanups & constification
- Remove excessive 'const'
- client_attach_svstag(): remove excessive 'const'
- client.c:exit_client(): improve user logging
- 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.
- Cleanup/separate XLINE / gecos{} conf implementation
- whowas_off_history(), pseudo_clear(), client_clear_svstags(): simplifications
- Constifications; style cleanups in some places
- Renamed MyCalloc to xcalloc
- Update copyright years
- client.c:get_client_name(): adjust size of 'buf'
- client.c:check_pings_list(): adjust size of 'buf'
- 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
- 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
- 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
- Removed CHALLENGE in favour or ssl certificate fingerprint enabled operator {} blocks
- Add dissect_time() from HOPM and make use of it in some places
- Change myctime() to use strftime() instead of ctime(); rename myctime() to date_ctime()
- Make use of enum in some places; make use of the HasFlag() macro some more; minor style corrections
- Rename functions in userhost.c to comply with naming convention
- 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.
- Remove splitmode checking
- Get rid of the IsRegistered() macro, which is a rather dangerous macro for coders who add new connection states
- Get rid of UMODE_ALL
- Make use of the *Flag() macros in some more places
- client.c:get_client_name(): minor documentation change
- Added 'xline_exempt' to auth{} block flags
- client.c:conf_try_ban(): use the proper conversion specifier
- client.c:conf_try_ban(): minor cleanups
- Renamed clear_invites() to clear_invites_channel() - Added separate clear_invites_client()
- Removed glines - Added kline_min_cidr, kline_min_cidr6, dline_min_cidr and dline_min_cidr6 configuration options - m_dline.c: allow d-lines to be added even if an exempt {} exists
- Mostly whitespace changes
- client.c: cleanup some comments
- client.c:make_client(): default client_p->account to '*'
- Sprinkle some assert()
- client.c: whitespace changes
- Finish basic SVSTAG implementatio - Added oper::whois configuration option which allows to override the default RPL_WHOISOPERATOR numeric string shown in /whois.
- Fixed style in several places
- Renamed idle_time_get() to client_get_idle_time()
- m_message.c: sanitize msg_client(); fixed some logic errors in the flooding code
- Update copyright years
- client.c: removed useless assert()s
- Style corrections; constifications
- Fixed compile warnings due to shadowed global variables on RHEL/maybe other distros
- general::hide_spoof_ips is now deprecated
- Get rid of NOCAPS
- Renamed variables; const correctness
- Style corrections; fixed comments
- Constification
- client.c, m_who.c: style corrections
- Renamed Client::svid to Client::account
- Renamed variables
- client.c:check_conf_klines(): removed useless !IsClient() test
- client.c:accept_message(): don't allow +G to override +g
- Renamed 'localClient' Client structure member to just 'connection'
- 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
- Renamed various variables
- Added listener_release() and make use of it
- Unset FLAGS_IPHASH on source_p in exit_client() when removing from ipcache
- Renamed structures to meet code conventions
- Moved all ip caching related code to ipcache.c
- Fixed typos all over the place
- client.c: cleaned up style; sprinkled some assert() statements
- Renamed serv_list to local_server_list
- Renammed global_serv_list to global_server_list
- Don't add/remove unregistered connections to/from global_client_list
- client.c:exit_one_client(): re-added test on source_p->node.next
- client.c:exit_one_client(): removed XXX; added an assert() just in case
- Merged Adam's event system rewrite
- Let mp_pool_get() clear memory
- 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{}
- client.c:get_client_name(): minor optimization
- client.c:free_client(): sanitize some weird looking assert()
- Create 8.2.x branch
- Moved files: s_user.c -> user.c s_misc.c -> misc.c s_serv.c -> server.c
- Moved s_auth.c to auth.c
- Made free_list_task() only take one parameter
- Clean up redundant/unused header includes
- 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)
- Style corrections all over the place
- 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.
- Get rid of the HasID() macro
- Get rid of the ID() macro
- Incorporate Adam's exit_client/quit storm cleanups Note: QS is mandatory now
- More client_p removal cleanups
- Minor corrections to -r3156 [Removed client_p pointers from everywhere]
- Get rid of halfop -> op rewriting for servers that don't support halfops
- Server now no longer accepts TS5 links
- Applied Adam's sendto_one_numeric() changes
- client.c:find_person(): fixed mismatching prototype as pointed out by Adam
- Clean up all files in include/ (fixed indentation, removed whitespaces/tabs) - Fixed copyright years
- 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.
- Fixed kline issue as reported by Andrei Hristow
- Avoid magically sized temporary buffers
- client.c: #include "parse.h"
- client.c:make_client(): make use of the SetUnknown() macro
- Optimized find_person()
- client.c:find_person(): completely disallow UID guessing as suggested by Adam <adam@anope.org>
- Got rid of find_kill() and find_gline() wrapper functions
- find_person(): fixed naming convention - find_chasing(): reduced required arguments
- find_accept(): solved XXX
- White-space commit / style corrections
- whowas: Renamed functions. add_history -> whowas_add_history off_history -> whowas_off_history get_history -> whowas_get_history
- Cleanups and fixes to previous commit -r2228
- Removed usermode +C
- Style correcions/white-space changes
- Fixed debug assertion being triggered on ident lookup as reported by Stuart Walsh
- Only show remote client exit notices if the server sent an EOB
- Added usermode F (remote client connect/exit notices) on public request
- Forward-port -r1920 [Dropped PCRE support]
- Constification, replaced few sprintf with snprintf
- 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
- Cleanup/reorganize header file layout - Fixed naming convention in some places
- 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
- Add support for "away-notify" client capability
- client.c: fixed another compile warning with --enable-assert
- 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
- 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
- More config subsystem cleanups
- Cleanup configuration subsystem - Fixed broken CIDR support for /challenge
- Initial rewrite of the configuration subsystem
- 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
- 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.
- 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 server hostmasking leftovers
- Removed two outdated/invalid XXX tags
- Made Client::away a fixed-size array at the expense of a somewhat higher memory consumption
- removed &localchannels
- free_client(): add some assert()
- 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.
- Change SHOW_IP, MASK_IP and HIDE_IP into an enum type - Removed unused CONF_SERVER_INFO_TLS_VERSION_* definition
- 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
- 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.
- Start cleaning up macros in client.h. Replace several ClientHasSomeCoolFlag() with simple HasFlag/HasUMode macros.
- 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.
- 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
- 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
- UMODE_REJ goes to usermode 'j' - add UMODE_REGISTERED ('r') (registered nickname)
- create ircd-hybrid-8 "branch"
- recreate "trunk"
- 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
- cleanup and sanitize m_server.c. remove hostmasking. Improve TS6 suppport
- branch off trunk to create 7.3 branch
- move ircd-hybrid-7.2 to trunk
- 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
- move list manipulation routines from tools.c to list.c - mem_frob() goes to memory.c - sort out redundant/unneeded header includes
- moved set_initial_nick() to m_nick.c
- fix possible auth/dns related memleaks
- 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
- change_local_nick(): No need to call clear_ban_cache() twice on source_p
Backported WATCH
- 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 ban cache as reported by ThaPrince
- ACCEPT fixes as reported by ThaPrince
- 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.
- report_error() expects two %s conversion specifiers as reported by ThaPrince. This function really should get rewritten at given time. It just confuses people.
- 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
- Soft caller ID fix as per ThaPrince (find_channel_link was called with wrong pointer)
- Backported revision 315 (trimmed memory usage by moving invited dlink_list to LocalUser struct)
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
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.