$ifdesc) { $list[$if] = $ifdesc; } unset($iflist); $grouplist = return_gateway_groups_array(); foreach ($grouplist as $name => $group) { $list[$name] = 'GW Group ' . $name; } unset($grouplist); return($list); } $pgtitle = array(gettext("Services"), gettext("Dynamic DNS"), gettext("Dynamic DNS Client"), gettext("Edit")); include("head.inc"); if ($input_errors) { print_input_errors($input_errors); } if ($savemsg) { print_info_box($savemsg, 'success'); } $form = new Form; $section = new Form_Section('Dynamic DNS Client'); // Confusingly the 'enable' checkbox is labelled 'Disable', but thats the way it works! // No action (hide or disable) is taken on selecting this. $section->addInput(new Form_Checkbox( 'enable', 'Disable', 'Disable this client', $pconfig['enable'] )); $section->addInput(new Form_Select( 'type', 'Service Type', $pconfig['type'], build_type_list() )); $interfacelist = build_if_list(); $section->addInput(new Form_Select( 'interface', 'Interface to monitor', $pconfig['interface'], $interfacelist )); $section->addInput(new Form_Select( 'requestif', 'Interface to send update from', $pconfig['requestif'], $interfacelist ))->setHelp('This is almost always the same as the Interface to Monitor. '); $section->addInput(new Form_Input( 'host', 'Hostname', 'text', $pconfig['host'] ))->setHelp('Enter the complete fully qualified domain name. Example: myhost.dyndns.org'. '
' . 'he.net tunnelbroker: Enter your tunnel ID' . '
' . 'GleSYS: Enter your record ID' . '
' . 'DNSimple: Enter only the domain name.'); $section->addInput(new Form_Input( 'mx', 'MX', 'text', $pconfig['mx'] ))->setHelp('Note: With DynDNS service you can only use a hostname, not an IP address. '. 'Set this option only if you need a special MX record. Not all services support this.'); $section->addInput(new Form_Checkbox( 'wildcard', 'Wildcards', 'Enable Wildcard', $pconfig['wildcard'] )); $section->addInput(new Form_Checkbox( 'verboselog', 'Verbose logging', 'Enable verbose logging', $pconfig['verboselog'] )); $section->addInput(new Form_Checkbox( 'curl_ipresolve_v4', 'CURL options', 'Force IPv4 resolving', $pconfig['curl_ipresolve_v4'] )); $section->addInput(new Form_Checkbox( 'curl_ssl_verifypeer', null, 'Verify SSL peer', $pconfig['curl_ssl_verifypeer'] )); $section->addInput(new Form_Input( 'username', 'Username', 'text', $pconfig['username'] ))->setHelp('Username is required for all types except Namecheap, FreeDNS and Custom Entries.' . '
' . 'Route 53: Enter your Access Key ID.' . '
' . 'GleSYS: Enter your API user.' . '
' . 'For Custom Entries, Username and Password represent HTTP Authentication username and passwords.'); $section->addPassword(new Form_Input( 'passwordfld', 'Password', 'password', $pconfig['password'] ))->setHelp('FreeDNS (freedns.afraid.org): Enter your "Authentication Token" provided by FreeDNS.' . '
' . 'Route 53: Enter your Secret Access Key.' . '
' . 'GleSYS: Enter your API key.' . '
' . 'DNSimple: Enter your API token.'); $section->addInput(new Form_Input( 'zoneid', 'Zone ID', 'text', $pconfig['zoneid'] ))->setHelp('Enter Zone ID that you received when you created your domain in Route 53.' . '
' . 'DNSimple: Enter the Record ID of record to update.'); $section->addInput(new Form_Input( 'updateurl', 'Update URL', 'text', $pconfig['updateurl'] ))->setHelp('This is the only field required by for Custom Dynamic DNS, and is only used by Custom Entries.'); $section->addInput(new Form_Textarea( 'resultmatch', 'Result Match', $pconfig['resultmatch'] ))->sethelp('This field should be identical to what your DDNS Provider will return if the update succeeds, leave it blank to disable checking of returned results.' . '
' . 'If you need the new IP to be included in the request, put %IP% in its place.' . '
' . 'If you need to include multiple possible values, separate them with a |. If your provider includes a |, escape it with \\|)' . '
' . 'Tabs (\\t), newlines (\\n) and carriage returns (\\r) at the beginning or end of the returned results are removed before comparison.'); $section->addInput(new Form_Input( 'ttl', 'TTL', 'text', $pconfig['ttl'] ))->setHelp('Choose TTL for your dns record.'); $section->addInput(new Form_Input( 'descr', 'Description', 'text', $pconfig['descr'] ))->setHelp('You may enter a description here for your reference (not parsed).'); if (isset($id) && $a_dyndns[$id]) { $section->addInput(new Form_Input( 'id', null, 'hidden', $id )); $form->addGlobal(new Form_Button( 'force', 'Save & Force Update' ))->removeClass('btn-primary')->addClass('btn-info'); } $form->add($section); print($form); // Certain input elements are hidden/shown based on the service type in the following script ?>