ircevent: add AllowTruncation
This commit is contained in:
parent
722fe286c9
commit
4b81d501cc
@ -351,7 +351,7 @@ func (irc *Connection) sendInternal(b []byte) (err error) {
|
||||
// Send a built ircmsg.Message.
|
||||
func (irc *Connection) SendIRCMessage(msg ircmsg.Message) error {
|
||||
b, err := msg.LineBytesStrict(true, irc.MaxLineLen)
|
||||
if err != nil {
|
||||
if err != nil && !(irc.AllowTruncation && err == ircmsg.ErrorBodyTooLong) {
|
||||
if irc.Debug {
|
||||
irc.Log.Printf("couldn't assemble message: %v\n", err)
|
||||
}
|
||||
|
@ -41,28 +41,29 @@ type capResult struct {
|
||||
|
||||
type Connection struct {
|
||||
// config data, user-settable
|
||||
Server string
|
||||
TLSConfig *tls.Config
|
||||
Nick string
|
||||
User string
|
||||
RealName string // IRC realname/gecos
|
||||
WebIRC []string // parameters for the WEBIRC command
|
||||
Password string // server password (PASS command)
|
||||
RequestCaps []string // IRCv3 capabilities to request (failure is non-fatal)
|
||||
SASLLogin string // SASL credentials to log in with (failure is fatal)
|
||||
SASLPassword string
|
||||
SASLMech string
|
||||
QuitMessage string
|
||||
Version string
|
||||
Timeout time.Duration
|
||||
KeepAlive time.Duration
|
||||
ReconnectFreq time.Duration
|
||||
MaxLineLen int // maximum line length, not including tags
|
||||
UseTLS bool
|
||||
UseSASL bool
|
||||
EnableCTCP bool
|
||||
Debug bool
|
||||
AllowPanic bool // if set, don't recover() from panics in callbacks
|
||||
Server string
|
||||
TLSConfig *tls.Config
|
||||
Nick string
|
||||
User string
|
||||
RealName string // IRC realname/gecos
|
||||
WebIRC []string // parameters for the WEBIRC command
|
||||
Password string // server password (PASS command)
|
||||
RequestCaps []string // IRCv3 capabilities to request (failure is non-fatal)
|
||||
SASLLogin string // SASL credentials to log in with (failure is fatal)
|
||||
SASLPassword string
|
||||
SASLMech string
|
||||
QuitMessage string
|
||||
Version string
|
||||
Timeout time.Duration
|
||||
KeepAlive time.Duration
|
||||
ReconnectFreq time.Duration
|
||||
MaxLineLen int // maximum line length, not including tags
|
||||
UseTLS bool
|
||||
UseSASL bool
|
||||
EnableCTCP bool
|
||||
Debug bool
|
||||
AllowPanic bool // if set, don't recover() from panics in callbacks
|
||||
AllowTruncation bool // if set, truncate lines exceeding MaxLineLen and send them
|
||||
|
||||
// networking and synchronization
|
||||
stateMutex sync.Mutex // innermost mutex: don't block while holding this
|
||||
|
Loading…
Reference in New Issue
Block a user