[zorp-hu] Kezdjuk elolrol :)

Balazs Scheidler bazsi@balabit.hu
Wed, 17 Jan 2001 15:30:12 +0100


> Az, amit te kuldtel :) Odafigyelve elolvastam a logokat,
> es beirtam kulso zona inbound-jaba is az id_http-t. Igy
> mar mukodik! Eloszor sikerult beinditanom a zorpot! (Ugy,
> hogy azt is csinalja, amit szerettem volna.) Most mar
> bonyolithatom a dolgokat :) Tobb zona, tobb szolgaltatas.

gratula

> 
> Egy kerdes eloljaroban:
> Eddig a pop3 szolgaltatast igy irtam:
> class pop(PlugProxy):
> 	def config(self):
> 		pass
> 
> Jo igy, vagy ezt is ki kell egesziteni a
> PlugProxy.config(self) sorral? Esetleg massal?

nem kell, sot a def config(self): sem kotelezo. eleg ennyi (ha nem akarsz
extrat):

class pop(PlugProxy):
	pass

A Http-nel azert kell csak, mert ott az orokolt config() csinal olyat, amire
szukseged lehet ( engedelyezi a GET, POST metodusokat, amik nelkul egy http
proxy nem tulzottan mukodokepes) Ha nem akarod ott sem muszaly meghivni,
viszont akkor neked kell engedelyezned explicit modon az engedelyezett
metodusokat

pl (ezt nem teszteltem, csak idehasaltam, de kb mukodnie kell):

class MyHttp(HttpProxy):
	def config(self):
		# nem hivjuk meg az oroklott config-ot

		# mindig engedelyezzuk a GET-et, es a POST-ot
		self.request["GET"] = (Http.HTTP_PASS)
		self.request["POST"] = (Http.HTTP_PASS)
		
		# nem transzparens Http proxynal https:// kereskor
		# szukseges a CONNECT, de nem engedjuk siman
		
		# CONNECT-kor hivja meg a connectMethod() nevu metodust
		self.request["CONNECT"] = (Http.HTTP_POLICY, self.connectMethod)
		
	def connectMethod(self, method, url, version):
		"""Csak a 443-as portra engedjuk a kapcsolodast"""
		try:
			host, port = split(url, ':')
		except ValueError:
			return Z_REJECT
			
		if port == '443':
			return Z_ACCEPT
		return Z_REJECT

-- 
Bazsi
PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1
     url: http://www.balabit.hu/pgpkey.txt