Changeset 45 in code for trunk/upstream.go


Ignore:
Timestamp:
Feb 7, 2020, 11:42:24 AM (5 years ago)
Author:
contact
Message:

Close connection from writer goroutine

Connections were being closed from the reader goroutine, causing issues
when sending messages and immediately closing the connection.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/upstream.go

    r44 r45  
    7272                        }
    7373                }
     74                if err := conn.net.Close(); err != nil {
     75                        conn.logger.Printf("failed to close connection: %v", err)
     76                } else {
     77                        conn.logger.Printf("connection closed")
     78                }
    7479        }()
    7580
     
    8085        if c.closed {
    8186                return fmt.Errorf("upstream connection already closed")
    82         }
    83         if err := c.net.Close(); err != nil {
    84                 return err
    8587        }
    8688        close(c.messages)
     
    331333
    332334func (c *upstreamConn) readMessages() error {
    333         defer c.Close()
    334 
    335335        for {
    336336                msg, err := c.irc.ReadMessage()
     
    346346        }
    347347
    348         return c.Close()
    349 }
     348        return nil
     349}
Note: See TracChangeset for help on using the changeset viewer.