commit
a767654908
16
irc.go
16
irc.go
@ -67,7 +67,7 @@ func (irc *Connection) readLoop() {
|
|||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errChan <- err
|
errChan <- err
|
||||||
break
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if irc.Debug {
|
if irc.Debug {
|
||||||
@ -129,8 +129,7 @@ func (irc *Connection) writeLoop() {
|
|||||||
select {
|
select {
|
||||||
case <-irc.end:
|
case <-irc.end:
|
||||||
return
|
return
|
||||||
default:
|
case b, ok := <-irc.pwrite:
|
||||||
b, ok := <-irc.pwrite
|
|
||||||
if !ok || b == "" || irc.socket == nil {
|
if !ok || b == "" || irc.socket == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -189,17 +188,15 @@ func (irc *Connection) pingLoop() {
|
|||||||
// Main loop to control the connection.
|
// Main loop to control the connection.
|
||||||
func (irc *Connection) Loop() {
|
func (irc *Connection) Loop() {
|
||||||
errChan := irc.ErrorChan()
|
errChan := irc.ErrorChan()
|
||||||
for !irc.stopped {
|
for !irc.quit {
|
||||||
err := <-errChan
|
err := <-errChan
|
||||||
if irc.stopped {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
irc.Log.Printf("Error, disconnected: %s\n", err)
|
irc.Log.Printf("Error, disconnected: %s\n", err)
|
||||||
for !irc.stopped {
|
for !irc.quit {
|
||||||
if err = irc.Reconnect(); err != nil {
|
if err = irc.Reconnect(); err != nil {
|
||||||
irc.Log.Printf("Error while reconnecting: %s\n", err)
|
irc.Log.Printf("Error while reconnecting: %s\n", err)
|
||||||
time.Sleep(1 * time.Second)
|
time.Sleep(60 * time.Second)
|
||||||
} else {
|
} else {
|
||||||
|
errChan = irc.ErrorChan()
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -217,6 +214,7 @@ func (irc *Connection) Quit() {
|
|||||||
|
|
||||||
irc.SendRaw(quit)
|
irc.SendRaw(quit)
|
||||||
irc.stopped = true
|
irc.stopped = true
|
||||||
|
irc.quit = true
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use the connection to join a given channel.
|
// Use the connection to join a given channel.
|
||||||
|
@ -42,6 +42,7 @@ type Connection struct {
|
|||||||
Log *log.Logger
|
Log *log.Logger
|
||||||
|
|
||||||
stopped bool
|
stopped bool
|
||||||
|
quit bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// A struct to represent an event.
|
// A struct to represent an event.
|
||||||
|
Loading…
Reference in New Issue
Block a user