
This file summarizes user visible changes between version 0.6 and version
0.8 of Zorp.

1. Zone semantics have changed, where you wrote:

	Zorp.zones = \
	[
	        Zone.InetZone("intranet", "192.168.1.0", "255.255.255.0", None,
	                outbound_services=["*"],
	                inbound_services=["*"])
	]

   you should write:

	InetZone("intranet", "192.168.1.0/24",
		 outbound_services=["*"],
		 inbound_services=["*"])

   instead. You don't need the Zorp.zones array anymore, zones automatically
   record themselves to an internal storage.

2. HTTP and FTP proxies were rewritten, they now have a redesigned policy
   interface. You'll generally need to delete your config() method, and look
   for the features you need in the documentation (zorp-reference.pdf).
   The FTP proxy now autodetects the external and internal interface addresses
   so you don't need to set them manually.

3. Service and Listener definitions don't need python variables anymore. They
   are identified by names in parameters. For 0.6 you had to write:

	plug_service = Service.Service("testplug", Chainer.DirectedChainer(None, SockAddr.SockAddrInet('127.0.0.1', 1998)), MyPlug)
	Listener.Listen(SockAddr.SockAddrInet("0.0.0.0", 1999), plug_service)

   now it should look like:

	Service("testplug", DirectedChainer(SockAddrInet('127.0.0.1', 1998)), MyPlug)
	Listener(SockAddrInet('0.0.0.0', 1999), "testplug")

4. Some chainers were enhanced and their constructor parameters were
   changed.  Generally rarely used arguments were changed to optional, which
   required reordering of arguments. Read the documentation of chainers in
   zorp-reference.pdf for more information.

5. The startup function init() was split into a per-instance init function
   with no arguments, to help you manage multiple instances of Zorp. Where
   you had:

	def init(name):
		if name == "ftps":
			# set up ftp instance here
		elif name == "https":
			# set up https instance here
		else:
			# invalid instance name

   you'll need two different functions:

	def ftps():
		# set up ftps instance here

	def https():
		# set up https instances here

   you can use your old init() functions as before, this feature is provided
   as a convinience feature only.

6. New logging mechanism, which lets you tune the set of messages you want
   logged. Each message has an assigned log tag, which is a multilevel
   string identifier in the form 'core.debug', apart from this message
   tag, each message has a verbosity level as well. With the --log-spec
   command line option you can control the verbosity within each message
   tag. zorp-reference.pdf has more details.
   
