[zorp-hu] HTTP POST DATA elemzes (AnyPyProxy)

Viktor Tuska v.tuska at con.hu
2007. Május. 23., Sze, 10:56:57 CEST


Udv,

a kovetkezo config-al probalkozom a HTTP forgalom POST tipusu 
request_method-jainak adatat elemezni:

"
class myHttpProxy(HttpProxy):

        def config(self):
                HttpProxy.config(self)
                self.request["POST"] = (HTTP_REQ_POLICY, self.isok)
             
        def isok(self, method, url, version):
                url = unquote(url)
               
                if ( url.find("/xxx/index.php") > -1 ):
                    self.request_stack["POST"] = (HTTP_STK_DATA, 
magicProxy )

class magicProxy(AbstractAnyPyProxy):

        def config(self):
                AbstractAnyPyProxy.config(self)

        def proxyThread(self):
                client = self.session.client_stream
                server = self.session.server_stream

                user = client.read(128)
                #itt majd elkovetek valamit a "user"-el, ha mar 
mukodik... ;)
                server.write(user)

                while user:
                        try:
                                user = client.read(128)
                                server.write(user)
                        except IOError, e:
                                log("http.info", 2, e.__str__());
                                break
"

Jonak tunik ez igy?

Hogyan tudnek a client_stream hosszanak megfelelo adatot kiolvasni 
mashogyan? (Exception nelkul?)
Esetleg hogyan lehetne megadni, hogy csak a "Content-Length"-nek 
megfelelo adatot olvassak a stream-bol? Probaltam kinyerni a kovetkezo 
kodreszlet segitsegevel, de ugy tunik mintha a request_header 
feldolgozasa a request_stack-e utan lenne...

"
self.request_header["Content-Length"] = (HTTP_HDR_POLICY, self.getlength)

def getlength(self, name, value):
                self.LENGTH = self.current_header_value
                return HTTP_HDR_ACCEPT
"

Kiprobaltam es olyan erdekesseget tapasztalok, hogy amikor elkuldom a 
POST kerest, akkor a browser-em nem kap vissza valaszt, pedig log-olva a 
stream-bol megjelenik a POST altal elkuldott adat... Lehet rosszul 
emlekszem, de mintha lett volna olyan allapot, amikor ez mukodott volna, 
de olyan sok variaciot kiprobaltam, hogy sajna mar nem tudom csak 
kepzeltem-e, hogy mukodott... :(

Koszontem,
Viktor



További információk a(z) zorp-hu levelezőlistáról