[tor-bugs] #14135 [Pluggable transport]: Incorrect SocksListener temporary error check

Tor Bug Tracker & Wiki blackhole at torproject.org
Wed Jun 24 08:57:01 UTC 2015


#14135: Incorrect SocksListener temporary error check
-------------------------------------+--------------------------
     Reporter:  adam-p               |      Owner:  dcf
         Type:  defect               |     Status:  needs_review
     Priority:  minor                |  Milestone:
    Component:  Pluggable transport  |    Version:
   Resolution:                       |   Keywords:  goptlib
Actual Points:                       |  Parent ID:
       Points:                       |
-------------------------------------+--------------------------

Comment (by dcf):

 What do you think about just not returning errors that happen post-Accept
 during SOCKS negotiation? Something like this:
 {{{
 #!diff
 --- a/socks.go
 +++ b/socks.go
 @@ -126,30 +126,31 @@ func (ln *SocksListener) Accept() (net.Conn, error)
 {
  //                     continue
  //             }
  //             go handleConn(conn)
  //     }
  func (ln *SocksListener) AcceptSocks() (*SocksConn, error) {
 +retry:
         c, err := ln.Listener.Accept()
         if err != nil {
                 return nil, err
         }
         conn := new(SocksConn)
         conn.Conn = c
         err = conn.SetDeadline(time.Now().Add(socksRequestTimeout))
         if err != nil {
                 conn.Close()
 -               return nil, err
 +               goto retry
         }
         conn.Req, err = readSocks4aConnect(conn)
         if err != nil {
                 conn.Close()
 -               return nil, err
 +               goto retry
         }
         err = conn.SetDeadline(time.Time{})
         if err != nil {
                 conn.Close()
 -               return nil, err
 +               goto retry
         }
         return conn, nil
  }

  // Returns "socks4", suitable to be included in a call to Cmethod.
 }}}

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/14135#comment:5>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list