Implement read timeouts - we should get a ping or other message at least once every ten minutes on every reasonable irc network.

configurable-file-paths
Robert Gerus 2015-11-09 00:50:25 +01:00
parent 62fa0b60c2
commit 4869d767be
1 changed files with 2 additions and 1 deletions

View File

@ -49,6 +49,7 @@ func (c *Connection) Sender() {
func (c *Connection) Receiver() {
log.Println(c.Network, "spawned Receiver")
for {
c.conn.SetReadDeadline(time.Now().Add(time.Second * 600))
raw, err := c.reader.ReadString(delim)
if err != nil {
log.Println(c.Network, "error reading message", err.Error())
@ -154,7 +155,7 @@ func (c *Connection) Setup(dispatcher func(chan struct{}, chan Message, chan Mes
}
func (c *Connection) Dial(server string) error {
conn, err := net.Dial("tcp", server)
conn, err := net.DialTimeout("tcp", server, time.Second*30)
if err != nil {
log.Println(c.Network, "Cannot connect to", server, "error:", err.Error())
return err