[zorp-hu] 3.9-es bug (volt: Zorp 3.3.6 - port valasztas hostnev alapjan)

Balazs Scheidler bazsi at balabit.hu
2011. Május. 1., V, 21:54:12 CEST


On Wed, 2011-04-13 at 09:28 +0200, Kosa Attila wrote:
> On Thu, Feb 24, 2011 at 01:24:31PM +0100, Lázár Imre wrote:
> > 
> > Ö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.
> 
> En ezzel a minimalis konfiggal probaltam ki kezdeskent:
> 
> class IntraHttp(HttpProxy):
>         def config(self):
>                 HttpProxy.config(self)
>                 self.transparent_mode = 1
> 
> Es ugyanugy a fenti hibaba futottam bele. Igaz, nekem nem
> 0.0.0.1, hanem 0.0.0.6 lett. Felraktam ezt a javitast, es
> megjavult. (Csak zarojelben - a patch nem ette meg a fentit,
> a </method> rossz helyen van.)
> 
> Szilárd Pfeiffer irta 21 Feb 2011 18:05:10:
> Amit kérünk, hogy adassék meg nekünk a lehetőség arra, hogy
> bizonyítsuk (a mostani kiadás tényén túl is), szeretnénk a GPL
> változattal aktívan foglalkozni.
> 
> 
> Bocsanatot kerek a kerdesert, de ha ket sor kijavitasa masfel
> honap alatt nem kerul bele a letoltheto forrasba, akkor az
> nevezheto aktiv foglalkozasnak?

Jelenleg a Zorp GPL release akkor tortenik, amikor a kereskedelmi
verzioval kijovunk egy uj release-zel.

A kodot magat kijavitjak a sracok a belso verziokezeloben, viszont
sajnos meg nem megoldott, hogy azt is publikalni tudjuk (mivel jelenleg
a Pro es a GPL verziokezeloje kozos).

Mar dolgozunk a szetvalasztasan, akkor legalabb a verziokezeloben
meglenne a patch.

Egyebkent pont most indul egy ujabb 3 honapos idoszak (az elozo GPL es
most kozott keszult el a 3.4-es pro, aminek a release most varhato), es
annak a vegere (remelhetoleg elobb is) lesz publikus git fa es ujabb GPL
release is (pont a vegen).


-- 
Bazsi




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