Changes between and of Initial VersionVersion 3Ticket #3508


Ignore:
Timestamp:
05/14/2009 07:20:07 AM (5 years ago)
Author:
exarkun
Comment:

Beyond the issues teratorn pointed out, there are a number of issues with the attached code:

  • It uses Python 2.5 features; Twisted currently supports Python 2.3 and Python 2.4 as well.
  • It doesn't really have any error handling; raising exceptions whenever a problem is encountered will lead to exceptions being logged and connections being dropped, and not call the right connection lost/failed callbacks.
  • The code writes to standard out.
  • The point of extension is very unclear. None of the existing mechanisms are used in this code to let applications take advantage of this functionality.

Taken all together, I think this suggests that the shape of the original SocksiPy code isn't really suitable as a base for something to be included in Twisted.

It would be great to have a good SOCKS client in Twisted, so I'm not closing this, but I am going to adjust it to reflect the real goal.

The original description was:

I made a port of SocksiPy http://socksipy.sourceforge.net/ for Twisted. AFAIK Twisted doesn't have a SOCKS client protocol yet, only server

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #3508

    • Property Keywords socks removed
    • Property Summary changed from SocksiPy port for Twisted to Add a SOCKS client API
    • Property Milestone changed from regular-releases to
  • Ticket #3508 – Description

    initial v3  
    1 I made a port of SocksiPy http://socksipy.sourceforge.net/ for Twisted. AFAIK Twisted doesn't have a SOCKS client protocol yet, only server 
     1It is often useful and occasionally necessary to run an existing protocol through a SOCKS proxy.  Twisted should provide an API which is orthogonal to existing client factories and protocols which allows nearly arbitrary existing application code to communicate through such a proxy.  Perhaps this could take the form of a `WrappingFactory` and `ProtocolWrapper` pair or the form of an endpoint (or a combination of the two).