summaryrefslogtreecommitdiff
path: root/src/irc/core/irc-servers.h
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2016-07-03 22:02:02 -0700
committerKenny Root <kenny@the-b.org>2016-08-29 22:56:30 -0700
commit60d9ec621ff81ac68b9d2066fb77eaefc8d02ccb (patch)
treed0107dc604cdc7d0ec0af610928ef5073ead9df7 /src/irc/core/irc-servers.h
parentc8630acbafd6341cbf908ab7d011d87a8fd68b56 (diff)
downloadirssi-60d9ec621ff81ac68b9d2066fb77eaefc8d02ccb.zip
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.
Diffstat (limited to 'src/irc/core/irc-servers.h')
-rw-r--r--src/irc/core/irc-servers.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/irc/core/irc-servers.h b/src/irc/core/irc-servers.h
index 41c4b9c2..ecf65ac2 100644
--- a/src/irc/core/irc-servers.h
+++ b/src/irc/core/irc-servers.h
@@ -78,7 +78,8 @@ struct _IRC_SERVER_REC {
GSList *cap_queue; /* A list of caps to request on connection */
int cap_complete:1; /* We've done the initial CAP negotiation */
- guint sasl_timeout; /* Holds the source id of the running timeout */
+ GString *sasl_buffer; /* Buffer used to reassemble a fragmented SASL payload */
+ guint sasl_timeout; /* Holds the source id of the running timeout */
/* Command sending queue */
int cmdcount; /* number of commands in `cmdqueue'. Can be more than