summary refs log tree commit diff stats
path: root/src/common/server.c
AgeCommit message (Collapse)Author
2022-01-17Log when the user specifies an invalid port.Sadie Powell
2022-01-17Fix handling invalid ports.Sadie Powell
Instead of wrapping around, which is not behaviour any reasonable user would expect, just use the default port if above 65535. Disallow connecting on port 0. This port has special meaning and servers can not listen on it. It is more likely the user just gave an invalid value to the port field as atoi("invalid") == 0.
2021-10-01win32: Update to OpenSSL 1.1Patrick Griffis
2021-08-24Be a bit less insulting about servers with longer line lengths.Sadie Powell
2021-08-23Remove some weird guesswork on the 004 numeric. (#2621)Sadie Powell
Bahamut and ircu both send 005 MODES and ELIST so this is entirely unnecessary. The other IRCd checked for here is for a dead network. While we're editing this code fix HexChat on servers that can only support one mode at a time (these are mostly gateway servers).
2021-07-12Avoid direct use of libproxyMichael Catanzaro
Since hexchat already depends on GLib, it's better to use GProxyResolver instead. This might use libproxy, or not, as appropriate. P.S. This removes a memory safety issue because proxy_list is allocated using malloc(), not g_malloc(), and therefore using g_strfreev() is incorrect. The proper way to free the proxy list returned by libproxy is to use px_proxy_factory_free_proxies() (but nobody does that because it was added in libproxy 0.4.16, which is somewhat recent).
2021-05-23Implement support for the IRCv3 account-tag specification. (#2572)Sadie Powell
Co-authored-by: Patrick <tingping@tingping.se>
2020-04-11Fixed proxy user/password buffer overflowDjLegolas
By using a dedicated buffer for sending the username and password for the SOCKS5 proxy, there will be no overflow when copying them to the buffer. And therefore, RFC 1929 is fully supported.
2020-01-01Avoid prioritising MODE queries for channels with hyphens in their nameJames Clarke
If a user has a large number of channels containing hyphens in their names, the initial MODE queries will have the same high priority as any PINGs, and so will block the PINGs from being sent, causing the connection to time out due to a lack of PONGs received.
2018-09-01Fix new stringop-truncation warningsPatrick Griffis
2018-08-16Fix inconsistent behavior (re)connecting on SSLIvan
2017-10-10Add an option to disable rejoin on auto reconnectIwan Aucamp
This change adds an option `irc_reconnect_rejoin` (default ON) which when turned OFF will prevent hexchat from rejoining channels after an auto reconnect. hexchat/hexchat#2069
2017-10-02Use g_utf8_make_valid if available for cleaner utf8 handling (#2065)Joseph Bisch
2016-08-27Fix building against openssl 1.1.0Patrick Griffis
Fixes #1759
2016-06-29Introduce and use fe_timeout_add_secondsBen Gamari
This should allow the operating system to be a bit more lax about timeouts, allowing more efficient power management.
2016-06-24Use constant instead of literal.Arnavion
2016-03-28identd: Fix ipv6 support on WindowsPatrick Griffis
2016-03-28identd: Fix respecting USE_GLOBAL network flagPatrick Griffis
2016-03-11Fix loading encoding from network list on connectPatrick Griffis
- Fix setting new encoding when switching networks - Ignore ports when looking for network by hostname - Only set UTF-8 when nothing explicitly set Fixes #1628
2016-02-19Fix possible overflowPatrick Griffis
2016-02-19Properly handle missing SSL certificateInsu Yun
According to OpenSSL document (https://www.openssl.org/docs/manmaster/ssl/SSL_get_verify_result.html), when using SSL_get_verify_result(), the existence of certificate needs to be checked. However, in current code, it does not. Therefore, certificate existence check is required for correctly handling the exception. Closes #1549
2016-01-29Remove DH-AES/DH-BLOWFISH mechanisms and misc cleanupPatrick Griffis
- AES and Blowfish mechanisms are deemed insecure and servers have removed support for them - Remove attempts to retry since we only support one mech - Handle SASL 3.2's new syntax for supported mechs
2016-01-29Add support for CAP 3.2Patrick Griffis
2015-09-11TLS: Set SNI hostname before connectmoparisthebest
2015-01-31Save iconv converters for input and output in the server.Arnavion
These are then used with g_convert_with_iconv instead of making it create a new iconv converter every time for the given from-to-encoding pairs.
2015-01-30ssl: Remove unused server codeTingPing
2015-01-18Detect unknown server encodings and set to UTF-8.Arnavion
2015-01-18Server line text-encoding-related fixes.Arnavion
- Handle server lines that contain sequences which are invalid in the server encoding. Previously, these would cause the whole line to be interpreted in ISO-8859-1, but now they're simply replaced with an appropriate replacement character. - Removed prefs.utf8_locale. - Change default server encoding from system locale to UTF-8. - Always populate server->encoding with a non-null value - UTF-8. Fixes #1198
2015-01-18Removed CP1255-specific handling of server lines.Arnavion
GLib's API is good enough now.
2015-01-18Removed legacy "IRC" encoding.Arnavion
2015-01-14Removed unimplemented, unused function.Arnavion
2014-12-30Rewrite identdTingPing
- Use gio (which is cross platform) - Properly support multiple users - Allow configuring port - Allow other plugins overriding
2014-12-28Remove option to disable ipv6TingPing
It has been default for a while, is the only tested option, and will only get more common.
2014-12-28Remove MSProxy supportTingPing
It's not enabled anywhere, certainly not maintained
2014-12-28Fix building as c89TingPing
2014-12-28Use glib for all allocationsTingPing
- Removes need to check for malloc failure - Removes need for NULL checks on free - Adds checks for integer overflows - Removes some extra memset calls - Removes chance of mixing libc and glib malloc/free
2014-12-15Remove some unnecessary if statementsTingPing
2014-12-15Fixed some more signed-unsigned-comparison warnings.Arnavion
2014-12-08Removed some unnecessary null-checks for calls to g_free and g_strfreevArnavion
2014-11-21ssl: Validate hostnamesTingPing
Closes #524
2014-11-05ssl: Don't use global openssl contextTingPing
Fixes #789
2014-07-18Use GNUC format attribute on print functionsCampbell Barton
Closes #1059
2013-09-07Implement BLOWFISh, AES, and EXTERNAL SASL mechanismsTingPing
Closes #657
2013-06-28Now inbound_cap_ls() can enable extensions when a bouncer uses a namespace forDiogo Sousa
the extension server-time.
2013-05-25Improved server_get_network(): if we don't have the current network in theDiogo Sousa
network list use the server name in received in event 005. (This fixes the problem that the network (%n) in the log file names would be "NETWORK" instead of the real network name (this happened if the network was not in the network list).)
2013-05-22Merge pull request #603 from orium/lag-meter-stuckTingPing
Fix an issue where the lag meter could get stuck after reconnect
2013-05-16Fix an issue where the lag meter would be stuck after a reconnect caused by aDiogo Sousa
ping timeout.
2013-05-14Fix warningsBerke Viktor
2013-05-14Fix initial autojoins and some erroneous copies/freesBerke Viktor
2013-05-12Fix favorite channels except in inbound.cBerke Viktor