Changeset 56 in code for trunk/downstream.go


Ignore:
Timestamp:
Feb 17, 2020, 11:41:27 AM (5 years ago)
Author:
contact
Message:

Add downstreamConn.writeMessages

This logic will become more complicated in upcoming commits.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/downstream.go

    r55 r56  
    4545        srv      *Server
    4646        logger   Logger
    47         messages chan<- *irc.Message
     47        messages chan *irc.Message
    4848
    4949        registered bool
     
    5656
    5757func newDownstreamConn(srv *Server, netConn net.Conn) *downstreamConn {
    58         msgs := make(chan *irc.Message, 64)
    5958        dc := &downstreamConn{
    6059                net:      netConn,
     
    6261                srv:      srv,
    6362                logger:   &prefixLogger{srv.Logger, fmt.Sprintf("downstream %q: ", netConn.RemoteAddr())},
    64                 messages: msgs,
     63                messages: make(chan *irc.Message, 64),
    6564        }
    6665
    6766        go func() {
    68                 for msg := range msgs {
    69                         if err := dc.irc.WriteMessage(msg); err != nil {
    70                                 dc.logger.Printf("failed to write message: %v", err)
    71                         }
     67                if err := dc.writeMessages(); err != nil {
     68                        dc.logger.Printf("failed to write message: %v", err)
    7269                }
    7370                if err := dc.net.Close(); err != nil {
     
    113110        }
    114111
     112        return nil
     113}
     114
     115func (dc *downstreamConn) writeMessages() error {
     116        for msg := range dc.messages {
     117                if err := dc.irc.WriteMessage(msg); err != nil {
     118                        return err
     119                }
     120        }
    115121        return nil
    116122}
Note: See TracChangeset for help on using the changeset viewer.