Changeset 103 in code for trunk/user.go
- Timestamp:
- Mar 16, 2020, 11:44:59 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/user.go
r101 r103 4 4 "sync" 5 5 "time" 6 7 "gopkg.in/irc.v3" 6 8 ) 9 10 type upstreamIncomingMessage struct { 11 msg *irc.Message 12 uc *upstreamConn 13 } 14 15 type downstreamIncomingMessage struct { 16 msg *irc.Message 17 dc *downstreamConn 18 } 7 19 8 20 type network struct { … … 41 53 net.user.lock.Unlock() 42 54 43 if err := uc.readMessages( ); err != nil {55 if err := uc.readMessages(net.user.upstreamIncoming); err != nil { 44 56 uc.logger.Printf("failed to handle messages: %v", err) 45 57 } … … 56 68 srv *Server 57 69 70 upstreamIncoming chan upstreamIncomingMessage 71 downstreamIncoming chan downstreamIncomingMessage 72 58 73 lock sync.Mutex 59 74 networks []*network … … 63 78 func newUser(srv *Server, record *User) *user { 64 79 return &user{ 65 User: *record, 66 srv: srv, 80 User: *record, 81 srv: srv, 82 upstreamIncoming: make(chan upstreamIncomingMessage, 64), 83 downstreamIncoming: make(chan downstreamIncomingMessage, 64), 67 84 } 68 85 } … … 120 137 } 121 138 u.lock.Unlock() 139 140 for { 141 select { 142 case upstreamMsg := <-u.upstreamIncoming: 143 msg, uc := upstreamMsg.msg, upstreamMsg.uc 144 if err := uc.handleMessage(msg); err != nil { 145 uc.logger.Printf("failed to handle message %q: %v", msg, err) 146 } 147 case downstreamMsg := <-u.downstreamIncoming: 148 msg, dc := downstreamMsg.msg, downstreamMsg.dc 149 err := dc.handleMessage(msg) 150 if ircErr, ok := err.(ircError); ok { 151 ircErr.Message.Prefix = dc.srv.prefix() 152 dc.SendMessage(ircErr.Message) 153 } else if err != nil { 154 dc.logger.Printf("failed to handle message %q: %v", msg, err) 155 dc.Close() 156 } 157 } 158 } 122 159 } 123 160
Note:
See TracChangeset
for help on using the changeset viewer.