Documentation
¶
Overview ¶
Package ircutils provides small, useful utility functions and classes.
This package is in an alpha stage.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrSASLLimitExceeded = errors.New("SASL total response size exceeded configured limit") ErrSASLTooLong = errors.New("SASL response chunk exceeded 400-byte limit") )
var TruncateUTF8Safe = ircmsg.TruncateUTF8Safe
Functions ¶
func EncodeSASLResponse ¶ added in v0.5.0
EncodeSASLResponse encodes a raw SASL response as parameters to successive AUTHENTICATE commands, as described in the IRCv3 SASL specification.
func HostnameIsValid ¶
HostnameIsValid provides a way for servers to check whether a looked-up client hostname is valid (see InspIRCd #1033 for why this is required).
This function shouldn't be called by clients since they don't need to validate hostnames for IRC use, just by servers that need to confirm hostnames of incoming clients.
In addition to this function, servers should impose their own limits on max hostname length -- this function limits it to 200 but most servers will probably want to make it smaller than that.
func SanitizeText ¶
Sanitizes human-readable text to make it safe for IRC; assumes UTF-8 and uses the replacement character where applicable.
Types ¶
type SASLBuffer ¶ added in v0.5.0
type SASLBuffer struct {
// contains filtered or unexported fields
}
SASLBuffer handles buffering and decoding SASL responses sent as parameters to AUTHENTICATE commands, as described in the IRCv3 SASL specification. Do not copy a SASLBuffer after first use.
func NewSASLBuffer ¶ added in v0.5.0
func NewSASLBuffer(maxLength int) *SASLBuffer
NewSASLBuffer returns a new SASLBuffer. maxLength is the maximum amount of base64'ed data to buffer (0 for no limit).
func (*SASLBuffer) Add ¶ added in v0.5.0
func (b *SASLBuffer) Add(value string) (done bool, output []byte, err error)
Add processes an additional SASL response chunk sent via AUTHENTICATE. If the response is complete, it resets the buffer and returns the decoded response along with any decoding or protocol errors detected.
func (*SASLBuffer) Clear ¶ added in v0.5.0
func (b *SASLBuffer) Clear()
Clear resets the buffer state.
func (*SASLBuffer) Initialize ¶ added in v0.5.0
func (b *SASLBuffer) Initialize(maxLength int)
Initialize initializes a SASLBuffer in place.