Changeset 315 in code for trunk/conn.go
- Timestamp:
- Jun 4, 2020, 3:27:57 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/conn.go
r314 r315 10 10 ) 11 11 12 // ircConn is a generic IRC connection. It's similar to net.Conn but focuses on 13 // reading and writing IRC messages. 14 type ircConn interface { 15 ReadMessage() (*irc.Message, error) 16 WriteMessage(*irc.Message) error 17 Close() error 18 SetWriteDeadline(time.Time) error 19 SetReadDeadline(time.Time) error 20 } 21 22 func netIRCConn(c net.Conn) ircConn { 23 type netConn net.Conn 24 return struct { 25 *irc.Conn 26 netConn 27 }{irc.NewConn(c), c} 28 } 29 12 30 type conn struct { 13 net net.Conn 14 irc *irc.Conn 31 conn ircConn 15 32 srv *Server 16 33 logger Logger … … 21 38 } 22 39 23 func newConn(srv *Server, netConn net.Conn, logger Logger) *conn {40 func newConn(srv *Server, ic ircConn, logger Logger) *conn { 24 41 outgoing := make(chan *irc.Message, 64) 25 42 c := &conn{ 26 net: netConn, 27 irc: irc.NewConn(netConn), 43 conn: ic, 28 44 srv: srv, 29 45 outgoing: outgoing, … … 36 52 c.logger.Printf("sent: %v", msg) 37 53 } 38 c. net.SetWriteDeadline(time.Now().Add(writeTimeout))39 if err := c. irc.WriteMessage(msg); err != nil {54 c.conn.SetWriteDeadline(time.Now().Add(writeTimeout)) 55 if err := c.conn.WriteMessage(msg); err != nil { 40 56 c.logger.Printf("failed to write message: %v", err) 41 57 break 42 58 } 43 59 } 44 if err := c. net.Close(); err != nil {60 if err := c.conn.Close(); err != nil { 45 61 c.logger.Printf("failed to close connection: %v", err) 46 62 } else { … … 72 88 } 73 89 74 err := c. net.Close()90 err := c.conn.Close() 75 91 c.closed = true 76 92 close(c.outgoing) … … 79 95 80 96 func (c *conn) ReadMessage() (*irc.Message, error) { 81 msg, err := c. irc.ReadMessage()97 msg, err := c.conn.ReadMessage() 82 98 if err != nil { 83 99 return nil, err
Note:
See TracChangeset
for help on using the changeset viewer.