Age | Commit message (Collapse) | Author |
|
|
|
|
|
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
|
|
We also get rid of an allocation in the process of doing so.
|
|
|
|
Follow g_strsplit with call to g_strfreev
|
|
|
|
|
|
Sync to master
See merge request !6
|
|
'security'
avoid server_disconnect
See merge request !4
|
|
Process the nick changes in queries before the PRIVMSG is handled.
|
|
Closes #1
|
|
Closes #4
|
|
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.
|
|
|
|
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.
|
|
Fixes a problem where the field would end up as a negative number when
exposed to the perl scripts.
And move it near the other bit-packed fields so we take advantage of the
packing.
|
|
SASL: handle fragmentation
|
|
The IRCv3 SASL extension says that AUTHENTICATION payloads of exactly
400 bytes in length indicate that the message is fragmented and will
continue in a subsequent message. Handle the reassembly and splitting of
these messages so that we are compliant with the specification.
|
|
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
|
|
Clean up misc.c
|
|
|
|
|
|
|
|
The only difference was that the former returned 1 if the buffer was
overflown, but the return value was never checked.
|
|
There's a typo in 'sasl_fail', the signal that's emitted should be
'server sasl failure' and not 'server sasl fail'.
|
|
This reverts commit 4beebe3238dda96efd4c3a0a6f6002ad5afc96e7.
|
|
Do not assume any default value for statusmsg.
|
|
If sasl_timeout is never initialized with a valid timeout id then
calling /disconnect on the server calls g_source_remove() with 0 as tag,
causing an harmless error message to be printed.
Beside that, the sasl_timeout field is defined as a unsigned int.
We can use 0 as sentiel since g_timeout_add returns tags that are always
greater than zero.
|
|
|
|
If the server didn't send it then just skip the check, the old value it
defaulted to was possibly overlapping with the CHANTYPES leading to an
incorrect behaviour. Fixes #435.
|
|
|
|
The "AUTHENTICATE" command is always required – it's part of the IRCv3
SASL framing. RFC 4422 only documents the Base64 payload.
|
|
|
|
As per #175 if a -botcmd is specified for a given channel without a
-bots parameter then the command is sent right after joining the
channel.
|
|
/knockout uses /ban to set bans but calls ban_remove() directly to
remove them. This commit makes it use /unban instead. This allows
scripts that hook ban/unban to work automatically with /knockout.
|
|
|
|
Turns out it confuses inspircd, making it reply a NAK with empty
parameter. The rest is ACKed anyway. I've already whined at saberuk
and there's a pending pull request over there fixing this issue.
And, of course, this is cleaner.
|
|
Use the same approach used in 'irc_channels_join'.
Remove 'irc_nick_strip' since it was unused.
|
|
|
|
|
|
Save the sasl state in the session
|
|
Thanks to Jilles and dx.
Fixes #309
|
|
Fixes FS#919
|
|
This is seemingly required to have irssi re-authenticate after a
restart.
|
|
Allow the user to set and modify the SASL parameters
|
|
The /NETWORK ADD command now is able to modify the SASL mechanism, the
username and the password on a chatnet basis.
|
|
Turns out event_names_list() in irc-nicklist.c already handles this.
event_who() just ignores it, which is probably a good idea since some of
the irc servers I tested this with have a bug that results in sending
multiple prefixes in the NAMES reply but not in the WHO one (they were
forks of ircd-hybrid before 7.3.0)
And NAMES always happens, anyway. WHO is omitted sometimes for huge
channels.
|
|
Add expandos for hostname
|
|
SASL support
|