<packagegui>
	<name>doorman</name>
	<title>doorman: Settings</title>
	<aftersaveredirect>pkg_edit.php?xml=doorman.xml&amp;id=0</aftersaveredirect>
	<menu>
		<name>doorman</name>
		<tooltiptext>Modify doorman settings and users.</tooltiptext>
		<section>Services</section>
		<configfile>doorman.xml</configfile>
		<url>/pkg_edit.php?xml=doorman.xml&amp;id=0</url>
	</menu>
	<service>
                <name>doorman</name>
                <rcfile>doorman.sh</rcfile>
                <executable>doormand</executable>
        </service>
	<tabs>
		<tab> 
                        <text>Settings</text>
                        <url>/pkg_edit.php?xml=doorman.xml&amp;id=0</url>
                        <active/>
                </tab>
                <tab>
                        <text>Users</text>
                        <url>/pkg.php?xml=doormanusers.xml</url>
                </tab>
        </tabs>
	<additional_files_needed>
		<item>http://www.pfsense.com/packages/config/doormanusers.xml</item>
	</additional_files_needed>
	<configpath>installedpackages->package->$packagename->configuration->settings</configpath>
	<fields>
		<field>
			<fielddescr>Initial connection timeout</fielddescr>
			<fieldname>initdelay</fieldname>
			<description>Enter the desired number of *microseconds* to wait for a complete 3-way handshake between the client and requested service. (default one half second)</description>
			<type>input</type>
			<value>500000</value>
		</field>
		<field>
			<fielddescr>Connection check interval</fielddescr>
			<fieldname>checkdelay</fieldname>
			<description>Enter the desired number of *seconds* between checking for broken connections. (default 5 seconds)</description>
			<type>input</type>
			<value>5</value>
		</field>
		<field>
			<fielddescr>Connection initiation timeout</fielddescr>
			<fieldname>inittimeout</fieldname>
			<description>Enter the desired number of *seconds* to wait for a connection to be established after a successful knock.i (default 10 seconds)</description>
			<type>input</type>
			<value>10</value>
		</field>
		<!--
		<field>
			<fielddescr>Listening interface(s)</fielddescr>
			<fieldname>interface</fieldname>
			<description>Select the interfaces that doormand should listen on. (default WAN)</description>
			<value>wan</value>
			<type>interfaces_selection</type>
		</field>
		-->
		<field>
			<fielddescr>Listening port</fielddescr>
			<fieldname>port</fieldname>
			<description>Enter the port that doormand should listen on. (default 1001)</description>	
			<value>1001</value>
			<type>input</type>
		</field>
	</fields>
	<custom_php_install_command>
		global $config;
		$start = "/usr/local/sbin/doormand -D &amp;";
		write_rcfile(array(
					"file" => "doorman.sh",
					"start" => $start,
					"stop" => "/usr/bin/killall doormand"
				)
		);
	</custom_php_install_command>
	<custom_php_global_functions>
	function sync_package_doorman() {
		conf_mount_rw();
		config_lock();
		global $config;
		$fout = fopen("/usr/local/etc/doormand/doormand.cf","w");
		fwrite($fout, "# This file was automatically generated by the pfSense\n# package management system.\n\n");
		/*
		 *	$int = convert_friendly_interface_to_real_interface_name($_POST['interface']);
		 *	fwrite($fout, "interface " . $int . "\n");
		 */
		fwrite($fout, "interface " . $config['interfaces']['wan']['if'] . "\n");
		if($_POST['port'] != "") fwrite($fout, "port " . $_POST['port'] . "\n");
		if($_POST['inittimeout'] != "") fwrite($fout, "waitfor " . $_POST['inittimeout'] . "\n");
		if($_POST['initdelay'] != "") fwrite($fout, "connection_delay_1 " . $_POST['initdelay'] . "\n");
		if($_POST['checkdelay'] != "") fwrite($fout, "connection_delay_2 " . $_POST['checkdelay'] . "\n");
		fwrite($fout, "pidfile /var/run/doormand.pid\nlogfile /var/log/messages\nloglevel NOTICE\nguestlist /usr/local/etc/doormand/guestlist\nfirewall-add /usr/local/etc/doormand/pfctl_add\nfirewall-del /usr/local/etc/doormand/pfctl_del\ntag-queue-length 100000\ntag-queue /var/doorman_tag_queue\ntag-db /var/doorman_tag_db.db\n");
		fwrite($fout, "hash-archive-size   50000\n");
        fwrite($fout, "hash-archive        /tmp/doormand.hash-archive\n");
		fclose($fout);
		restart_service("doorman");
		conf_mount_ro();
		config_unlock();
	}
	</custom_php_global_functions>
	<custom_add_php_command>
		sync_package_doorman();
	</custom_add_php_command>
</packagegui>