[zorp-hu] Zorp 3.3.6 - port valasztas hostnev alapjan

Kovács Bálint kovacs.balint at balabit.hu
2011. Feb. 23., Sze, 08:33:10 CET


On 02/23/2011 08:12 AM, Kosa Attila wrote:
> On Wed, Feb 23, 2011 at 08:03:50AM +0100, Kovács Bálint wrote:
>> a 3.3-ban változott a session struktúrája, már nincs server_address,
>> hanem egy target_address hash van, ami tartalmazza az összes beállított
>> (pl. FailoverChainerhez kellő) célcímet. A lenti javításokkal már mennie
>>
>> class IntraHttp(HttpProxy):
>>             def config(self):
>>                       HttpProxy.config(self)
>>                       self.transparent_mode = TRUE
>>                       self.request_header["Host"] = (HTTP_HDR_POLICY, self.TargetByHostHeader)
>>
>>             def TargetByHostHeader(self, name, value):
>>                       if(value == 'site1.loc'):
>>                           self.session.target_address[0] = SockAddrInet("127.0.0.1" , 50081)
> Nekem mukodik a
> self.session.setServer(SockAddrInet("127.0.0.1" , 50081))
> megoldas is.

Sőt, a setServerAddress-be is be lehet kötni, viszont ehhez InbandRouter 
kell szerintem:

class IntraHttpProxy(HttpProxy):
     def config(self):
         HttpProxy.config(self)

     def setServerAddress(self, host, port):
         hostlist={"intra.loc":("1.2.3.4", 80), "intra2.loc":("1.2.3.4", 
81),}
         if self.hostlist.has_key(host):
             newhost = self.hostlist[host][0]
             port = self.hostlist[host][1]
             host = newhost
         return HttpProxy.setServerAddress(self, host, port)




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