title: General SOCKS server failure while using tor proxy
body: <p>I am proxying traffic over tor, so letter on when I need to call localhost port, it gives failure error.</p>
  
  <pre><code>def create_connection(self, address, timeout=None, source_address=None):
      sock = socks.socksocket()
      sock.connect(address)
      return sock
  
  def getVideoTrend(self):
  
      socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
      socket.socket = socks.socksocket
      socket.create_connection = self.create_connection
      #some code
      Mongo.SaveEntity()
  </code></pre>
  
  <p>SaveEntity contains:</p>
  
  <pre><code>hostname = 'localhost'
  port = 27017
  self.client = MongoClient(hostname, port)
  </code></pre>
  
  <p>which gives</p>
  
  <pre><code>  File "radurl.py", line 110, in getVideoTrend
      MongoDbOpp().saveEntity(final_result)    
    File "/root/Documents/scraping/radurls/mongo_operation.py", line 14, in __init__
      self.client = MongoClient(hostname, port)
    File "/usr/local/lib/python2.7/dist-packages/pymongo/mongo_client.py", line 377, in __init__
      raise ConnectionFailure(str(e))
  pymongo.errors.ConnectionFailure: 0x01: General SOCKS server failure
  </code></pre>
  
  <p><strong>I understand the reason behind this error, that mongo attempts to connect to local control port, gets proxied through a tor exit node.</strong></p>
  
  <p>Is there any solution to this prob?</p>
  
  <p>Or I can terminate tor session after before Mongo operation?</p>