}
func (cl *Client) waitAccept() {
- cl.mu.Lock()
- defer cl.mu.Unlock()
for {
for _, t := range cl.torrents {
if t.wantConns() {
}
func (cl *Client) acceptConnections(l net.Listener, utp bool) {
+ cl.mu.Lock()
+ defer cl.mu.Unlock()
for {
cl.waitAccept()
+ cl.mu.Unlock()
conn, err := l.Accept()
conn = pproffd.WrapNetConn(conn)
+ cl.mu.Lock()
if cl.closed.IsSet() {
if conn != nil {
conn.Close()
} else {
acceptTCP.Add(1)
}
- cl.mu.RLock()
reject := cl.badPeerIPPort(
missinggo.AddrIP(conn.RemoteAddr()),
missinggo.AddrPort(conn.RemoteAddr()))
- cl.mu.RUnlock()
if reject {
acceptReject.Add(1)
conn.Close()