Deferred in proxy.ProxyClient.handleHeader (reformatted)

"Ing. Stefan Grosz, BSc" <[email protected]>
Newsgroups gmane.comp.python.twisted.web
Message-ID <[email protected]>
hi!

(sorry, the formatting in my last mail got screwed up. hope this time it works)

i'm currently writing a reverse proxy with twisted and i've a problem with a deferred function in my handleHeader method.

the code looks simplified like this (http://pastie.org/981735):

class MyProxyClient(proxy.ProxyClient):
    @defer.inlineCallbacks
    def handleHeader(self, key, value):
        if key.lower() == 'location':
            clientCreator = protocol.ClientCreator(reactor, Redis, db=3)
            redis = yield clientCreator.connectTCP("localhost", 6379)
            value = yield redis.get('myproxy:hashcode:%s' % value)
        proxy.ProxyClient.handleHeader(self,key,value)


as the handleHeader caller doesn't wait for a deferred to finish, the location header is added after handleResponseEnd is already called and therefore never makes it to the client.

is there a way to convert the non-blocking redis call to a blocking redis call?
i know that there's a blocking client library for redis but i'd rather use only txredis if possible.


regards,
  stefan

-- 
Stefan Grosz <[email protected]>
Stadtaustellungs-, Gemeindeausstellungs-, Stadtinformations- und Gemeindeinformationsplanungs GmbH
A-1100 Wien, Buchengasse 42
Mobil: +43 650 2643435
Fax: +43 7243 57435

http://www.stadtausstellung.at
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.