A teljes konfigot meg tudod mutatni? Feltettem 3.9-est, meg csináltam az említett policy-t, meg is pacheltem (előtte is csinálta), erre azt mondja, hogy a Listener-ben megadott ip 80-as portjára nem tud bindelni, permission denied, de nincs ott semmi más, véletlen sem, ami használná. Lehet, hogy a végén valamit elrontok, még próbálkozom. Csak összejön már valami... Nekem ez a vége, minden más lényegében ugyanaz, amit írtál: def zorp_http(): Service("intra_http", IntraHttp) Listener(SockAddrInet("10.20.2.169", 80), "intra_http") Köszi!
2011-02-23 19:01 keltezéssel, Farkas Dániel írta:
Nalam ez teljesen hatastalan, probaltam korabban is, amikor raakadtam. Összeraktam egy host header alapján máshova csatlakozó HTTP proxyt, a most kiadott 3.9-es verzióval. Az idevágó osztály a következő:
class InterHttpProxy(HttpProxy): def config(self): HttpProxy.config(self) require_host_header = FALSE self.hostlist = {"host1.domain.hu":("192.168.1.1", 80), "host2.domain.hu":("192.168.1.2", 80), "host3.domain.hu":("192.168.1.3", 80), "host4.domain.hu":("192.168.1.4", 80)} def setServerAddress(self, host, port): if self.hostlist.has_key(host): newhost = self.hostlist[host][0] port = self.hostlist[host][1] host = newhost else: proxyLog(self, HTTP_ERROR, 3, "Unknown target host; host='%s'", host) return FALSE return HttpProxy.setServerAddress(self, host, port)
Ennek elvileg működnie kellene, de nem teszi, a logban ez található:
2011-02-24T10:12:01+01:00 fw zorp/inter[5832]: core.error(3): (svc/inter_HTTP:191/http): connect() failed; fd='40', error='Invalid argument' 2011-02-24T10:12:01+01:00 fw zorp/inter[5832]: core.error(2): (svc/inter_HTTP:191/http): Connection to remote end failed; local='NULL', remote='AF_INET(0.0.0.1:80)', error='Invalid argument'
Mint látod, a célszerver címe 0.0.0.1-re változik, holott nem ez az elvárt. Ha te is ebbe a hibába futottál bele, akkor itt egy patch, ami ezt megoldja:
--- a/pylib/Zorp/Resolver.py 2011-02-24 10:13:54.081516501 +0100 +++ b/pylib/Zorp/Resolver.py 2011-02-24 10:11:25.721598563 +0100 @@ -35,7 +35,7 @@
from Zorp import * from SockAddr import SockAddrInet -from socket import gethostbyname +from socket import gethostbyname, gethostbyname_ex import types
# NOTE: This is IPv4 specific @@ -207,7 +207,7 @@ </method> """ try: - ip_list = gethostbyname(host) + ip_list = gethostbyname_ex(host)[2] if self.multi: return map(lambda ip: SockAddrInet(ip, port), ip_list) else:
Nekem ezzel jól működik.
Üdv,
i. _______________________________________________ zorp-hu mailing list zorp-hu@lists.balabit.hu https://lists.balabit.hu/mailman/listinfo/zorp-hu