- Timestamp:
- Feb 18, 2020, 3:54:06 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/server.go
r64 r65 135 135 // TODO: retry connecting 136 136 go func() { 137 conn, err := connectToUpstream(u, upstream)137 uc, err := connectToUpstream(u, upstream) 138 138 if err != nil { 139 139 s.Logger.Printf("failed to connect to upstream server %q: %v", upstream.Addr, err) … … 141 141 } 142 142 143 conn.register()143 uc.register() 144 144 145 145 u.lock.Lock() 146 u.upstreamConns = append(u.upstreamConns, conn)146 u.upstreamConns = append(u.upstreamConns, uc) 147 147 u.lock.Unlock() 148 148 149 if err := conn.readMessages(); err != nil { 150 conn.logger.Printf("failed to handle messages: %v", err) 151 } 149 if err := uc.readMessages(); err != nil { 150 uc.logger.Printf("failed to handle messages: %v", err) 151 } 152 uc.Close() 152 153 153 154 u.lock.Lock() 154 for i , c:= range u.upstreamConns {155 if c == conn{155 for i := range u.upstreamConns { 156 if u.upstreamConns[i] == uc { 156 157 u.upstreamConns = append(u.upstreamConns[:i], u.upstreamConns[i+1:]...) 157 158 break … … 177 178 } 178 179 179 conn:= newDownstreamConn(s, netConn)180 dc := newDownstreamConn(s, netConn) 180 181 go func() { 181 182 s.lock.Lock() 182 s.downstreamConns = append(s.downstreamConns, conn)183 s.downstreamConns = append(s.downstreamConns, dc) 183 184 s.lock.Unlock() 184 185 185 if err := conn.readMessages(); err != nil { 186 conn.logger.Printf("failed to handle messages: %v", err) 187 } 186 if err := dc.readMessages(); err != nil { 187 dc.logger.Printf("failed to handle messages: %v", err) 188 } 189 dc.Close() 188 190 189 191 s.lock.Lock() 190 for i , c:= range s.downstreamConns {191 if c == conn{192 for i := range s.downstreamConns { 193 if s.downstreamConns[i] == dc { 192 194 s.downstreamConns = append(s.downstreamConns[:i], s.downstreamConns[i+1:]...) 193 195 break
Note:
See TracChangeset
for help on using the changeset viewer.