<packagegui>
	<name>openvpnserver</name>
	<title>OpenVPN: Server</title>
	<include_file>openvpn.inc</include_file>
	<delete_string>An OpenVPN server has been deleted.</delete_string>
	<addedit_string>An OpenVPN server has been created/modified.</addedit_string>
	<tabs>
		<tab>
			<text>Server</text>
			<url>/pkg.php?xml=openvpn.xml</url>
			<active/>
		</tab>
		<tab>
			<text>Client</text>
			<url>/pkg.php?xml=openvpn_cli.xml</url>
		</tab>
		<tab>
			<text>Client-specific configuration</text>
			<url>/pkg.php?xml=openvpn_csc.xml</url>
		</tab>
	</tabs>
	<adddeleteeditpagefields>
		<columnitem>
			<fieldname>disable</fieldname>
			<fielddescr>Disabled</fielddescr>
			<type>checkbox</type>
		</columnitem>
		<columnitem>
			<fieldname>protocol</fieldname>
			<fielddescr>Protocol</fielddescr>
		</columnitem>
		<columnitem>
			<fieldname>addresspool</fieldname>
			<fielddescr>Address pool</fielddescr>
		</columnitem>
		<columnitem>
			<fieldname>description</fieldname>
			<fielddescr>Description</fielddescr>
		</columnitem>
	</adddeleteeditpagefields>
	<fields>
		<field>
			<fieldname>disable</fieldname>
			<fielddescr>Disable this tunnel</fielddescr>
			<description>This allows you to disable this tunnel without removing it from the list.</description>
			<required/>
			<type>checkbox</type>
		</field>
		<field>
			<fieldname>protocol</fieldname>
			<fielddescr>Protocol</fielddescr>
			<description>The protocol to be used for the VPN.</description>
			<required/>
			<type>select</type>
			<options>
				<option>
					<value>TCP</value>
					<name>TCP</name>
				</option>
				<option>
					<value>UDP</value>
					<name>UDP</name>
				</option>
			</options>
			<default_value>UDP</default_value>
		</field>
		<field>
			<fieldname>dynamic_ip</fieldname>
			<fielddescr>Dynamic IP</fielddescr>
			<description>Allow connected clients to retain their connections if their IP address changes.</description>
			<type>checkbox</type>
		</field>
		<field>
			<fieldname>local_port</fieldname>
			<fielddescr>Local port</fielddescr>
			<description>The port this OpenVPN server will listen on. 1194 is the default OpenVPN port. Each server requires a unique port.</description>
			<required/>
			<type>input</type>
			<default_value>1194</default_value>
			<size>5</size>
		</field>
		<field>
			<fieldname>addresspool</fieldname>
			<fielddescr>Address pool</fielddescr>
			<description>This is the address pool to be assigned to the clients. Expressed as a CIDR range (eg. 10.0.8.0/24). If the 'Use static IPs' field isn't set, clients will be assigned addresses from this pool. Otherwise, this will be used to set the local interface's IP.</description>
			<required/>
			<type>input</type>
		</field>
		<field>
			<fieldname>nopool</fieldname>
			<fielddescr>Use static IPs</fielddescr>
			<description>If this option is set, IPs won't be assigned to clients. Instead, the server will use static IPs on its side, and the clients are expected to use this same value in the 'Address pool' field.</description>
			<required/>
			<type>checkbox</type>
		</field>
		<field>
			<fieldname>local_network</fieldname>
			<fielddescr>Local network</fielddescr>
			<description>This is the network that will be accessable from the remote endpoint. Expressed as a CIDR range. You may leave this blank if you don't want to add a route to the local network through this tunnel on the remote machine. This is generally set to your LAN network.</description>
			<type>input</type>
		</field>
		<field>
			<fieldname>remote_network</fieldname>
			<fielddescr>Remote network</fielddescr>
			<description>This is a network that will be routed through the tunnel, so that a site-to-site VPN can be established without manually changing the routing tables. Expressed as a CIDR range. If this is a site-to-site VPN, enter here the remote LAN here. You may leave this blank if you don't want a site-to-site VPN.</description>
			<type>input</type>
		</field>
		<field>
			<fieldname>client2client</fieldname>
			<fielddescr>Client-to-client VPN</fielddescr>
			<description>If this option is set, clients will be able to talk to each other. Otherwise, they will only be able to talk to the server.</description>
			<required/>
			<type>checkbox</type>
		</field>
		<field>
			<fieldname>crypto</fieldname>
			<fielddescr>Cryptography</fielddescr>
			<description>Here you can choose the cryptography algorithm to be used.</description>
			<required/>
			<type>select</type>
			<default_value>BF-CBC</default_value>
		</field>
		<field>
			<fieldname>auth_method</fieldname>
			<fielddescr>Authentication method</fielddescr>
			<description>The authentication method to be used.</description>
			<required/>
			<type>select</type>
			<options>
				<option>
					<value>shared_key</value>
					<name>Shared key</name>
				</option>	
				<option>
					<value>pki</value>
					<name>PKI (Public Key Infrastructure)</name>
				</option>
			</options>
			<onchange>onAuthMethodChanged()</onchange>
		</field>
		<field>
			<fieldname>shared_key</fieldname>
			<fielddescr>Shared key</fielddescr>
			<description>Paste your shared key here.</description>
			<type>textarea</type>
			<encoding>base64</encoding>
			<rows>8</rows>
			<cols>40</cols>
		</field>
		<field>
			<fieldname>ca_cert</fieldname>
			<fielddescr>CA certificate</fielddescr>
			<description>Paste your CA certificate in X.509 format here.</description>
			<type>textarea</type>
			<encoding>base64</encoding>
			<rows>8</rows>
			<cols>40</cols>
		</field>
		<field>
			<fieldname>server_cert</fieldname>
			<fielddescr>Server certificate</fielddescr>
			<description>Paste your server certificate in X.509 format here.</description>
			<type>textarea</type>
			<encoding>base64</encoding>
			<rows>8</rows>
			<cols>40</cols>
		</field>
		<field>
			<fieldname>server_key</fieldname>
			<fielddescr>Server key</fielddescr>
			<description>Paste your server key in RSA format here.</description>
			<type>textarea</type>
			<encoding>base64</encoding>
			<rows>8</rows>
			<cols>40</cols>
		</field>
		<field>
			<fieldname>dh_params</fieldname>
			<fielddescr>DH parameters</fielddescr>
			<description>Paste your Diffie Hellman parameters in PEM format here.</description>
			<type>textarea</type>
			<encoding>base64</encoding>
			<rows>8</rows>
			<cols>40</cols>
		</field>
		<field>
			<fieldname>crl</fieldname>
			<fielddescr>CRL</fielddescr>
			<description>Paste your certificate revocation list (CRL) in PEM format here (optional).</description>
			<type>textarea</type>
			<encoding>base64</encoding>
			<rows>8</rows>
			<cols>40</cols>
		</field>
		<field>
			<fieldname>dhcp_domainname</fieldname>
			<fielddescr>DHCP-Opt.: DNS-Domainname</fielddescr>
			<description>Set connection-specific DNS Suffix.</description>
			<type>input</type>
		</field>
		<field>
			<fieldname>dhcp_dns</fieldname>
			<fielddescr>DHCP-Opt.: DNS-Server</fielddescr>
			<description>Set domain name server addressses, separated by semi-colons (;).</description>
			<type>input</type>
		</field>
		<field>
			<fieldname>dhcp_wins</fieldname>
			<fielddescr>DHCP-Opt.: WINS-Server</fielddescr>
			<description>Set WINS server addressses (NetBIOS over TCP/IP Name Server), separated by semi-colons (;).</description>
			<type>input</type>
		</field>
		<field>
			<fieldname>dhcp_nbdd</fieldname>
			<fielddescr>DHCP-Opt.: NBDD-Server</fielddescr>
			<description>Set NBDD server addresses (NetBIOS over TCP/IP Datagram Distribution Server), separated by semi-colons (;).</description>
			<type>input</type>
		</field>
		<field>
			<fieldname>dhcp_ntp</fieldname>
			<fielddescr>DHCP-Opt.: NTP-Server</fielddescr>
			<description>Set NTP server addresses (Network Time Protocol), separated by semi-colons (;).</description>
			<type>input</type>
		</field>
		<field>
			<fieldname>dhcp_nbttype</fieldname>
			<fielddescr>DHCP-Opt.: NetBIOS node type</fielddescr>
			<description>Set NetBIOS over TCP/IP Node type. Possible options: b-node (broadcasts), p-node (point-to-point name queries to a WINS server), m-node (broadcast then query name server), and h-node (query name server, then broadcast).</description>
			<type>select</type>
			<options>
				<option>
					<value>0</value>
					<name>none</name>
				</option>
				<option>
				<value>1</value>
					<name>b-node</name>
				</option>
				<option>
					<value>2</value>
					<name>p-node</name>
				</option>
				<option>
					<value>4</value>
					<name>m-node</name>
				</option>
				<option>
					<value>8</value>
					<name>h-node</name>
				</option>
			</options>
			<default_value>0</default_value>
		</field>
		<field>
			<fieldname>dhcp_nbtscope</fieldname>
			<fielddescr>DHCP-Opt.: NetBIOS Scope</fielddescr>
			<description>Set NetBIOS over TCP/IP Scope. A NetBIOS Scope ID provides an extended naming service for NetBIOS over TCP/IP. The NetBIOS scope ID isolates NetBIOS traffic on a single network to only those nodes with the same NetBIOS scope ID.</description>
			<type>input</type>
		</field>
		<field>
			<fieldname>dhcp_nbtdisable</fieldname>
			<fielddescr>DHCP-Opt.: Disable NetBIOS</fielddescr>
			<description>If this option is set, Netbios-over-TCP/IP will be disabled.</description>
			<type>checkbox</type>
		</field>
		<field>
			<fieldname>use_lzo</fieldname>
			<fielddescr>LZO compression</fielddescr>
			<description>Checking this will compress the packets using the LZO algorithm before sending them.</description>
			<type>checkbox</type>
		</field>
		<field>
			<fieldname>custom_options</fieldname>
			<fielddescr>Custom options</fielddescr>
			<description>You can put your own custom options here, separated by semi-colons (;). They'll be added to the server configuration.</description>
			<type>textarea</type>
			<cols>65</cols>
			<rows>5</rows>
		</field>
		<field>
			<fieldname>description</fieldname>
			<fielddescr>Description</fielddescr>
			<description>You may enter a description here. This is optional and is not parsed.</description>
			<type>input</type>
		</field>
	</fields>
	<custom_php_command_before_form>
		openvpn_get_ciphers(&amp;$pkg);
	</custom_php_command_before_form>
	<custom_php_after_head_command>
		openvpn_print_javascript('server');
	</custom_php_after_head_command>
	<custom_php_after_form_command>
		openvpn_print_javascript2();
	</custom_php_after_form_command>
	<custom_php_validation_command>
		openvpn_validate_input('server', $_POST, &amp;$input_errors);
	</custom_php_validation_command>
	<custom_php_resync_config_command>
		openvpn_resync('server', $id);
	</custom_php_resync_config_command>
</packagegui>
