Loop: catch reconnection errors; writeLoop: only log.Print if Debug

This commit is contained in:
joe 2013-09-25 23:37:11 -04:00
parent 14b5cb8b16
commit c10849b4c0
3 changed files with 15 additions and 3 deletions

13
irc.go
View File

@ -74,7 +74,9 @@ func (irc *Connection) writeLoop() {
break
}
irc.log.Printf("--> %s\n", b)
if irc.Debug {
irc.log.Printf("--> %s\n", b)
}
_, err := irc.socket.Write([]byte(b))
if err != nil {
irc.Error <- err
@ -120,7 +122,14 @@ func (irc *Connection) Loop() {
}
irc.log.Printf("Error: %s\n", err)
irc.Disconnect()
irc.Connect(irc.server)
for !irc.stopped {
if err = irc.Connect(irc.server); err != nil {
irc.log.Printf("Error: %s\n", err)
time.Sleep(1 * time.Second)
} else {
break
}
}
}
}

View File

@ -115,7 +115,9 @@ func (irc *Connection) setupCallbacks() {
irc.AddCallback("PONG", func(e *Event) {
ns, _ := strconv.ParseInt(e.Message, 10, 64)
delta := time.Duration(time.Now().UnixNano() - ns)
irc.log.Printf("Lag: %vs\n", delta)
if irc.Debug {
irc.log.Printf("Lag: %vs\n", delta)
}
})
irc.AddCallback("NICK", func(e *Event) {

View File

@ -12,6 +12,7 @@ import (
)
type Connection struct {
Debug bool
Error chan error
Password string
UseTLS bool