summaryrefslogtreecommitdiff
path: root/src/fe-common/irc
AgeCommit message (Collapse)Author
2018-02-13Merge branch 'security' into 'master'Nei
Security See merge request irssi/irssi!34
2018-02-09try to make sure the server is still good enough to call ischannel when ↵ailin-nemui
printing netsplit/join
2018-01-28Revert more of the netsplit print optimisation to fix crashesdequis
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-25Check that server is still existent when using /operailin-nemui
2018-01-10revert netsplit print optimisationailin-nemui
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
2017-11-11Prevent a UAF error during the execution of some commandsLemonBoy
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-10-11Add alternate_nick as a network-specific property.Paul Townsend
2017-07-25Allow the user to clear the sasl-related fieldsLemonBoy
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-06-05fe-dcc-(get|send): Fix some -Wpointer-compare with newer gccdequis
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-03-10Merge branch 'netjoin-timeout' into 'master'Ailin Nemui
fe-netjoin: remove irc servers on "server disconnected" signal Closes #7 See merge request !10
2017-02-27fe-netjoin: remove irc servers on "server disconnected" signaldequis
2017-02-14Prevent some potential null-pointer deferences.LemonBoy
Spotted by our friend scan-build.
2017-01-02Merge pull request #586 from LemonBoy/fix-580ailin-nemui
Process the nick changes in queries before the PRIVMSG is handled.
2017-01-01Make sure SASL was actually requested before failing.LemonBoy
2016-12-15Prevent a UaF by calling server_disconnect in a signal handler.LemonBoy
2016-12-15Process the nick changes in queries before the PRIVMSG is handled.LemonBoy
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-12Expose 'sasl_success' to the perl side.LemonBoy
2016-12-12Add an option to stop the connection when SASL fails.LemonBoy
2016-11-23Don't shadow the 'channel' variable when printing the netjoins.LemonBoy
This is the root cause of #567
2016-11-23Minor corrections to the netsplit code.LemonBoy
2016-10-22Add x509 certificate and public key pinning support.Alexander Færøy
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-22Rename SSL to TLS.Alexander Færøy
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-11Merge pull request #465 from LemonBoy/netsplit-printailin-nemui
Some small adjustments to the netsplit code.
2016-08-24Set the default STATUSMSG to @ instead of @+ if it's missingdequis
This fixes two issues: - IRCNet doesn't have STATUSMSG, but it supports +channels, and including + in the default value meant processing those incorrectly - The "bahamut hack", for old servers that support but don't advertise STATUSMSG, didn't work since ischannel_func doesn't use the default. The choice of @ intentionally leaves out support for other STATUSMSG (for example, AzzurraNet's bahamut 1.4 fork seemed to support + and % in any order, contradicting the comment in the code). I think this is a decent tradeoff, given how those servers are uncommon and relying on +# or %# is even less common than @#. Fixes #531
2016-06-26Such draft. Very wow.LemonBoy
2016-06-26Avoid entering an endless loop while traversing the channel listLemonBoy
2016-06-26Some small adjustments to the netsplit code.LemonBoy
By making the signal handler hooked to the "print starting" event smarter we can avoid dumping the whole netsplit stats for every server/channel when a message arrives. Issue #420
2016-06-21use TRUE/FALSE in if statements for gbooleanJari Matilainen
2016-06-19Fix minor nitsJari Matilainen
2016-06-18Add command_set_options for modify commands to allow completionJari Matilainen
2016-06-18Let ADD still work as modifyJari Matilainen
2016-06-18Add /server modify SYNTAXJari Matilainen
2016-06-18Add /network modifyJari Matilainen
2015-12-09add missing file to Makefileailin-nemui
2015-11-09Use the PARAM_FLAG_STRIP_TRAILING_WS flag wherever possible.LemonBoy
2015-10-01Updated server removalisundil
Removing network will also remove attached channels
2015-10-01Fix #45 Make it easy to delete default channels, servers and networksisundil
Removing network will now also remove all attached servers
2015-09-29Make sure sasl settings are defined before printing them outJari Matilainen
2015-09-29Add sasl info to /network list output if availableJari Matilainen
2015-09-26Allow the user to set and modify the SASL parametersLemonBoy
The /NETWORK ADD command now is able to modify the SASL mechanism, the username and the password on a chatnet basis.
2015-09-22sig_message_irc_op_public: fix nickmode lookup, use cleantarget insteaddequis
2015-09-22Revert "Network and IPv{4,6} related changes"ailin-nemui
2015-09-22Merge pull request #290 from LemonBoy/ipv6ailin-nemui
Network and IPv{4,6} related changes
2015-09-22fe_channel_skip_prefix: fix return value (FALSE/NULL isn't valid)dequis
The return value is a char*, and here it was false which is 0 which is more or less the same as null. That could have been a crash somewhere, the functions that call this don't expect null ever.
2015-09-22Fix #291, "/msg +#channel incorrectly shows up as Nick:@#channel"dequis
Just passing the full target to the "message irc op_public" signal handler and letting it do the cleanup. The fe_channel_skip_prefix() call in event_privmsg() is kept because recode_in() needs a real channel name, but There was similar code in sig_message_own_wall(), but that one is correct - the /wall command always sends NOTICE @#chan, so I added a comment down there to make it clear.
2015-09-21Initial work to make irssi respect the resolved ip orderLemonBoy
Ip's aren't selected using random() anymore, also select the ip version by using getaddrinfo and some proper hints.
2015-09-21Use formats instead of g_warningLemonBoy
Add some copyright headers here and there too.
2015-09-18Add two missing #include "fe-irc-channels.h"dequis
Fixes #285
2015-09-09Move the function prototypes in a separate headerLemonBoy
2015-09-02Introduce some more chantypes awarenessLemonBoy