Exemple #1
0
class _ShimServerProtocol(Protocol):
    _shim = None
    _socks_port = None
    _buf = None
    _client = None
    _factory = None

    connector = None

    def __init__(self, factory, shim, socks_port):
        self.factory = factory
        self._shim = shim
        self._socks_port = socks_port
        self._buf = Buffer()

    def connectionMade(self):
        log.warning('[shim]: making client connection')
        ep = TCP4ClientEndpoint(reactor, '127.0.0.1', self._socks_port)
        f = _ShimClientFactory(self._shim, self)
        d = ep.connect(f)
        d.addCallback(self.notifyConnector)
        d.addErrback(self.onConnectFailed)

    def notifyConnector(self, connector):
        self.connector = connector
        self._shim.setConnector(self.connector)

    def onConnectFailed(self, e):
        log.warning('[shim]: client connect failed: %s', e)

    def dataReceived(self, data):
        if self._client:
            self._client.writeToSocksPort(data)
        else:
            self._buf.write(data)

    def writeToClient(self, data):
        if data:
            self.transport.write(data)
Exemple #2
0
class _ShimServerProtocol(Protocol):
    _shim = None
    _socks_port = None
    _buf = None
    _client = None
    _factory = None

    connector = None

    def __init__(self, factory, shim, socks_port):
        self.factory = factory
        self._shim = shim
        self._socks_port = socks_port
        self._buf = Buffer()

    def connectionMade(self):
        ep = TCP4ClientEndpoint(reactor, '127.0.0.1', self._socks_port)
        f = _ShimClientFactory(self._shim, self)
        d = ep.connect(f)
        d.addCallback(self.notifyConnector)
        d.addErrback(self.onConnectFailed)

    def notifyConnector(self, connector):
        self.connector = connector
        self._shim.setConnector(self.connector)

    def onConnectFailed(self, e):
        log.warning('[shim]: client connect failed: %s', e)

    def dataReceived(self, data):
        if self._client:
            self._client.writeToSocksPort(data)
        else:
            self._buf.write(data)

    def writeToClient(self, data):
        if data:
            self.transport.write(data)
Exemple #3
0
 def __init__(self, factory, shim, socks_port):
     self.factory = factory
     self._shim = shim
     self._socks_port = socks_port
     self._buf = Buffer()
Exemple #4
0
 def __init__(self, factory, shim, socks_port):
     self.factory = factory
     self._shim = shim
     self._socks_port = socks_port
     self._buf = Buffer()