Commit graph

597 commits

Author SHA1 Message Date
ailin-nemui
1cdb4bc311 remove GTimeVal following glib 2.61.2 deprecation 2019-12-06 10:56:25 +01:00
dequis
664c38afba Fix some glib deprecation warnings
Most of these have been deprecated since forever (2.2), but they didn't
raise warnings. Now they do, and the warnings are not the most verbose
warnings you could ask for, but, they point in the right direction.

This doesn't handle the GTimeVal deprecation warnings. Those seem
trickier since they cover API, will look into those right after this.
2019-10-31 23:49:40 +01:00
Mike Quin
b7f165a609
Improve clarity of nick in use message
If irssi's preferred nick is in use irssi will issue a whois command and report some information
on the current user of the nick. As the "is owned by" wording can be confusing to users of networks
with nickname registration, propose rephrasing this to "is in use by".
2019-10-19 11:34:15 +01:00
ailin-nemui
145d1040ac add ignore check, emphasis and fix a memory leak 2019-10-11 22:37:09 +02:00
Dan Collins
7e694fd223 Fix hilight behavior for STATUSMSG
This patch allows irc_op_public messages to properly trigger
hilights when the message mentions the current nick or one of our
hilights. This is done by copying the required code from
sig_message_public. This is important because Freenode has begun
using this message type for messages that can only be seen by ops
due to the +z channel mode, and ops will want to be notified of
watchwords even in that type of message.

To test, make two connections to Freenode, join a new channel. The
first client to join that channel will be an op. To establish a
baseline, use the non-opped client to attempt to "ping" the opped
client by addressing it by name and using terms in /hilight. Then,
set channel mode to +mz and use the non-opped client to send the
messages again. Without this patch, no message will "ping" the opped
client with +mz set. With this patch, "pings" should operate
normally, causing a bell, hilighting the window number, and so on.

What I don't know is whether there is any other code from
sig_message_public that should be copied over too. In particular,
the lines related to "ignore_check_plus", "emphasis", and
"printnick", I don't know if they are needed here. I also don't know
if there are any other message types that these changes should be
    applied to.
2019-09-28 20:00:06 -04:00
ailin-nemui
b6f1bf8fcd fix autotools build 2019-08-15 21:44:33 +02:00
ailin-nemui
44d480ca99 use account-notify capability 2019-08-15 17:30:38 +02:00
ailin-nemui
4dbbbf47a4 add chghost capability support 2019-08-15 17:26:20 +02:00
ailin-nemui
5f13614d47 move away message to fe-common/core 2019-08-15 16:43:19 +02:00
ailin-nemui
61d215acdd support cap away-notify 2019-08-15 16:43:17 +02:00
ailin-nemui
e62e55c0ab show invites of other users when provided 2019-08-14 23:55:40 +02:00
ailin-nemui
25270e0465 use extended-join capability 2019-08-13 18:23:34 +02:00
ailin-nemui
6277ccf67f manually maintain irc loader 2019-07-18 18:04:42 +02:00
Ailin Nemui
00a7efc69f modularise irc component 2019-07-17 13:37:19 +02:00
Ailin Nemui
db16a0a853 meson build support 2019-07-10 09:25:26 +02:00
ailin-nemui
37f7c7f374 update include guard names 2019-05-01 22:22:22 +02:00
ailin-nemui
7e6e1f2e10 Use full paths to includes 2019-05-01 22:08:45 +02:00
Jacob V Rasmussen
d0bc5b8cf2 Update ssl_* to tls_* in syntax. 2019-04-01 17:52:39 +02:00
ailin-nemui
4eff3f154d
Merge pull request #959 from ailin-nemui/notice-routing
Route notices intended for channels into the channel
2018-10-08 18:18:54 +02:00
ailin-nemui
cdcb50f413 add a setting 2018-10-08 17:41:46 +02:00
ailin-nemui
80f9f16939 Show the proper TXT when topic was unset 2018-10-06 20:14:49 +02:00
ailin-nemui
08ac2ee5be refactor cnotice test into function 2018-10-05 16:13:47 +02:00
ailin-nemui
d2dbcc1999 Route notices intended for channels into the channel 2018-10-05 15:37:27 +02:00
ailin-nemui
57857856a6
Merge pull request #937 from ailin-nemui/hidden-ignores
correctly separate ignore flags (no_act, hidden) from level
2018-09-23 11:22:31 +02:00
ailin-nemui
7e9f8c694b simplify ignore hidden/no_act code 2018-09-17 12:48:42 +02:00
ailin-nemui
b9a274a81d correctly separate ignore flags (no_act, hidden) from level 2018-09-17 12:26:13 +02:00
ailin-nemui
c80946bcf5 Disconnect SASL properly in case the sasl module got unloaded from server
stops from getting on the network when sasl is unavailable

fixes #629
2018-09-04 15:50:58 +02:00
vague666
db3b671328 Added HIDDEN level to ignores 2018-06-05 15:29:40 +02:00
dequis
d0151fd5a2 Add fe-cap to show messages for CAP-related events in the UI
Replaces cap.pl
2018-04-08 01:26:11 -03:00
Nei
b0d9cb33cd Merge branch 'security' into 'master'
Security

See merge request irssi/irssi!34
2018-02-13 09:51:22 +00:00
ailin-nemui
5c5ed64180 try to make sure the server is still good enough to call ischannel when printing netsplit/join 2018-02-09 13:02:00 +01:00
dequis
a4f99ae746 Revert more of the netsplit print optimisation to fix crashes
Now iterating over all servers to avoid crashes on server_ischannel(),
which is a macro for server->ischannel(), so it dies horribly when it's
null. Doesn't help that IS_IRC_SERVER() always returns true on null.
2018-01-28 23:06:26 -03:00
ailin-nemui
0909d47e5b Check that server is still existent when using /oper 2018-01-25 16:11:31 +01:00
ailin-nemui
fa8508404f revert netsplit print optimisation
this reverts part of #465

unfortunately we need to further refine the initial patch

 - when filtering by channel, the whole split is cleaned up nevertheless
 - something similar happens for the netjoins
 - furthermore, we cannot wait only for PUBLIC msgs, j/p/q are equivalently relevant for temporal integrity
2018-01-10 20:12:04 +01:00
LemonBoy
7605f67f95 Prevent a UAF error during the execution of some commands
Some arguments were free'd first and then printed, leading to gibberish
being output to screen or a crash.

Found by Joseph Bisch.
Closes: !GL17
2017-11-11 12:37:51 +01:00
Paul Townsend
87955b69cb Add alternate_nick as a network-specific property. 2017-10-11 21:33:14 +01:00
LemonBoy
d971c02920 Allow the user to clear the sasl-related fields
There was no easy way for the user to disable the SASL authentication or
to clear the username/password once the network was created.
Closes #718
2017-07-25 22:53:33 +02:00
dequis
52bb06ccd9 fe-dcc-(get|send): Fix some -Wpointer-compare with newer gcc
The warning itself:

>warning: comparison between pointer and zero character constant [-Wpointer-compare]

Harmless stuff as far as I can tell.

The fix adds a null check that probably isn't needed. The old code that
compared against '\0' worked a lot like a null check so it makes sense
to keep that, while also adding the intended check for empty string.

This was visible with "/dcc close send a" showing an empty filename.
The equivalent for get didn't show the filename in the format string.
2017-06-05 15:58:43 -03:00
Ailin Nemui
77b2631c78 Merge branch 'netjoin-timeout' into 'master'
fe-netjoin: remove irc servers on "server disconnected" signal

Closes #7

See merge request !10
2017-03-10 17:18:18 +01:00
dequis
7c09b72848 fe-netjoin: remove irc servers on "server disconnected" signal 2017-02-27 23:43:37 -03:00
LemonBoy
98ead50b4e Prevent some potential null-pointer deferences.
Spotted by our friend scan-build.
2017-02-14 14:46:14 +01:00
ailin-nemui
91f48c6f0e Merge pull request #586 from LemonBoy/fix-580
Process the nick changes in queries before the PRIVMSG is handled.
2017-01-02 14:44:07 +01:00
LemonBoy
7e22d051ae Make sure SASL was actually requested before failing. 2017-01-01 23:08:38 +01:00
LemonBoy
7a7f6abc16 Prevent a UaF by calling server_disconnect in a signal handler. 2016-12-15 22:41:57 +01:00
LemonBoy
0d6add02cf Process the nick changes in queries before the PRIVMSG is handled.
Otherwise we end up with the message in the status window since the
frontend knows jack shit about the casemapping option when it tries to
find the associated window for the query.
2016-12-15 19:36:44 +01:00
LemonBoy
4ccffd85ff Expose 'sasl_success' to the perl side. 2016-12-12 21:41:07 +01:00
LemonBoy
91c9e871c7 Add an option to stop the connection when SASL fails. 2016-12-12 21:41:06 +01:00
LemonBoy
5f0e755a00 Don't shadow the 'channel' variable when printing the netjoins.
This is the root cause of #567
2016-11-23 22:22:37 +01:00
LemonBoy
7574bed26c Minor corrections to the netsplit code. 2016-11-23 16:11:38 +01: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