IRCv3 Capability Negotiation

This adds the ability to negotiate arbitrary IRCv3 capabilities on
connection. Capabilities to be requested can be set in `irc.RequestCaps`,
and after registration the negotiated capabilities can be seen in
`irc.AcknowledgedCaps`.
This commit is contained in:
Russ Garrett
2017-01-25 17:36:15 +00:00
parent e1d00ae799
commit 744f1e3a7a
4 changed files with 86 additions and 27 deletions

View File

@@ -15,20 +15,22 @@ import (
type Connection struct {
sync.Mutex
sync.WaitGroup
Debug bool
Error chan error
Password string
UseTLS bool
UseSASL bool
SASLLogin string
SASLPassword string
SASLMech string
TLSConfig *tls.Config
Version string
Timeout time.Duration
PingFreq time.Duration
KeepAlive time.Duration
Server string
Debug bool
Error chan error
Password string
UseTLS bool
UseSASL bool
RequestCaps []string
AcknowledgedCaps []string
SASLLogin string
SASLPassword string
SASLMech string
TLSConfig *tls.Config
Version string
Timeout time.Duration
PingFreq time.Duration
KeepAlive time.Duration
Server string
socket net.Conn
pwrite chan string