<?xml version="1.0" encoding="utf-8"?>
<packagegui>
	<include_file>squid.inc</include_file>

	<!-- Installation -->
	<additional_files_needed>
		<item>http://www.pfsense.org/packages/config/squid.inc</item>
	</additional_files_needed>
	<additional_files_needed>
		<item>http://www.pfsense.org/packages/config/squid_cache.xml</item>
	</additional_files_needed>
	<additional_files_needed>
		<item>http://www.pfsense.org/packages/config/squid_nac.xml</item>
	</additional_files_needed>
	<additional_files_needed>
		<item>http://www.pfsense.org/packages/config/squid_traffic.xml</item>
	</additional_files_needed>
	<additional_files_needed>
		<item>http://www.pfsense.org/packages/config/squid_upstream.xml</item>
	</additional_files_needed>
	<additional_files_needed>
		<item>http://www.pfsense.org/packages/config/squid_auth.xml</item>
	</additional_files_needed>
	<additional_files_needed>
		<item>http://www.pfsense.org/packages/config/squid_users.xml</item>
	</additional_files_needed>
	<additional_files_needed>
		<item>http://www.pfsense.org/packages/All/squid_monitor.sh</item>
		<prefix>/usr/local/bin/</prefix>
		<chmod>0755</chmod>
	</additional_files_needed>
	<custom_php_install_command>
		squid_install_command();
	</custom_php_install_command>
	<custom_php_deinstall_command>
		squid_deinstall_command();
	</custom_php_deinstall_command>
	<menu>
		<name>Web proxy cache</name>
		<tooltiptext>Modify the web proxy cache's settings</tooltiptext>
		<section>Services</section>
		<url>/pkg_edit.php?xml=squid.xml&amp;id=0</url>
	</menu>
	<service>
		<name>Squid</name>
		<description>Web proxy cache.</description>
		<rcfile>squid.sh</rcfile>
		<executable>squid</executable>
	</service>

	<!-- Interface -->
	<name>squid</name>
	<title>Proxy server: General settings</title>
	<tabs>
		<tab>
			<text>General settings</text>
			<url>/pkg_edit.php?xml=squid.xml&amp;id=0</url>
			<active/>
		</tab>
		<tab>
			<text>Upstream proxy</text>
			<url>/pkg_edit.php?xml=squid_upstream.xml&amp;id=0</url>
		</tab>
		<tab>
			<text>Cache management</text>
			<url>/pkg_edit.php?xml=squid_cache.xml&amp;id=0</url>
		</tab>
		<tab>
			<text>Access control</text>
			<url>/pkg_edit.php?xml=squid_nac.xml&amp;id=0</url>
		</tab>
		<tab>
			<text>Traffic management</text>
			<url>/pkg_edit.php?xml=squid_traffic.xml&amp;id=0</url>
		</tab>
		<tab>
			<text>Auth settings</text>
			<url>/pkg_edit.php?xml=squid_auth.xml&amp;id=0</url>
		</tab>
		<tab>
			<text>Local users</text>
			<url>/pkg.php?xml=squid_users.xml</url>
		</tab>
	</tabs>
	<fields>
		<field>
			<fieldname>active_interface</fieldname>
			<fielddescr>Proxy interface</fielddescr>
			<description>The interface(s) the proxy server will bind to.</description>
			<default_value>lan</default_value>
			<required/>
			<type>interfaces_selection</type>
			<multiple/>
		</field>
		<field>
			<fieldname>allow_interface</fieldname>
			<fielddescr>Allow users on interface</fielddescr>
			<description>If this field is checked, the users connected to the interface selected in the 'Proxy interface' field will be allowed to use the proxy, i.e., there will be no need to add the interface's subnet to the list of allowed subnets. This is just a shortcut.</description>
			<default_value>on</default_value>
			<required/>
			<type>checkbox</type>
		</field>
		<field>
			<fieldname>transparent_proxy</fieldname>
			<fielddescr>Transparent proxy</fielddescr>
			<description>If transparent mode is enabled, all requests for destination port 80 will be forwarded to the proxy server without any additional configuration necessary.</description>
			<required/>
			<type>checkbox</type>
		</field>
		<field>
			<fieldname>log_enabled</fieldname>
			<fielddescr>Enabled logging</fielddescr>
			<description>This will enable the access log. Don't switch this on if you don't have much disk space left.</description>
			<enablefields>log_query_terms,log_user_agents</enablefields>
			<type>checkbox</type>
		</field>
		<field>
			<fieldname>proxy_port</fieldname>
			<fielddescr>Proxy port</fielddescr>
			<description>This is the port the proxy server will listen on.</description>
			<required/>
			<type>input</type>
			<size>5</size>
			<default_value>3128</default_value>
		</field>
		<field>
			<fieldname>icp_port</fieldname>
			<fielddescr>ICP port</fielddescr>
			<description>This is the port the proxy server will send and receive ICP queries to and from neighbor caches. Leave this blank if you don't want the proxy server to communicate with neighbor caches through ICP.</description>
			<type>input</type>
			<size>5</size>
		</field>
		<field>
			<fieldname>visible_hostname</fieldname>
			<fielddescr>Visible hostname</fielddescr>
			<description>This is the hostname to be displayed in proxy server error messages.</description>
			<default_value>localhost</default_value>
			<type>input</type>
		</field>
		<field>
			<fieldname>admin_email</fieldname>
			<fielddescr>Administrator email</fielddescr>
			<description>This is the email address displayed in error messages to the users.</description>
			<default_value>admin@localhost</default_value>
			<type>input</type>
		</field>
		<field>
			<fielddescr>Language</fielddescr>
			<fieldname>error_language</fieldname>
			<description>Select the language in which the proxy server will display error messages to users.</description>
			<default_value>English</default_value>
			<type>select</type>
		</field>
		<field>
			<fielddescr>Redirect children</fielddescr>
			<fieldname>redirect_children</fieldname>
			<description>Specify the number of redirectors to spawn (if using redirectors at all) when launching Squid. If you leave this field blank, Squid will start 5 redirector processes. If your network load is high, feel free to increase this value (at the expense of a higher memory consumption).</description>
			<default_value>5</default_value>
			<type>input</type>
		</field>
	</fields>
	<custom_php_command_before_form>
		squid_before_form_general(&amp;$pkg);
	</custom_php_command_before_form>
	<custom_php_validation_command>
		squid_validate_general($_POST, &amp;$input_errors);
	</custom_php_validation_command>
<custom_php_resync_config_command>
	squid_resync();
	</custom_php_resync_config_command>
</packagegui>