cpitchfor11:	Wed Apr  3 20:37:38 BST 2002	cpitchford
	*	Updated misc.c admin.c: Changed Humiliate directive
		Now it must have the paramter nolist or badpack to specify
		which humiliate it refers to.
	*	Updated utilities.c: Added simpleformat function
		takes a list of paramters and works like snprintf replacing
		defined tags (ie %g) with numbers, strings, numbers followed
		by a word with auto plural (%m means 1 minute or 2 minutes)
		or a quantity that is reduced with engineering values
		1024 B goes to 1KB. This will replace the humiliate code
		and the custom advert code
	*	Updated utilities.c global.c defines.c: Added badpack
		structure to gdata. It contains the list of people who
		requested an invalid pack in a sliding window mechanism. If
		the total in the first slot plus total in second slot are
		greater than the limit, they are banned. Each half interval,
		the first slot is moved to the second and then blanked.  A
		function badpackadd will attempt to add a host to the list
		and return true if they have reached their limit (ie to be
		banned) and badpackrotate will "rotate" the list as
		necessary or by force
	*	Updated admin.c: Implemented BADPACK, BDPKLMT admin commands
		to control the badpack ban on invalid request function. 
		BADPACK controls how long the monitoring is enabled for and
		how long the users will be banned, BDPKLMT controls the limits (ie how many invalid
		requests are required in what time before a ban is made)
	*	Updated misc.c: Implemented badpack configfile param
		to default the badpack control, much like the nolist
		directive

cpitchfor10:	Thu Mar 21 23:33:22 GMT 2002	cpitchford	
	*	Updated misc.c, defines.h, globals.h: added prejoin config	
		file option to send a RAW command before joining any
		channels. This will allow nicksrv commands to be sent for
		IRC services such as those on DALNet. Thanks to
		coombes_mark@hotmail.com for suggestion and DALNet help
	*	bugfixed misc.c: config file parsing would allow
		gdata.server[MAXSRVS] to be defined in the event there were
		MAXSRVS+1 servers defined in the config file. This has been
		limited and an error returned.
	*	bugfixed misc.c: same as above but for gdata.advert

cpitchfor9:	Wed Mar  6 01:47:46 GMT 2002	cpitchford
	*	Updated admin.c u_psend so it will set the nolisttime to
		zero before calling u_xdl otherwise it is not possible to
		force a list to be sent to all the channels
	*	Updated admin.c to include say admin command to talk to
		a user or a channel

cpitchfor8:	Wed Feb 27 03:00:30 GMT 2002	cpitchford
	*	Moved the "timed advert" code from iroffer.c into
		sendAdvert() in admin.c since it is required elsewhere now
	*	Added fullignore() function to admin.c which will ignore
		user/hostname if the fullignoretime is set
	*	Added fullignore support to misc.c and admin.c
		takes mins as an argument. Enfoced by fullignore
	*	added calls to fullignore to queue full notices in iroffer.c
	*	added adsend function to send adverts to channel or all
		channels using sendAdvert
	*	Added Adverts to admin.c to enable control over auto-advert
		sends
	*	Added noaverts configfile directive to misc.c
	*	Fixed bug in getEngineerval() in utilities.c whereby
		last char is ignored in quantifier array.

cpitchfor7:	Tue Feb 12 22:56:54 GMT 2002	cpitchford
	*	Fixed bug with advert rehash causing it to only use last
		advert line in config file.


cpitchfor6:	Tue Feb 12 02:01:35 GMT 2002	cpitchford
	*	%l has been added to the list of tags for the advert
		directive. It will be replaced with the minimum speed

	*	Added "on" option to NOLIST admin command.. "on" will enable
		NOLIST indefinitely until NOLIST is called again
		with either zero or a number of minutes

	*	Added "nolist" config file directives, which will disable
		listing indefinitely or until nolist admin command is
		issued to cancel nolist. It also takes an optional 
		parameter of "-q" to drop list requests silently
		or of m where it will auto-ban any user for m minutes
		should they make a list request to the bot, in the same
		way as the NOLIST admin command

	*	Fixed a BUG in admin.c: void getconfig_set. If line
		in the configuration file has no parameters (e.g. 
		"nolist" the "var" and "var2" variables faced a buffer
		overrun situation, as they are assigned after the
		terminating NULL character and hence a configfile
		with a single word on it could potentially lead to
		a buffer overrun and a SEGV death. This is a bug in
		iroffer, this patch fixes it.

	*	Added configuration directives "speedwarnings" and 
		"nospeedwarnings". These two directives turn off the
		warnings notices sent to users when they reach bandwidth
		limits

	*	Added SPDWRN admin command with parameter + or - This
		command turns off the notifications that are sent to a user
		when they reach bandwidth limits


cpitchfor5:		cpitchfor
	*	%i was added to the humiliate list of replace tags. This
		will be replaced in the string with the number of
		minutes the user has been ignored for.


cpitchfor4:		cpitchfor
	*	Humiliate config file directive and admin command was
		added. Like advert it takes a printf style string
		in which %u is replaced with the username of a user
		who has just been auto-banned.

	*	"public" and "nopublic" config file directives were
		added to allow the ability to control how the bot
		responds to public triggers

	*	the ignore admin command now accepts network ranges
		in the form of strings starting with "*"
		A hostname is checked to see if it ends with a network
		range (excluding the prefixing *) to determine
		a match
	*	!strcmp was replaced with isbanned to determine
		if a hostname matched an ignore entry to ensure
		network ranges are catered for


cpitchfor3:		cpitchfor
	*	When a user was banned public triggers failed. This was
		fixed

	*	advert lines were silently unlinked and therefore caused
		memory leaks. (Thanks to FarFetch'd for fix)

	*	Files were not closed after finished reading. This is
		an actual bug in iroffer. This patch fixes it.
		(Thanks to FarFetch'd for fix)


cpitchfor2:		cpitchfor
	*	PUBLIC admin command added to toggle whether the bot will
		respond to public messages, and public triggers (/CTCP)
		using the admin command PUBLIC <+|->


cpitchfor1:		cpitchfor
	*	Altered NOLIST function to admin commands.
		NOLIST now accepts two parameters. first still specifies
		how long list is disabled, second new parameter specifies
		that the list requests should be silently dropped "-q"
		or the number of minutes to ignore a user after making
		a list request. Quiet and banning NOLIST commands will
		also drop the list command without queuing it for
		processing.

	* 	Added config file directive for custom adverts
		Advert when used (multiple times also) will define
		a printf like template for the advert sent out to 
		channels with the -advert option enabled.
		The advert is created from the advert lines in the config
		file in the order they appear.
		% was chosen as the escape character. The flag letter
		was taken from the /ctcp status option as mentioned
		on the iroffer documentation
