APACHE-CONFIG-MIB DEFINITIONS ::= BEGIN
	-- the imports
	IMPORTS ;

	-- The assignments

    apacheConfigMIB MODULE-IDENTITY
        LAST-UPDATED "9904015000Z"
        ORGANIZATION "Harrie hazewinkel"
        CONTACT-INFO
                "Harrie Hazewinkel

                email: harrie.hazewinkel@jrc.it"
        DESCRIPTION
                "This APACHE-MIB module contains application specific
                managed objects for configuringthe Apache HTTP-server."
        ::= { jrcMIBs 5 }

    --jointResearchCentre OBJECT IDENTIFIER ::= { enterprises 1847 }
    --jrcMIBs OBJECT IDENTIFIER ::= { jointResearchCentre 1 }

    acMIBObjects OBJECT IDENTIFIER ::= { apacheConfigMIB 1 }

    acExtendedStatus OBJECT-TYPE
        SYNTAX          INTEGER {
				enable(1),
				disable(2)
			}
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
                "The acExtendedStatus provides a mean to switch 
		the extended status logging in the scoreboard.

		This variable could be used to reduce the load
		when it is turned off."
        ::= { acMIBObjects 1 }

    acKeepAliveSwitch OBJECT-TYPE
        SYNTAX          INTEGER {
				enable(1),
				disable(2)
			}
	MAX-ACCESS	read-write
	STATUS		current
	DESCRIPTION
		"The acKeepAliveSwitch enables/disables the
		persistent connections."
	::= { acMIBObjects 2 }

    acKeepAliveRequests OBJECT-TYPE
	SYNTAX		Integer32 (1..2147483647)
	MAX-ACCESS	read-write
	STATUS		current
	DESCRIPTION
		"The maximum number of requests the apache server will
		serve via 1 persistent connection.
		If 'acKeepAlive is disabled only 1 request
		per connection will be served.

		Server performance can be gained if this value is 
		kept high."
	::= { acMIBObjects 3 }

    acKeepAliveTimeout OBJECT-TYPE
	SYNTAX		Integer32 (1..2147483647)
	MAX-ACCESS	read-write
	STATUS		current
	DESCRIPTION
		"The number of seconds the Apache server will wait
		for a subsequent request before closing the connection.

		If 'acKeepAlive' is disabled the connection will
		be terminated directly after serving the 
		first request."
	::= { acMIBObjects 4 }

    acMaxServers OBJECT-TYPE
	SYNTAX		Integer32 (1..2147483647)
	MAX-ACCESS	read-write
	STATUS		current
	DESCRIPTION
		"The acMaxServerss sets the limit on the number of simultaneous
		requests that can be supported; not more than this number
		of child server processes will be created.
		The maximum number is limited by the implementation, 
		the value 'HARD_SERVER_LIMIT'

		Any connection attempts over the limit will
		normally be queued, up to a number based on the
		ListenBacklog directive."
	::= { acMIBObjects 5}

    acMinSpareServers OBJECT-TYPE
	SYNTAX		Integer32 (1..2147483647)
	MAX-ACCESS	read-write
	STATUS		current
	DESCRIPTION
		"The acMinSpareServers sets the desired minimum number of
		idle child server processes. An idle process is one which is
		not handling a request. If there are fewer than
		MinSpareServers idle, then the parent process creates new
		children at a maximum rate of 1 per second.

		Tuning of this parameter should only be necessary on
		very busy sites. Setting this parameter to a large number
		is almost always a bad idea.

		This variable has no effect on Microsoft Windows. "
	::= { acMIBObjects 6 }

    acMaxSpareServers OBJECT-TYPE
	SYNTAX		Integer32 (1..2147483647)
	MAX-ACCESS	read-write
	STATUS		current
	DESCRIPTION
		"The acMaxSpareServers sets the desired maximum number
		of idle child server processes. An idle process is one
		which is not handling a request. If there are more than
		MaxSpareServers idle, then the parent process will kill
		off the excess processes.

		Tuning of this parameter should only be necessary on
		very busy sites. Setting this parameter to a large
		number is almost always a bad idea.

		This variable has no effect when used with the Apache
		Web server on a Microsoft Windows platform."
	::= { acMIBObjects 7 }

    acMaxRequestsPerChild OBJECT-TYPE
	SYNTAX		Integer32 (1..2147483647)
	MAX-ACCESS	read-write
	STATUS		current
	DESCRIPTION
		"The MaxRequestsPerChild directive sets the limit on
		the number of requests that an individual child server
		process will handle.
		After acMaxRequestsPerChild requests, the child process
		will die. If MaxRequestsPerChild is 0, then the process
		will never expire.

		Setting acMaxRequestsPerChild to a non-zero limit has
		two beneficial effects: 

		it limits the amount of memory that process can
		consume by (accidental) memory leakage; 
		by giving processes a finite lifetime, it helps
		reduce the number of processes when the server
		load reduces. 

		This directive has no effect on Win32. "
	::= { acMIBObjects 8 }

    acHostNameLookup OBJECT-TYPE
	SYNTAX		INTEGER {
				on(1),
				off(2),
				double(3)
			}
	MAX-ACCESS	read-write
	STATUS		current
	DESCRIPTION
		"This variable enables DNS lookups so that host names can
		be logged (and passed to CGIs/SSIs in REMOTE_HOST).
		on: A forward lookup will be done to acquire the hostname.
		off: No forward lookup will be done.
		double: A double DNS lookup will be done. First the reverse 
			lookup will be done and on tat result a forward
			lookup will be done and at least one of the ip
			addresses in the forward lookup must match the
			original address. (In 'tcpwrapper' terminology
			this is called PARANOID.)

		Regardless of the setting, when mod_access is used for
		controlling access by hostname, a double reverse lookup
		will be performed. This is necessary for security.
		Note that the result of this double-reverse isn't
		generally available unless you set HostnameLookups double.
		For example, if only HostnameLookups on and a request
		is made to an object that is protected by hostname
		restrictions, regardless of whether the double-reverse
		fails or not, CGIs will still be passed the
		single-reverse result in REMOTE_HOST."
	::= { acMIBObjects 9 }

    acLogLevel OBJECT-TYPE
	SYNTAX		INTEGER {
				emerg(1),
				alert(2),
				crit(3),
				error(4),
				warn(5),
				notice(6),
				info(7),
				debug(8) }
	MAX-ACCESS	read-write
	STATUS		current
	DESCRIPTION
		"LogLevel adjusts the verbosity of the messages recorded
		in the error logs.
		The following levels are available, in order of
		decreasing significance: 
		emerg: Emergencies - system is unusable. 
			'Child cannot open lock file. Exiting'
		alert: Action must be taken immediately. 
			'getpwuid: couldn't determine user name from uid'
		crit: Critical Conditions. 
			'socket: Failed to get a socket, exiting child'
		error: Error conditions. 
			'Premature end of script headers'
		warn: Warning conditions. 
			'child process 1234 did not exit, sending
			another SIGHUP' 
		notice: Normal but significant condition. 
			'httpd: caught SIGBUS, attempting to dump core in ...' 
		info: Informational. 
			'Server seems busy, (you may need to increase
			StartServers, or Min/MaxSpareServers)...' 
		debug: Debug-level messages 
			'Opening config file ...'

		When a particular level is specified, messages from all
		other levels of higher significance will be reported as
		well. E.g., when LogLevel info is specified, then
		messages with log levels of notice and warn will
		also be posted. 
		Using a level of at least crit is recommended."
	::= { acMIBObjects 10 }


    acMIBConformance OBJECT IDENTIFIER ::= { apacheConfigMIB 2 }
    acMIBCompliances OBJECT IDENTIFIER ::= { acMIBConformance 1 }
    acMIBGroups OBJECT IDENTIFIER ::= { acMIBConformance 2 }

    acConfigGroup OBJECT-GROUP
        OBJECTS {
                acExtendedStatus,
		acKeepAliveSwitch,
		acKeepAliveRequests,
		acKeepAliveTimeout,
		acMaxServers,
		acMinSpareServers,
		acMaxSpareServers,
		acMaxRequestsPerChild,
		acHostNameLookup,
		acLogLevel
        }
	STATUS      current
	DESCRIPTION
        	""
	::= { acMIBGroups 1 }

END
