1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-29 06:16:40 +02:00
Commit Graph

111 Commits

Author SHA1 Message Date
LuK1337 8bd4994ccd core, relay: make inet_pton() return value checks more strict
inet_pton() can return values < 0.
2023-09-26 17:48:20 +02:00
LuK1337 0bb5998988 core: replace inet_addr() with inet_pton()
man pages as well as rpminspect suggest that we shouldn't be using
inet_addr().
2023-09-26 17:12:03 +02:00
Sébastien Helleu 481e8f197d core: use type "enum" in options 2023-07-08 13:29:45 +02:00
Sébastien Helleu ff2f94c12b core: replace SSL by TLS in comments (issue #1903) 2023-04-12 17:17:23 +02:00
Sébastien Helleu 33bba784c3 core: update copyright dates 2023-01-01 14:54:35 +01:00
Sébastien Helleu 6004139098 core: set again TLS verification functions after GnuTLS options are changed (closes #1763)
When changing the options weechat.network.gnutls_ca_system or
weechat.network.gnutls_ca_user, the GnuTLS credentials are freed then allocated
again, but the verification function used to check the certificate on
connection is not set again.

As a consequence, any TLS connection is made without checking the certificate.

This regression was introduced in version 3.2, when the options were changed to
automatically load system certificates without having to give the path, and to
let user give an extra custom path with certificates.
2022-03-13 18:04:07 +01:00
Sébastien Helleu c44b79dce7 core: update copyright dates 2022-01-17 18:41:06 +01:00
Sébastien Helleu 2225ac4e56 core: add option "certs" in command /debug 2021-06-17 21:51:18 +02:00
Sébastien Helleu 89e43eaf40 core: set server name when connecting to server with TLS (SNI extension) only if it's not an IPV4/IPv6 (closes #1635) 2021-05-16 14:52:11 +02:00
Sébastien Helleu c588ee21bc core: improve options to load GnuTLS system/user CAs (closes #972)
Changes:

* new option: weechat.network.gnutls_ca_system
* option weechat.network.gnutls_ca_file renamed to
  weechat.network.gnutls_ca_user
* reload certificates when options are changed
* remove build option CA_FILE
2021-05-12 20:39:40 +02:00
Sébastien Helleu 0f9640a5f3 core: split WeeChat home in 4 directories, use XDG directories by default (issue #1285)
The 4 directories (which can be the same):

- config: configuration files, certificates
- data: log/upgrade files, local plugins, scripts, xfer files
- cache: script repository, scripts downloaded (temporary location)
- runtime: FIFO pipe, relay UNIX sockets
2021-05-11 21:06:34 +02:00
Sébastien Helleu e5d18e1221 core: evaluate option weechat.network.gnutls_ca_file (issue #1285) 2021-05-11 21:05:42 +02:00
Sébastien Helleu e95fdc3a0a core: display a warning when the file with certificate authorities is not found (option weechat.network.gnutls_ca_file) 2021-05-04 20:37:15 +02:00
Sébastien Helleu efc7a588d6 core: update copyright dates 2021-01-02 21:34:16 +01:00
Sébastien Helleu 070eb3f7b0 core: increase buffer size in HTTP proxy connection
In case of long address/username/password, the HTTP CONNECT message could be
truncated.
2020-11-21 21:13:13 +01:00
Sébastien Helleu e130ee7358 core: make GnuTLS a required dependency 2020-04-18 11:34:59 +02:00
Sébastien Helleu feb6258910 core: update copyright dates 2020-01-04 10:41:26 +01:00
Sébastien Helleu 413aa499cc core: add documentation on command line debug options (in --help and man pages)
Command line debug options are now documented:

* --no-dlclose: do not call the function dlclose after plugins are unloaded
* --no-gnutls: do not call the init and deinit functions of GnuTLS library
* --no-gcrypt: do not call the init and deinit functions of Gcrypt library

These options must not be used in production, they're for debug only and can be
used with tools like Valgrind or electric-fence.
2019-03-31 23:53:54 +02:00
Sébastien Helleu 2b0057239b core: update copyright dates 2019-01-01 15:40:51 +01:00
Sébastien Helleu 342261d35b core: use https for all links where secured http is supported 2018-11-29 23:18:55 +01:00
Sébastien Helleu 4712d0bb06 core: use https for links to GNU GPL license 2018-11-29 23:16:07 +01:00
Sébastien Helleu d26380a9bb core: replace "Mac OS X" and "OS X" by "macOS" (issue #1272) 2018-11-18 11:04:29 +01:00
Sébastien Helleu ed3f281ba9 api: add functions string_base_{encode,decode}, remove functions string_{encode,decode}_base64 2018-11-04 14:49:11 +01:00
Sébastien Helleu 8848b0e22a api: return integer in function string_encode_base64 2018-11-02 14:09:23 +01:00
Simon Arlott 9aaea09b02 core: unhook TLS handshake fd before calling connect callback
When there are multiple addresses for a server and a TLS handshake failure
occurs, the next server in the list will connect and then timeout without
performing any TLS handshake.

This is because irc_server_close_connection closes server->sock so the next
pipe to be created reuses that fd, but the hook for the handshake fd still
exists when the next connection attempt is started.

The hook for network_connect_child_read_cb is never added because a hook
for the reused fd number still exists.

Resolve this by removing the handshake hook before calling the connect
callback.
2018-05-22 12:27:41 +01:00
Sébastien Helleu 7ee88fb46c core: fix some styles 2018-01-07 09:11:45 +01:00
Sébastien Helleu ed4837b2f6 core: update copyright dates 2018-01-05 00:54:18 +01:00
Sébastien Helleu 705d86e684 core: update copyright dates 2017-01-01 11:32:04 +01:00
Sébastien Helleu 6c1815d3d1 core, xfer: display more information on fork errors (issue #573) 2016-12-13 18:24:46 +01:00
Sébastien Helleu d6767b4ed6 api: fix crash in function network_connect_to() if address is NULL (issue #781) 2016-08-20 19:55:35 +02:00
Sébastien Helleu c2ea70c3e9 api: fix connection to servers with hook_connect() on Windows 10 with Windows subsystem for Linux (issue #770)
The test on socketpair() function is now made when hooks are
initialized (instead of doing the test at compilation time).
2016-08-19 20:06:04 +02:00
Sébastien Helleu 751769b49d core: irc, xfer: do not check return code of res_init()
If the call to res_init() fails, the connection may be OK anyway
or in worst case it will fail (with an appropriate error) if the name
can not be resolved.
2016-08-07 16:17:42 +02:00
Sébastien Helleu f695a79d9b core, irc, xfer: add missing includes for function res_init() 2016-08-07 16:15:59 +02:00
Raghavendra Prabhu 761c5e2d11 core/plugins: Use res_init before getaddrinfo.
With weechat, if the network changes in anyway that causes resolv.conf
to be updated, that is not picked up, resulting in

    irc: connecting to server XXXX.com/1026 (SSL)...
    irc: address "XXX.com" not found
    irc: error: Name or service not known
    irc: reconnecting to server in 30 seconds

This happens, especially when one connects to an irc server behind a
VPN.

This can also happen when there is no network connectivity weechat was started
but later network is connected to.

The fix is simple, it relies on calling  res_init (3) before getaddrinfo in
network_connect_child and other places.

res_init reloads the resolv.conf and getaddrinfo does not fail with
address resolution error.
2016-08-07 13:20:54 +01:00
Sébastien Helleu 7342a47de0 core, irc, xfer: display more information in memory allocation errors (issue #573) 2016-05-27 20:13:35 +02:00
Sébastien Helleu b9d427fc1f core: add missing pointer argument in calls to hook_connect callback 2016-03-22 07:25:25 +01:00
Sébastien Helleu cf6aca1619 core: add pointer in some callbacks (closes #406)
This pointer is the first argument received by callbacks, and the
existing argument "data" is now automatically freed by WeeChat when the
object containing the callback is removed.

With this new pointer, the linked list of callbacks in scripts has been
removed. This will improve speed of scripts (using a lot of hooks),
reduce memory used by scripts and reduce time to unload scripts.

Following functions are affected in the C API:

* exec_on_files
* config_new
* config_new_section
* config_new_option
* hook_command
* hook_command_run
* hook_timer
* hook_fd
* hook_process
* hook_process_hashtable
* hook_connect
* hook_print
* hook_signal
* hook_hsignal
* hook_config
* hook_completion
* hook_modifier
* hook_info
* hook_info_hashtable
* hook_infolist
* hook_hdata
* hook_focus
* unhook_all_plugin
* buffer_new
* bar_item_new
* upgrade_new
* upgrade_read
2016-03-21 18:11:21 +01:00
Sébastien Helleu 3330724574 core: update copyright dates 2016-01-01 11:09:53 +01:00
Sébastien Helleu 136da36d7a irc: add support of SNI in SSL connection to IRC server (closes #620) 2015-12-10 07:13:20 +01:00
Sébastien Helleu 3b2ee85b04 core: fix crash if a file descriptor used in hook_fd() is too high (> 1024 on Linux/BSD) (closes #465)
The calls to select() are replaced by poll(), which doesn't have limitation
on file descriptor number.
2015-07-18 20:03:34 +02:00
Sébastien Helleu 86886e311a core: fix format of comment 2015-07-17 19:46:53 +02:00
Sébastien Helleu 8d25cd5d34 core: fix compilation on Cygwin
The header sys/select.h is now required for select() function.
2015-05-01 09:54:07 +02:00
Sébastien Helleu 71dd64678c core: add comments after some #endif 2015-04-30 21:15:30 +02:00
Sébastien Helleu b0117f0d18 core: add gnutls version in #if compiler directives 2015-01-21 07:50:54 +01:00
Sébastien Helleu a020c28ea6 core: update copyright dates 2015-01-01 09:23:23 +01:00
Sebastien Helleu a4a4e2f38f core: fix compilation on SmartOS (bug #40981, closes #23) 2014-03-16 19:18:16 +01:00
Andrew Potter 144dc60d0a xfer: add support of IPv6 for DCC chat/file (patch #7992) 2014-01-09 12:48:54 +01:00
Sebastien Helleu 892aa79fb5 core: update copyright dates 2014-01-01 00:14:12 +01:00
Sebastien Helleu 2110c6d92e core: add support of secured data in proxy options username/password (evaluate content) 2013-09-19 15:12:04 +02:00
Sebastien Helleu a490195032 core: add secured data with optional encryption in file sec.conf 2013-07-27 12:57:08 +02:00