65 Commits

Author SHA1 Message Date
Ailin Nemui
db2fed0d38 fix reconnect to use tls settings 2021-04-08 21:55:35 +02:00
Shivaram Lingamneni
7d44964dcd fix #641
Track the address family of the last failed connection attempt
(either immediately or during TLS handshake), then disprefer
that address family during reconnection.
2019-12-09 22:48:56 -05:00
Will Storey
34effcec01 Fill more connection information in one spot 2019-10-12 15:46:42 -07:00
Will Storey
1639425217 Do not copy TLS settings to reconnection record
This was causing us to use the TLS settings from one server on another
which is not always appropriate. Instead, we now treat it like other
connection information and do not copy it. We get the TLS settings later
as appropriate when connecting.

Note there is still probably more that could be cleaned up here. For
example, the unix socket might be better treated as connection info too.

Fixes #1027.
2019-10-12 15:46:42 -07:00
Will Storey
4476fbbad9 Fix indentation 2019-10-12 15:46:39 -07:00
ailin-nemui
7e6e1f2e10 Use full paths to includes 2019-05-01 22:08:45 +02:00
ailin-nemui
c08685a1a3 also reconnect lookup_servers 2018-03-29 23:24:13 +02:00
Alexander Færøy
5146ce9631
Add x509 certificate and public key pinning support.
This patch adds two new options to /CONNECT and /SERVER to let the user
pin either an x509 certificate and/or the public key of a given server.

It is possible to fetch the certificate outside of Irssi itself to
verify the checksum. To fetch the certificate call:

    $ openssl s_client -connect chat.freenode.net:6697 < /dev/null 2>/dev/null | \
      openssl x509 > freenode.cert

This will download chat.freenode.net:6697's TLS certificate and put it into the
file freenode.cert.

-tls_pinned_cert
----------------

This option allows you to specify the SHA-256 hash of the x509
certificate. When succesfully connected to the server, irssi will verify
that the given server certificate matches the pin set by the user.

The SHA-256 hash of a given certificate can be verified outside of irssi
using the OpenSSL command line tool:

    $ openssl x509 -in freenode.cert -fingerprint -sha256 -noout

-tls_pinned_pubkey
------------------

This option allows you to specify the SHA-256 hash of the subject public key
information section of the server certificate. This section contains both the
cryptographic parameters for the public key, but also information about the
algorithm used together with the public key parameters.

When succesfully connected to the server, irssi will verify that the
given public key matches the pin set by the user.

The SHA-256 hash of a public key can be verified outside of irssi using
the OpenSSL command line tool:

    $ openssl x509 -in freenode.cert -pubkey -noout | \
      openssl pkey -pubin -outform der | \
      openssl dgst -sha256 -c | \
      tr a-z A-Z

It is possible to specify both -tls_pinned_cert and -tls_pinned_pubkey
together.
2016-10-22 22:01:50 +02:00
Alexander Færøy
2be7289085
Rename SSL to TLS.
This patch changes the internal name of SSL to TLS. We also add -tls_*
options to /CONNECT and /SERVER, but make sure that the -ssl_* versions
of the commands continue to work like before.
2016-10-22 20:36:50 +02:00
dequis
9ea155f8df servers-reconnect: pass unix_socket attribute to new connection
Trying to /reconnect unix sockets turned them into inet.
2016-06-12 20:28:06 -03:00
dequis
f540ec9de1 Fix /reconnect RECON-1 saying "Reconnection tag 1 not found"
Turns out it was fixing the wrong string, and trying to do
atoi("RECON-1") instead of atoi("1").

"/reconnect 1" worked, but "/reconnect RECON-1" gave that confusing
error message.
2015-10-08 00:06:17 -03:00
ailin-nemui
f5f3d7cc98 Revert "Network and IPv{4,6} related changes" 2015-09-22 21:59:17 +02:00
LemonBoy
ffaa890e99 Initial work to make irssi respect the resolved ip order
Ip's aren't selected using random() anymore, also select the ip version
by using getaddrinfo and some proper hints.
2015-09-21 14:19:35 +02:00
Alexander Færøy
03be2861dc Merge pull request #235 from dequis/g_strcmp0
Change all strcmp() to g_strcmp0() to handle nulls gracefully
2015-04-17 21:13:18 +02:00
Haw Loeung
50e955e342 ssl: Add option to specify SSL cipher suite preference. 2015-04-14 18:07:35 +10:00
dequis
f14199d9c1 Change all strcmp() to g_strcmp0() to handle nulls gracefully
Just a string replacement (but i did check every one of them)

    sed -i 's/strcmp(/g_strcmp0(/g' **/*.c
2015-04-07 22:41:05 -03:00
Guillaume BROGI
86d263dd7d Check for unix sockets when reconnecting 2014-12-03 14:38:01 +01:00
David Hill
0d4f13d20f Replace deprecated g_str[n]casecmp with g_ascii_str[n]cmp. 2014-06-10 12:06:19 -04:00
Alexander Færøy
796134ffbd Add -noautosendcmd to /SERVER and /CONNECT.
Passing this option will force Irssi to not execute the content of the
autosendcmd chatnet-setting upon connect.

Fixes: #738


git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5209 dbcabf3a-b0e7-0310-adc4-f8d773084564
2011-11-21 21:27:58 +00:00
Jilles Tjoelker
6e1d887a7a Ignore DNS not found errors when considering reconnect.
Contrary to the standards, these are often transient.


git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4873 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-08-25 16:34:02 +00:00
Emanuele Giaquinta
72930e0be3 Use g_ascii_str{,n}casecmp for case insensitive comparison with
ascii only strings.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4739 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-03-09 12:17:55 +00:00
Emanuele Giaquinta
7df46597e1 Use g_ascii_str{,n}casecmp for case insensitive comparison with
ascii only strings.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4738 dbcabf3a-b0e7-0310-adc4-f8d773084564
2008-03-09 12:01:16 +00:00
Jilles Tjoelker
1f009670a1 Apply patch from bug #202 (from "Irssi Fan"); when calling
reconnect_save_status() for a server that has not sent 001
yet, do not free and reallocate conn->channels twice, and do
not copy the channels if server->connrec->no_autojoin_channels
is set. It seems a special case because reconnect_save_status()
is not usually called for servers that have not sent 001
yet, but it can't really hurt.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4532 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-30 21:18:22 +00:00
Wouter Coekaerts
9c2d621cc6 Oops. Update address correctly now.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4490 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-08 18:41:10 +00:00
Wouter Coekaerts
023026e12b Update FSF address
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4489 dbcabf3a-b0e7-0310-adc4-f8d773084564
2007-05-08 18:16:58 +00:00
Wouter Coekaerts
bd8712dde1 Fix memleak in several commands that used cmd_return_error when they should be using cmd_param_error, by Toby Peterson (Bug 213)
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3715 dbcabf3a-b0e7-0310-adc4-f8d773084564
2005-03-06 18:45:47 +00:00
Timo Sirainen
ca20209ce2 reverted the username/realname keeping with /reconnect. it was broken.
fixing it properly would need to keep track of if the username/realname
came from /ircnet -username or /server add -username or what..


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3228 dbcabf3a-b0e7-0310-adc4-f8d773084564
2004-03-03 16:57:53 +00:00
Timo Sirainen
e980500702 Say when we're reconnecting, and mention it can be aborted with /RMRECONNS
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3204 dbcabf3a-b0e7-0310-adc4-f8d773084564
2004-01-19 17:52:08 +00:00
Timo Sirainen
623dbac5cf Don't try to keep user_name/real_name with /reconnect. They couldn't have
been overridden with /server command anyway, so we most likely never want to
keep it.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3203 dbcabf3a-b0e7-0310-adc4-f8d773084564
2004-01-19 17:40:58 +00:00
Timo Sirainen
43b0d36ee1 Support for sending SSL certificate to server and optionally verify server's
certificate. See the -ssl_* options for /SERVER and /SERVER ADD. Patch by
Joel Eriksson <je-irssi@bitnux.com>.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3146 dbcabf3a-b0e7-0310-adc4-f8d773084564
2003-11-16 17:53:55 +00:00
Timo Sirainen
bd6fe052bc Added time, size and level setting types. Breaks some settings - I'll add
automatic converter to these settings later. Meanwhile you CVS users can
fix your config files yourself :)

Time settings allow using "days", "hours", "minutes", "seconds" and
"milliseconds" or several of their abbreviations. For example "5d 4h
5msecs".

Size settings allow using "gbytes", "mbytes", "kbytes" and "bytes" or their
abbrevations. For example "5MB".

Level settings are currently handled pretty much the way they were before.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3080 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-12-28 17:54:13 +00:00
Timo Sirainen
e4accf9c80 Timeout server connections if they're not in fully connected stage in /SET
server_connect_timeout seconds.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3013 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-11-19 11:55:36 +00:00
Timo Sirainen
fa1687596c updated /reconnect syntax.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2953 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-10-14 15:58:47 +00:00
Timo Sirainen
b0896601c5 /RECONNECT <tag>|* [<quit message>] - if tag is a connected server tag that
server is reconnected with specified quit message.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2952 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-10-14 15:58:22 +00:00
Timo Sirainen
525773aa80 If reconnection was aborted by trying to reconnect to another server, the
channels and usermode wasn't restored.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2934 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-09-30 21:43:46 +00:00
Timo Sirainen
910749a2a0 banned/dns_error state was set to servers in setup, but never reset, which
means irssi stopped reconnecting to those servers forever if they occured
once.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2910 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-09-07 17:13:00 +00:00
Timo Sirainen
1539cf81f3 Added OpenSSL support by vjt@users.sf.net. Also fixes a possible crash after
using /SERVER ADD -ircnet.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2890 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-08-26 19:32:15 +00:00
Timo Sirainen
4aa0b9111e /UPGRADE was broken, changed again the server connection code.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2821 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-05-20 04:12:12 +00:00
Timo Sirainen
52fee01584 if /CONNECT -! ircnet couldn't connect to first server, next was tried but
-! was forgotten.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2653 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-04-03 14:08:52 +00:00
Timo Sirainen
92eaf0dc9a Never reconnect immediately to server when server is being disconnected -
this could lead scripts (or maybe even irssi itself) handle the partially
disconnected server wrong. Also moved the server->disconnected = TRUE before
the "server disconnected" signal is sent, this makes sure the
server_disconnect() is never called twice.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2339 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-01-22 21:04:04 +00:00
Timo Sirainen
0157d234f8 Added /SET proxy_string_after setting which gets sent after NICK/USER, bnc
wants this.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2338 dbcabf3a-b0e7-0310-adc4-f8d773084564
2002-01-22 20:29:45 +00:00
Timo Sirainen
6be1390303 /UPGRADE broke reconnections to server.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2204 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-12-06 23:05:54 +00:00
Timo Sirainen
5524f89d71 /UPGRADE shouldn't begin server reconnections in old client.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2176 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-12-01 20:23:48 +00:00
Timo Sirainen
5347d24e61 Doing /RECONNECT while server was still being connected to, irssi
didn't disconnect the server so you ended up having two connections.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2139 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-11-25 15:05:38 +00:00
Timo Sirainen
06435bea22 /RECONNECT ALL crashed irssi (typofix - s/unref/ref/ :)
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1959 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-11-03 12:58:36 +00:00
Timo Sirainen
1256621041 Added reference counter to SERVER_CONNECT_REC. Since it's being moved around
a lot in reconnects etc. this should make it easier to track when it's
supposed to be destroyed. Hopefully fixes a crash I assume is related to
this but couldn't find..


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1880 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-10-21 13:59:07 +00:00
Timo Sirainen
53975363ce Using different ports in one server for different chat networks didn't work
properly.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1580 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-06-27 21:47:31 +00:00
Timo Sirainen
7773aabb2c Try to keep the number after server tag always the same when there's
multiple connections to the same server.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1540 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-06-08 21:19:08 +00:00
Timo Sirainen
ae6d2014e5 added /SET proxy_password
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1414 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-03-20 23:24:45 +00:00
Timo Sirainen
885e7fa0ec Reconnecting shouldn't lose the address family.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1383 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-03-14 22:36:04 +00:00