On Tue, Nov 12, 2002 at 12:58:29AM +0100, Czakó Krisztián wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hello,
Nagyjából összejött, amit az lmekonfon beszéltünk, azaz: - - 1 IP-n sok virtualhost (standard apache namevirtualhost-ok) - - https - - WebDAv úgy, hogy a DAV kéréseket más címre küldjük, mint a normál https kéréseket
Eygetlen mellékhatása van (kérdezze meg kezelőorvosát, gyógyszerészét:), hogy WebDAV kérés után a következő bárhonnan jövő kérést is a webdavos szervernek küld. De csak az elsőt, azaz ha az ilyenkor jövő authentikációs kérésre mégsemet mondok, bejön a kért lap.
A megoldás annyira pofonegyszerű, hogy az már fáj :)
A HttpProxy-ból származtaott osztályunkba ez kell: self.session.service.dnat="" self.request["OPTIONS"] = (HTTP_REQ_POLICY, self.filterDAV) self.request["PROPFIND"] = (HTTP_REQ_POLICY, self.filterDAV) self.request["PUT"] = (HTTP_REQ_POLICY, self.filterDAV) self.request["DELETE"] = (HTTP_REQ_POLICY, self.filterDAV) self.request["MKCOL"] = (HTTP_REQ_POLICY, self.filterDAV) self.request["PROPPATCH"] = (HTTP_REQ_POLICY, self.filterDAV) self.request["COPY"] = (HTTP_REQ_POLICY, self.filterDAV) self.request["MOVE"] = (HTTP_REQ_POLICY, self.filterDAV) self.request["LOCK"] = (HTTP_REQ_POLICY, self.filterDAV) self.request["UNLOCK"] = (HTTP_REQ_POLICY, self.filterDAV)
A PUT esetét óvatosan, hátha kell "normál" módban is.
A filterDAV: def filterDAV(self, method, url, version): self.session.service.dnat = StaticNAT(SockAddrInet("davserver-címe",9443)) return HTTP_REQ_ACCEPT
ezzel egyetlen problema van megpedig az, hogy ezzel folyamatosan valtoztatod a Service deklaraciot. Jobban jarsz, ha router=InbandRouter-t hasznalsz, es a self.session.server_address-t irod at (oda csak a sockaddrinet kell, mas nem) -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1