-Arbomb-------------------Archive Bomb tester--------

Specification:

	In order to add new archive testing modules, there are a
	couple of "standards" which we would like you to follow
	(in order to make everything easier for everyone).

	1. Module must not rely on any external libs or code.
		The reson for this rather tight restriction is for several
		reasons.
			i. We dont want excess bloat.
			ii. We dont want to have others who wish to build the modules
				requiring libs/source which they may not have
				immediate access to.
			iii. There may be licencing issues with incorporating others
				source code under the BSD licence.

		A quick look at the "ziptest" module as supplied with Arbomb details
		precisely these conditions.  Whilst there is a perfectly good unzip
		library available it's not used for all the above reasons.  Some
		would argue this is 'reinventing the wheel'. I'll simply counter-argue
		that I dont need a 4 tonne dumper-truck wheel for this sports car.

		Given the simplicity of the information required to be extracted from
		each archive, there is rarely any "complex" coding to be tackled, hence
		the rewrite from scratch will rarely introduce [many] complex bugs.



	2. Prefix for all functions and variables must be a capitalized constant.

		The ziptest module prefixes all its functions with "ZT_".  All [exported]
		variables are prefixed with "_ZT_".



	3. Each module must have at least three standard function calls

		i. Debug mode set call.  This function will activiate debug
			reporting mode in the module.  The module should use the
			"logger" module as supplied with Arbomb.

			int ZT_set_debug( int level );


		ii. Test function call. This function performs actual testing
			of the archive in question.  The parameters to be passed will (at least)
			include:

				char *fname - Filename of the archive to be opended.
				struct arbomb_limits *abl - Fixed limits as dictated by calling program
				struct arbomb_limits *lcs - Scratchpad limits and return-details (retains the
					details of the file which caused the possible violation)

			int ZT_test( char *fname, struct arbomb_limits *abl, struct arbomb_limits *lcs );

			The test function will open and close the file which needs to be tested.
			The test function will test for single-file size/ratio violations.
			The test function will test for archive filecount violations.

			The function will return one of the predefined Arbomb exit codes.


		iii. Archive Identification call.

			So that only valid archives are tested it is required that there be
			a function which returns a true=1/false=0 indication based on if the
			file is of the archive type required.

			int ZT_iszip( char *fname );



--END.
