diff options
Diffstat (limited to 'src')
472 files changed, 7978 insertions, 10090 deletions
diff --git a/src/etc/ecl.php b/src/etc/ecl.php index b0a1507..20c702f 100755 --- a/src/etc/ecl.php +++ b/src/etc/ecl.php @@ -2,7 +2,7 @@ /* * ecl.php * - * Copyright (c) 2010-2015 Electric Sheep Fencing, LLC. All rights reserved. + * Copyright (c) 2010-2015 Rubicon Communications, LLC (Netgate). All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/etc/inc/auth.inc b/src/etc/inc/auth.inc index eb18765..04af52f 100644 --- a/src/etc/inc/auth.inc +++ b/src/etc/inc/auth.inc @@ -6,7 +6,7 @@ * Copyright (c) 2003-2006 Manuel Kasper <mk@neon1.net> * Copyright (c) 2005-2006 Bill Marquette <bill.marquette@gmail.com> * Copyright (c) 2006 Paul Taylor <paultaylor@winn-dixie.com> - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -370,7 +370,6 @@ function local_backed($username, $passwd) { function local_sync_accounts() { global $debug, $config; - conf_mount_rw(); /* remove local users to avoid uid conflicts */ $fd = popen("/usr/sbin/pw usershow -a", "r"); @@ -444,7 +443,6 @@ function local_sync_accounts() { } } - conf_mount_ro(); } @@ -456,7 +454,6 @@ function local_user_set(& $user) { return; } - conf_mount_rw(); $home_base = "/home/"; $user_uid = $user['uid']; @@ -578,7 +575,6 @@ function local_user_set(& $user) { $un = $lock_account ? "" : "un"; exec("/usr/sbin/pw {$un}lock " . escapeshellarg($user_name) . " -q 2>/dev/null"); - conf_mount_ro(); } function local_user_del($user) { @@ -1668,11 +1664,12 @@ function session_auth() { $attributes = array(); if (isset($_POST['login']) && !empty($_POST['usernamefld']) && !empty($_POST['passwordfld'])) { $authcfg = auth_get_authserver($config['system']['webgui']['authmode']); - if (authenticate_user($_POST['usernamefld'], $_POST['passwordfld'], $authcfg, $attributes) || - authenticate_user($_POST['usernamefld'], $_POST['passwordfld'])) { + $remoteauth = authenticate_user($_POST['usernamefld'], $_POST['passwordfld'], $authcfg, $attributes); + if ($remoteauth || authenticate_user($_POST['usernamefld'], $_POST['passwordfld'])) { // Generate a new id to avoid session fixation session_regenerate_id(); $_SESSION['Logged_In'] = "True"; + $_SESSION['remoteauth'] = $remoteauth; $_SESSION['Username'] = $_POST['usernamefld']; $_SESSION['user_radius_attributes'] = $attributes; $_SESSION['last_access'] = time(); diff --git a/src/etc/inc/authgui.inc b/src/etc/inc/authgui.inc index 20b5581..a8189c4 100644 --- a/src/etc/inc/authgui.inc +++ b/src/etc/inc/authgui.inc @@ -6,7 +6,7 @@ * Copyright (c) 2003-2006 Manuel Kasper <mk@neon1.net> * Copyright (c) 2005-2006 Bill Marquette <bill.marquette@gmail.com> * Copyright (c) 2006 Paul Taylor <paultaylor@winn-dixie.com> - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -220,6 +220,12 @@ if (isset($user_settings['webgui']['webguicss'])) { } } +if (isset($config['system']['webgui']['loginshowhost'])) { +$hoststr = sprintf(gettext(" on %s.%s"), htmlspecialchars($config['system']['hostname']), htmlspecialchars($config['system']['domain'])); +} else { + $hoststr = ""; +} + ?> <!DOCTYPE html> <html lang="en"> @@ -248,7 +254,7 @@ if (isset($user_settings['webgui']['webguicss'])) { <div class="panel panel-default"> <div class="panel-heading"> - <h2 class="panel-title"><?=sprintf(gettext("Login to %s"), $g['product_name'])?></h2> + <h2 class="panel-title"><?=sprintf(gettext("Login to %s %s"), $g['product_name'], $hoststr)?></h2> </div> <div class="panel-body"> diff --git a/src/etc/inc/captiveportal.inc b/src/etc/inc/captiveportal.inc index a482b12..208c7c8 100644 --- a/src/etc/inc/captiveportal.inc +++ b/src/etc/inc/captiveportal.inc @@ -3,7 +3,7 @@ * captiveportal.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) @@ -139,17 +139,26 @@ function captiveportal_load_modules() { mwexec("/sbin/kldload ipfw"); /* make sure ipfw is not on pfil hooks */ set_sysctl(array( - "net.inet.ip.pfil.inbound" => "pf", "net.inet6.ip6.pfil.inbound" => "pf", - "net.inet.ip.pfil.outbound" => "pf", "net.inet6.ip6.pfil.outbound" => "pf") - ); + "net.inet.ip.pfil.inbound" => "pf", + "net.inet6.ip6.pfil.inbound" => "pf", + "net.inet.ip.pfil.outbound" => "pf", + "net.inet6.ip6.pfil.outbound" => "pf" + )); } /* Activate layer2 filtering */ - set_sysctl(array("net.link.ether.ipfw" => "1", "net.inet.ip.fw.one_pass" => "1")); + set_sysctl(array( + "net.link.ether.ipfw" => "1", + "net.inet.ip.fw.one_pass" => "1", + "net.inet.ip.fw.tables_max" => "65534" + )); /* Always load dummynet now that even allowed ip and mac passthrough use it. */ if (!is_module_loaded("dummynet.ko")) { mwexec("/sbin/kldload dummynet"); - set_sysctl(array("net.inet.ip.dummynet.io_fast" => "1", "net.inet.ip.dummynet.hash_size" => "256")); + set_sysctl(array( + "net.inet.ip.dummynet.io_fast" => "1", + "net.inet.ip.dummynet.hash_size" => "256" + )); } unmute_kernel_msgs(); } @@ -340,6 +349,8 @@ EOD; captiveportal_radius_stop_all(); + captiveportal_filterdns_configure(); + /* send Accounting-Off to server */ if (!platform_booting()) { captiveportal_send_server_accounting(true); @@ -352,7 +363,7 @@ EOD; /* Release allocated pipes for this zone */ captiveportal_free_dnrules(); - mwexec("/sbin/ipfw zone {$cpzoneid} destroy", true); + captiveportal_delete_rules(); if (empty($config['captiveportal'])) { set_single_sysctl("net.link.ether.ipfw", "0"); @@ -461,6 +472,57 @@ function captiveportal_init_rules_byinterface($interface) { } } +/* Create basic rules used by all zones */ +function captiveportal_init_general_rules($flush = false) { + global $g; + + $flush_rule = ''; + if ($flush) { + $flush_rule = 'flush'; + } + + /* Already loaded */ + if (!$flush && (mwexec("/sbin/ipfw list 1000", true) == 0)) { + return; + } + + $cprules = <<<EOD +{$flush_rule} +# Table with interfaces that have CP enabled +table cp_ifaces create type iface valtype skipto + +# Redirect each CP interface to its specific rule +add 1000 skipto tablearg all from any to any via table(cp_ifaces) + +# This interface has no cp zone configured +add 1100 allow all from any to any + +# block everything else +add 65534 deny all from any to any +EOD; + + /* load rules */ + file_put_contents("{$g['tmp_path']}/ipfw.cp.rules", $cprules); + mwexec("/sbin/ipfw -q {$g['tmp_path']}/ipfw.cp.rules", true); + @unlink("{$g['tmp_path']}/ipfw_{$cpzone}.cp.rules"); + unset($cprules); +} + +/* Create a string with ipfw rule and increase rulenum */ +function captiveportal_create_ipfw_rule($cmd, &$rulenum, $args) { + $rule = "{$cmd} {$rulenum} {$args}\n"; + $rulenum++; + + return $rule; +} + +/* Return first rule number for a cp zone */ +function captiveportal_ipfw_ruleno($id) { + global $g; + + return 2000 + $id * $g['captiveportal_rules_interval']; +} + /* reinit will disconnect all users, be careful! */ function captiveportal_init_rules($reinit = false) { global $config, $g, $cpzone, $cpzoneid; @@ -470,12 +532,16 @@ function captiveportal_init_rules($reinit = false) { } captiveportal_load_modules(); - mwexec("/sbin/ipfw zone {$cpzoneid} create", true); + captiveportal_init_general_rules(); /* Cleanup so nothing is leaked */ captiveportal_free_dnrules(); unlink_if_exists("{$g['vardb_path']}/captiveportal_{$cpzone}.rules"); + $skipto = captiveportal_ipfw_ruleno($cpzoneid); + + $cprules = ''; + $cpips = array(); $ifaces = get_configured_interface_list(); $cpinterfaces = explode(",", $config['captiveportal'][$cpzone]['interface']); @@ -485,20 +551,28 @@ function captiveportal_init_rules($reinit = false) { continue; } $tmpif = get_real_interface($cpifgrp); - if (!empty($tmpif)) { - $cpipm = get_interface_ip($cpifgrp); - if (is_ipaddr($cpipm)) { - $cpips[] = $cpipm; - if (is_array($config['virtualip']['vip'])) { - foreach ($config['virtualip']['vip'] as $vip) { - if (($vip['interface'] == $cpifgrp) && (($vip['mode'] == "carp") || ($vip['mode'] == "ipalias"))) { - $cpips[] = $vip['subnet']; - } - } + if (empty($tmpif)) { + continue; + } + + $cpipm = get_interface_ip($cpifgrp); + + if (!is_ipaddr($cpipm)) { + continue; + } + + $cpips[] = $cpipm; + if (is_array($config['virtualip']['vip'])) { + foreach ($config['virtualip']['vip'] as $vip) { + if (($vip['interface'] == $cpifgrp) && + (($vip['mode'] == "carp") || + ($vip['mode'] == "ipalias"))) { + $cpips[] = $vip['subnet']; } } - mwexec("/sbin/ipfw zone {$cpzoneid} madd {$tmpif}", true); } + + $cprules .= "table cp_ifaces add {$tmpif} {$skipto}\n"; } if (count($cpips) > 0) { $cpactive = true; @@ -510,53 +584,60 @@ function captiveportal_init_rules($reinit = false) { $captiveportallck = lock("captiveportal{$cpzone}"); } - $cprules = <<<EOD - -flush -add 65291 allow pfsync from any to any -add 65292 allow carp from any to any - -# layer 2: pass ARP -add 65301 pass layer2 mac-type arp,rarp -# pfsense requires for WPA -add 65302 pass layer2 mac-type 0x888e,0x88c7 -# PPP Over Ethernet Session Stage/Discovery Stage -add 65303 pass layer2 mac-type 0x8863,0x8864 - -# layer 2: block anything else non-IP(v4/v6) -add 65307 deny layer2 not mac-type ip,ipv6 - -EOD; + $rulenum = $skipto; + $cprules .= "table {$cpzone}_pipe_mac create type mac valtype pipe\n"; + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "pipe tablearg MAC table({$cpzone}_pipe_mac)"); + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "allow pfsync from any to any"); + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "allow carp from any to any\n"); + $cprules .= "# layer 2: pass ARP\n"; + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "pass layer2 mac-type arp,rarp"); + $cprules .= "# pfsense requires for WPA\n"; + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "pass layer2 mac-type 0x888e,0x88c7"); + $cprules .= "# PPP Over Ethernet Session Stage/Discovery Stage\n"; + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "pass layer2 mac-type 0x8863,0x8864\n"); + $cprules .= "# layer 2: block anything else non-IP(v4/v6)\n"; + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "deny layer2 not mac-type ip,ipv6"); - $rulenum = 65310; /* These tables contain host ips */ - $cprules .= "add {$rulenum} pass ip from any to table(100) in\n"; - $rulenum++; - $cprules .= "add {$rulenum} pass ip from table(100) to any out\n"; - $rulenum++; + $cprules .= "table {$cpzone}_host_ips create type addr\n"; + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "pass ip from any to table({$cpzone}_host_ips) in"); + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "pass ip from table({$cpzone}_host_ips) to any out"); foreach ($cpips as $cpip) { - $cprules .= "table 100 add {$cpip}\n"; + $cprules .= "table {$cpzone}_host_ips add {$cpip}\n"; } - $cprules .= "add {$rulenum} pass ip from any to 255.255.255.255 in\n"; - $rulenum++; - $cprules .= "add {$rulenum} pass ip from 255.255.255.255 to any out\n"; - $rulenum++; + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "pass ip from any to 255.255.255.255 in"); + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "pass ip from 255.255.255.255 to any out"); /* Allowed ips */ - $cprules .= "add {$rulenum} pipe tablearg ip from table(3) to any in\n"; - $rulenum++; - $cprules .= "add {$rulenum} pipe tablearg ip from any to table(4) in\n"; - $rulenum++; - $cprules .= "add {$rulenum} pipe tablearg ip from table(3) to any out\n"; - $rulenum++; - $cprules .= "add {$rulenum} pipe tablearg ip from any to table(4) out\n"; - $rulenum++; + $cprules .= "table {$cpzone}_allowed_up create type addr valtype pipe\n"; + $cprules .= "table {$cpzone}_allowed_down create type addr valtype pipe\n"; + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "pipe tablearg ip from table({$cpzone}_allowed_up) to any in"); + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "pipe tablearg ip from any to table({$cpzone}_allowed_down) in"); + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "pipe tablearg ip from table({$cpzone}_allowed_up) to any out"); + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "pipe tablearg ip from any to table({$cpzone}_allowed_down) out"); /* Authenticated users rules. */ - $cprules .= "add {$rulenum} pipe tablearg ip from table(1) to any in\n"; - $rulenum++; - $cprules .= "add {$rulenum} pipe tablearg ip from any to table(2) out\n"; - $rulenum++; + $cprules .= "table {$cpzone}_auth_up create type addr valtype pipe\n"; + $cprules .= "table {$cpzone}_auth_down create type addr valtype pipe\n"; + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "pipe tablearg ip from table({$cpzone}_auth_up) to any in"); + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "pipe tablearg ip from any to table({$cpzone}_auth_down) out"); if (!empty($config['captiveportal'][$cpzone]['listenporthttp'])) { $listenporthttp = $config['captiveportal'][$cpzone]['listenporthttp']; @@ -571,22 +652,23 @@ EOD; $listenporthttps = 8001 + $cpzoneid; } if (!isset($config['captiveportal'][$cpzone]['nohttpsforwards'])) { - $cprules .= "add 65531 fwd 127.0.0.1,{$listenporthttps} tcp from any to any dst-port 443 in\n"; + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "fwd 127.0.0.1,{$listenporthttps} tcp from any to any dst-port 443 in"); } } - $cprules .= <<<EOD - -# redirect non-authenticated clients to captive portal -add 65532 fwd 127.0.0.1,{$listenporthttp} tcp from any to any dst-port 80 in -# let the responses from the captive portal web server back out -add 65533 pass tcp from any to any out -# block everything else -add 65534 deny all from any to any - -EOD; + $cprules .= "# redirect non-authenticated clients to captive portal\n"; + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "fwd 127.0.0.1,{$listenporthttp} tcp from any to any dst-port 80 in"); + $cprules .= "# let the responses from the captive portal web server back out\n"; + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "pass tcp from any to any out"); + $cprules .= "# This CP zone is over, skip to last rule\n"; + $cprules .= captiveportal_create_ipfw_rule("add", $rulenum, + "skipto 65534 all from any to any"); /* generate passthru mac database */ + file_put_contents("/tmp/debug_antes", $cprules); $cprules .= captiveportal_passthrumac_configure(true); $cprules .= "\n"; @@ -597,16 +679,57 @@ EOD; $cprules .= captiveportal_allowedhostname_configure(); /* load rules */ + captiveportal_delete_rules(); file_put_contents("{$g['tmp_path']}/ipfw_{$cpzone}.cp.rules", $cprules); - mwexec("/sbin/ipfw -x {$cpzoneid} -q {$g['tmp_path']}/ipfw_{$cpzone}.cp.rules", true); - //@unlink("{$g['tmp_path']}/ipfw_{$cpzone}.cp.rules"); + mwexec("/sbin/ipfw -q {$g['tmp_path']}/ipfw_{$cpzone}.cp.rules", true); + @unlink("{$g['tmp_path']}/ipfw_{$cpzone}.cp.rules"); unset($cprules); + captiveportal_filterdns_configure(); + if ($reinit == false) { unlock($captiveportallck); } } +/* Delete all rules related to specific cpzone */ +function captiveportal_delete_rules() { + global $g, $cpzoneid; + + $skipto1 = captiveportal_ipfw_ruleno($cpzoneid); + $skipto2 = $skipto1 + $g['captiveportal_rules_interval']; + + $cp_ifaces = pfSense_ipfw_table_list("cp_ifaces"); + if (is_array($cp_ifaces)) { + foreach ($cp_ifaces as $cp_iface) { + if (empty($cp_iface['skipto']) || + $cp_iface['skipto'] != $skipto1) { + continue; + } + + pfSense_ipfw_table("cp_ifaces", IP_FW_TABLE_XDEL, + $cp_iface['iface']); + } + } + + mwexec("/sbin/ipfw delete {$skipto1}-{$skipto2}", true); + + $tables = captiveportal_get_ipfw_table_names(); + + $delrules = ""; + foreach ($tables as $table) { + $delrules .= "table {$table} destroy\n"; + } + + if (empty($delrules)) { + return; + } + + file_put_contents("{$g['tmp_path']}/ipfw_{$cpzone}.deltable.rules", $delrules); + mwexec("/sbin/ipfw -q {$g['tmp_path']}/ipfw_{$cpzone}.deltable.rules", true); + @unlink("{$g['tmp_path']}/ipfw_{$cpzone}.del.rules"); +} + /* * Remove clients that have been around for longer than the specified amount of time * db file structure: @@ -741,8 +864,10 @@ function captiveportal_prune_old() { false, // Not an interim request $rastop_time); // Stop Time $clientsn = (is_ipaddrv6($cpentry[2])) ? 128 : 32; - $_gb = @pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XZEROENTRY, 1, $cpentry[2], $clientsn, $cpentry[3]); - $_gb = @pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XZEROENTRY, 2, $cpentry[2], $clientsn, $cpentry[3]); + /* XXX: Fix + $_gb = @pfSense_ipfw_table($cpzoneid, IP_FW_TABLE_XZEROENTRY, {$cpzone}_auth_up, $cpentry[2], $clientsn, $cpentry[3]); + $_gb = @pfSense_ipfw_table($cpzoneid, IP_FW_TABLE_XZEROENTRY, {$cpzone}_auth_down, $cpentry[2], $clientsn, $cpentry[3]); + */ if ($cpcfg['reauthenticateacct'] == "stopstartfreeradius") { /* Need to pause here or the FreeRADIUS server gets confused about packet ordering. */ sleep(1); @@ -814,61 +939,55 @@ function captiveportal_prune_old() { function captiveportal_prune_old_automac() { global $g, $config, $cpzone, $cpzoneid; - if (is_array($config['captiveportal'][$cpzone]['passthrumac']) && isset($config['captiveportal'][$cpzone]['passthrumacaddusername'])) { + if (is_array($config['captiveportal'][$cpzone]['passthrumac']) && + isset($config['captiveportal'][$cpzone]['passthrumacaddusername'])) { $tmpvoucherdb = array(); $macrules = ""; $writecfg = false; foreach ($config['captiveportal'][$cpzone]['passthrumac'] as $eid => $emac) { - if ($emac['logintype'] == "voucher") { - if (isset($config['captiveportal'][$cpzone]['noconcurrentlogins'])) { - if (isset($tmpvoucherdb[$emac['username']])) { - $temac = $config['captiveportal'][$cpzone]['passthrumac'][$tmpvoucherdb[$emac['username']]]; - $ruleno = captiveportal_get_ipfw_passthru_ruleno($temac['mac']); - $pipeno = captiveportal_get_dn_passthru_ruleno($temac['mac']); - if ($ruleno) { - captiveportal_free_ipfw_ruleno($ruleno); - $macrules .= "delete {$ruleno}"; - ++$ruleno; - $macrules .= "delete {$ruleno}"; - } - if ($pipeno) { - captiveportal_free_dn_ruleno($pipeno); - $macrules .= "pipe delete {$pipeno}\n"; - ++$pipeno; - $macrules .= "pipe delete {$pipeno}\n"; - } - $writecfg = true; - captiveportal_logportalauth($temac['username'], $temac['mac'], $temac['ip'], "DUPLICATE {$temac['username']} LOGIN - TERMINATING OLD SESSION"); - unset($config['captiveportal'][$cpzone]['passthrumac'][$tmpvoucherdb[$emac['username']]]); - } - $tmpvoucherdb[$emac['username']] = $eid; - } - if (voucher_auth($emac['username']) <= 0) { - $ruleno = captiveportal_get_ipfw_passthru_ruleno($emac['mac']); - $pipeno = captiveportal_get_dn_passthru_ruleno($emac['mac']); - if ($ruleno) { - captiveportal_free_ipfw_ruleno($ruleno); - $macrules .= "delete {$ruleno}"; - ++$ruleno; - $macrules .= "delete {$ruleno}"; - } + if ($emac['logintype'] != "voucher") { + continue; + } + if (isset($config['captiveportal'][$cpzone]['noconcurrentlogins'])) { + if (isset($tmpvoucherdb[$emac['username']])) { + $temac = $config['captiveportal'][$cpzone]['passthrumac'][$tmpvoucherdb[$emac['username']]]; + $pipeno = captiveportal_get_dn_passthru_ruleno($temac['mac']); if ($pipeno) { captiveportal_free_dn_ruleno($pipeno); + $macrules .= "table {$cpzone}_pipe_mac delete any,{$temac['mac']}\n"; + $macrules .= "table {$cpzone}_pipe_mac delete {$temac['mac']},any\n"; $macrules .= "pipe delete {$pipeno}\n"; ++$pipeno; $macrules .= "pipe delete {$pipeno}\n"; } $writecfg = true; - captiveportal_logportalauth($emac['username'], $emac['mac'], $emac['ip'], "EXPIRED {$emac['username']} LOGIN - TERMINATING SESSION"); - unset($config['captiveportal'][$cpzone]['passthrumac'][$eid]); + captiveportal_logportalauth($temac['username'], $temac['mac'], + $temac['ip'], "DUPLICATE {$temac['username']} LOGIN - TERMINATING OLD SESSION"); + unset($config['captiveportal'][$cpzone]['passthrumac'][$tmpvoucherdb[$emac['username']]]); + } + $tmpvoucherdb[$emac['username']] = $eid; + } + if (voucher_auth($emac['username']) <= 0) { + $pipeno = captiveportal_get_dn_passthru_ruleno($emac['mac']); + if ($pipeno) { + captiveportal_free_dn_ruleno($pipeno); + $macrules .= "table {$cpzone}_pipe_mac delete any,{$emac['mac']}\n"; + $macrules .= "table {$cpzone}_pipe_mac delete {$emac['mac']},any\n"; + $macrules .= "pipe delete {$pipeno}\n"; + ++$pipeno; + $macrules .= "pipe delete {$pipeno}\n"; } + $writecfg = true; + captiveportal_logportalauth($emac['username'], $emac['mac'], + $emac['ip'], "EXPIRED {$emac['username']} LOGIN - TERMINATING SESSION"); + unset($config['captiveportal'][$cpzone]['passthrumac'][$eid]); } } unset($tmpvoucherdb); if (!empty($macrules)) { @file_put_contents("{$g['tmp_path']}/macentry.prunerules.tmp", $macrules); unset($macrules); - mwexec("/sbin/ipfw -x {$cpzoneid} -q {$g['tmp_path']}/macentry.prunerules.tmp"); + mwexec("/sbin/ipfw -q {$g['tmp_path']}/macentry.prunerules.tmp"); } if ($writecfg === true) { write_config("Prune session for auto-added macs"); @@ -904,10 +1023,10 @@ function captiveportal_disconnect($dbent, $radiusservers, $term_cause = 1, $stop } if (is_ipaddr($dbent[2])) { - /* Delete client's ip entry from tables 1 and 2. */ + /* Delete client's ip entry from tables auth_up and auth_down. */ $clientsn = (is_ipaddrv6($dbent[2])) ? 128 : 32; - pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XDEL, 1, $dbent[2], $clientsn, $dbent[3]); - pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XDEL, 2, $dbent[2], $clientsn, $dbent[3]); + pfSense_ipfw_table("{$cpzone}_auth_up", IP_FW_TABLE_XDEL, "{$dbent[2]}/{$clientsn}"); + pfSense_ipfw_table("{$cpzone}_auth_down", IP_FW_TABLE_XDEL, "{$dbent[2]}/{$clientsn}"); /* XXX: Redundant?! Ensure all pf(4) states are killed. */ $_gb = @pfSense_kill_states($dbent[2]); $_gb = @pfSense_kill_srcstates($dbent[2]); @@ -918,8 +1037,8 @@ function captiveportal_disconnect($dbent, $radiusservers, $term_cause = 1, $stop * We could get an error if the pipe doesn't exist but everything should still be fine */ if (!empty($dbent[1])) { - $_gb = @pfSense_pipe_action("pipe delete {$dbent[1]}"); - $_gb = @pfSense_pipe_action("pipe delete " . ($dbent[1]+1)); + $_gb = @pfSense_ipfw_pipe("pipe delete {$dbent[1]}"); + $_gb = @pfSense_ipfw_pipe("pipe delete " . ($dbent[1]+1)); /* Release the ruleno so it can be reallocated to new clients. */ captiveportal_free_dn_ruleno($dbent[1]); @@ -1006,29 +1125,27 @@ function captiveportal_passthrumac_configure_entry($macent, $pipeinrule = false) $bwDown = $config['captiveportal'][$cpzone]['bwdefaultdn']; } - $ruleno = captiveportal_get_next_ipfw_ruleno(); - if ($macent['action'] == 'pass') { $rules = ""; + $pipeno = captiveportal_get_next_dn_ruleno(); $pipeup = $pipeno; if ($pipeinrule == true) { - $_gb = @pfSense_pipe_action("pipe {$pipeno} config bw {$bwUp}Kbit/s queue 100 buckets 16"); + $_gb = @pfSense_ipfw_pipe("pipe {$pipeno} config bw {$bwUp}Kbit/s queue 100 buckets 16"); } else { $rules .= "pipe {$pipeno} config bw {$bwUp}Kbit/s queue 100 buckets 16\n"; } $pipedown = $pipeno + 1; if ($pipeinrule == true) { - $_gb = @pfSense_pipe_action("pipe {$pipedown} config bw {$bwDown}Kbit/s queue 100 buckets 16"); + $_gb = @pfSense_ipfw_pipe("pipe {$pipedown} config bw {$bwDown}Kbit/s queue 100 buckets 16"); } else { $rules .= "pipe {$pipedown} config bw {$bwDown}Kbit/s queue 100 buckets 16\n"; } - $rules .= "add {$ruleno} pipe {$pipeup} ip from any to any MAC any {$macent['mac']}\n"; - $ruleno++; - $rules .= "add {$ruleno} pipe {$pipedown} ip from any to any MAC {$macent['mac']} any\n"; + $rules .= "table {$cpzone}_pipe_mac add any,{$macent['mac']} {$pipeup}\n"; + $rules .= "table {$cpzone}_pipe_mac add {$macent['mac']},any {$pipedown}\n"; } return $rules; @@ -1038,21 +1155,12 @@ function captiveportal_passthrumac_delete_entry($macent) { $rules = ""; if ($macent['action'] == 'pass') { - $ruleno = captiveportal_get_ipfw_passthru_ruleno($macent['mac']); - - if (!$ruleno) { - return $rules; - } - - captiveportal_free_ipfw_ruleno($ruleno); - - $rules .= "delete {$ruleno}\n"; - $rules .= "delete " . ++$ruleno . "\n"; - $pipeno = captiveportal_get_dn_passthru_ruleno($macent['mac']); if (!empty($pipeno)) { captiveportal_free_dn_ruleno($pipeno); + $rules .= "table {$cpzone}_pipe_mac delete any,{$macent['mac']}\n"; + $rules .= "table {$cpzone}_pipe_mac delete {$macent['mac']},any\n"; $rules .= "pipe delete " . $pipeno . "\n"; $rules .= "pipe delete " . ++$pipeno . "\n"; } @@ -1117,7 +1225,7 @@ function captiveportal_passthrumac_findbyname($username) { * table (3=IN)/(4=OUT) hold allowed ip's without bw limits */ function captiveportal_allowedip_configure_entry($ipent, $ishostname = false) { - global $g; + global $g, $config, $cpzone; /* Instead of copying this entire function for something * easy such as hostname vs ip address add this check @@ -1150,23 +1258,25 @@ function captiveportal_allowedip_configure_entry($ipent, $ishostname = false) { $enBwdown = $config['captiveportal'][$cpzone]['bwdefaultdn']; } - $pipeno = captiveportal_get_next_dn_ruleno(); - $_gb = @pfSense_pipe_action("pipe {$pipeno} config bw {$enBwup}Kbit/s queue 100 buckets 16"); - $pipedown = $pipeno + 1; - $_gb = @pfSense_pipe_action("pipe {$pipedown} config bw {$enBwdown}Kbit/s queue 100 buckets 16"); + $pipeup = captiveportal_get_next_dn_ruleno(); + $_gb = @pfSense_ipfw_pipe("pipe {$pipeup} config bw {$enBwup}Kbit/s queue 100 buckets 16"); + $pipedown = $pipeup + 1; + $_gb = @pfSense_ipfw_pipe("pipe {$pipedown} config bw {$enBwdown}Kbit/s queue 100 buckets 16"); + if ($ishostname === true) { - $cp_filterdns_conf .= "ipfw {$ipent['hostname']} 3 pipe {$pipeno}\n"; - $cp_filterdns_conf .= "ipfw {$ipent['hostname']} 4 pipe {$pipedown}\n"; + $cp_filterdns_conf .= "ipfw {$ipent['hostname']} {$cpzone}_allowed_up pipe {$pipeup}\n"; + $cp_filterdns_conf .= "ipfw {$ipent['hostname']} {$cpzone}_allowed_down pipe {$pipedown}\n"; if (!is_ipaddr($ipaddress)) { return array("", $cp_filterdns_conf); } } + $subnet = ""; if (!empty($ipent['sn'])) { $subnet = "/{$ipent['sn']}"; } - $rules .= "table 3 add {$ipaddress}{$subnet} {$pipeno}\n"; - $rules .= "table 4 add {$ipaddress}{$subnet} {$pipedown}\n"; + $rules .= "table {$cpzone}_allowed_up add {$ipaddress}{$subnet} {$pipeup}\n"; + $rules .= "table {$cpzone}_allowed_down add {$ipaddress}{$subnet} {$pipedown}\n"; if ($ishostname === true) { return array($rules, $cp_filterdns_conf); @@ -1179,21 +1289,41 @@ function captiveportal_allowedhostname_configure() { global $config, $g, $cpzone, $cpzoneid; $rules = ""; - if (is_array($config['captiveportal'][$cpzone]['allowedhostname'])) { - $rules = "\n# captiveportal_allowedhostname_configure()\n"; - $cp_filterdns_conf = ""; - foreach ($config['captiveportal'][$cpzone]['allowedhostname'] as $hostnameent) { - $tmprules = captiveportal_allowedip_configure_entry($hostnameent, true); - $rules .= $tmprules[0]; - $cp_filterdns_conf .= $tmprules[1]; - } - $cp_filterdns_filename = "{$g['varetc_path']}/filterdns-{$cpzone}-captiveportal.conf"; - @file_put_contents($cp_filterdns_filename, $cp_filterdns_conf); - unset($cp_filterdns_conf); - if (isvalidpid("{$g['varrun_path']}/filterdns-{$cpzone}-cpah.pid")) { - sigkillbypid("{$g['varrun_path']}/filterdns-{$cpzone}-cpah.pid", "HUP"); + if (!is_array($config['captiveportal'][$cpzone]['allowedhostname'])) { + return $rules; + } + + $rules = "\n# captiveportal_allowedhostname_configure()\n"; + $cp_filterdns_conf = ""; + foreach ($config['captiveportal'][$cpzone]['allowedhostname'] as $hostnameent) { + $tmprules = captiveportal_allowedip_configure_entry($hostnameent, true); + $rules .= $tmprules[0]; + $cp_filterdns_conf .= $tmprules[1]; + } + $cp_filterdns_filename = "{$g['varetc_path']}/filterdns-{$cpzone}-captiveportal.conf"; + @file_put_contents($cp_filterdns_filename, $cp_filterdns_conf); + unset($cp_filterdns_conf); + + return $rules; +} + +function captiveportal_filterdns_configure() { + global $config, $g, $cpzone, $cpzoneid; + + $cp_filterdns_filename = $g['varetc_path'] . + "/filterdns-{$cpzone}-captiveportal.conf"; + + if (isset($config['captiveportal'][$cpzone]['enable']) && + is_array($config['captiveportal'][$cpzone]['allowedhostname']) && + file_exists($cp_filterdns_filename)) { + if (isvalidpid($g['varrun_path'] . + "/filterdns-{$cpzone}-cpah.pid")) { + sigkillbypid($g['varrun_path'] . + "/filterdns-{$cpzone}-cpah.pid", "HUP"); } else { - mwexec("/usr/local/sbin/filterdns -p {$g['varrun_path']}/filterdns-{$cpzone}-cpah.pid -i 300 -c {$cp_filterdns_filename} -y {$cpzoneid} -d 1"); + mwexec("/usr/local/sbin/filterdns -p " . + "{$g['varrun_path']}/filterdns-{$cpzone}-cpah.pid" . + " -i 300 -c {$cp_filterdns_filename} -d 1"); } } else { killbypid("{$g['varrun_path']}/filterdns-{$cpzone}-cpah.pid"); @@ -1220,6 +1350,8 @@ function captiveportal_allowedip_configure() { function captiveportal_get_last_activity($ip, $mac = NULL, $table = 1) { global $cpzoneid; + /* XXX Fix */ + return 0; $ipfwoutput = pfSense_ipfw_getTablestats($cpzoneid, IP_FW_TABLE_XLISTENTRY, $table, $ip, $mac); /* Reading only from one of the tables is enough of approximation. */ if (is_array($ipfwoutput)) { @@ -1465,7 +1597,10 @@ function captiveportal_opendb() { } } if (is_numericint($cpzoneid)) { - mwexec("/sbin/ipfw -x $cpzoneid table all flush"); + $table_names = captiveportal_get_ipfw_table_names(); + foreach ($table_names as $table_name) { + mwexec("/sbin/ipfw table {$table_name} flush"); + } captiveportal_syslog("Flushed tables for {$cpzone} after database reset."); } } else { @@ -1476,6 +1611,29 @@ function captiveportal_opendb() { return $DB; } +/* Get all tables for specific cpzone */ +function captiveportal_get_ipfw_table_names() { + global $cpzone; + + $result = array(); + $tables = pfSense_ipfw_tables_list(); + + if (!is_array($tables)) { + return $result; + } + + $len = strlen($cpzone) + 1; + foreach ($tables as $table) { + if (substr($table['name'], 0, $len) != $cpzone . '_') { + continue; + } + + $result[] = $table['name']; + } + + return $result; +} + /* read captive portal DB into array */ function captiveportal_read_db($query = "") { $cpdb = array(); @@ -1547,7 +1705,6 @@ function captiveportal_write_elements() { } if (is_array($cpcfg['element'])) { - conf_mount_rw(); foreach ($cpcfg['element'] as $data) { /* Do not attempt to decode or write out empty files. */ if (empty($data['content']) || empty(base64_decode($data['content']))) { @@ -1561,7 +1718,6 @@ function captiveportal_write_elements() { @symlink("{$g['captiveportal_element_path']}/{$data['name']}", "{$g['captiveportal_path']}/{$data['name']}"); } } - conf_mount_ro(); } return 0; @@ -1649,102 +1805,16 @@ function captiveportal_get_dn_passthru_ruleno($value) { $cpruleslck = lock("captiveportalrulesdn", LOCK_EX); $ruleno = NULL; if (file_exists("{$g['vardb_path']}/captiveportaldn.rules")) { - $rules = unserialize(file_get_contents("{$g['vardb_path']}/captiveportaldn.rules")); unset($output); - $_gb = exec("/sbin/ipfw -x {$cpzoneid} show | /usr/bin/grep " . escapeshellarg($value) . " | /usr/bin/grep -v grep | /usr/bin/awk '{print $5}' | /usr/bin/head -n 1", $output); - $ruleno = intval($output[0]); - if (!$rules[$ruleno]) { - $ruleno = NULL; + $item = pfSense_ipfw_table_lookup("{$cpzone}_pipe_mac", + "any,{$value}"); + if (!is_array($item) || empty($item['pipe'])) { + unlock($cpruleslck); + return NULL; } - unset($rules); - } - unlock($cpruleslck); - return $ruleno; -} - -/* - * This function will calculate the lowest free firewall ruleno - * within the range specified based on the actual logged on users - * - */ -function captiveportal_get_next_ipfw_ruleno($rulenos_start = 2, $rulenos_range_max = 64500) { - global $config, $g, $cpzone; - - $cpcfg = $config['captiveportal'][$cpzone]; - if (!isset($cpcfg['enable'])) { - return NULL; - } - - $cpruleslck = lock("captiveportalrules{$cpzone}", LOCK_EX); - $ruleno = 0; - if (file_exists("{$g['vardb_path']}/captiveportal_{$cpzone}.rules")) { - $rules = unserialize(file_get_contents("{$g['vardb_path']}/captiveportal_{$cpzone}.rules")); - $ridx = $rulenos_start; - while ($ridx < $rulenos_range_max) { - if (empty($rules[$ridx])) { - $ruleno = $ridx; - $rules[$ridx] = $cpzone; - $ridx++; - $rules[$ridx] = $cpzone; - break; - } else { - /* - * This allows our traffic shaping pipes to be the in pipe the same as ruleno - * and the out pipe ruleno + 1. - */ - $ridx += 2; - } - } - } else { - $rules = array_pad(array(), $rulenos_range_max, false); - $ruleno = $rulenos_start; - $rules[$rulenos_start] = $cpzone; - $rulenos_start++; - $rules[$rulenos_start] = $cpzone; - } - file_put_contents("{$g['vardb_path']}/captiveportal_{$cpzone}.rules", serialize($rules)); - unlock($cpruleslck); - unset($rules); - - return $ruleno; -} - -function captiveportal_free_ipfw_ruleno($ruleno) { - global $config, $g, $cpzone; - - $cpcfg = $config['captiveportal'][$cpzone]; - if (!isset($cpcfg['enable'])) { - return NULL; - } - - $cpruleslck = lock("captiveportalrules{$cpzone}", LOCK_EX); - if (file_exists("{$g['vardb_path']}/captiveportal_{$cpzone}.rules")) { - $rules = unserialize(file_get_contents("{$g['vardb_path']}/captiveportal_{$cpzone}.rules")); - $rules[$ruleno] = false; - $ruleno++; - $rules[$ruleno] = false; - file_put_contents("{$g['vardb_path']}/captiveportal_{$cpzone}.rules", serialize($rules)); - unset($rules); - } - unlock($cpruleslck); -} - -function captiveportal_get_ipfw_passthru_ruleno($value) { - global $config, $g, $cpzone, $cpzoneid; - - $cpcfg = $config['captiveportal'][$cpzone]; - if (!isset($cpcfg['enable'])) { - return NULL; - } - - $cpruleslck = lock("captiveportalrules{$cpzone}", LOCK_EX); - $ruleno = NULL; - if (file_exists("{$g['vardb_path']}/captiveportal_{$cpzone}.rules")) { - $rules = unserialize(file_get_contents("{$g['vardb_path']}/captiveportal_{$cpzone}.rules")); - unset($output); - $_gb = exec("/sbin/ipfw -x {$cpzoneid} show | /usr/bin/grep " . escapeshellarg($value) . " | /usr/bin/grep -v grep | /usr/bin/awk '{print $1}' | /usr/bin/head -n 1", $output); - $ruleno = intval($output[0]); + $ruleno = intval($item['pipe']); + $rules = unserialize(file_get_contents("{$g['vardb_path']}/captiveportaldn.rules")); if (!$rules[$ruleno]) { $ruleno = NULL; } @@ -1769,11 +1839,13 @@ function captiveportal_get_ipfw_passthru_ruleno($value) { function getVolume($ip, $mac = NULL) { global $config, $cpzone, $cpzoneid; - $reverse = empty($config['captiveportal'][$cpzone]['reverseacct']) ? false : true; + $reverse = isset($config['captiveportal'][$cpzone]['reverseacct']) ? true : false; $volume = array(); // Initialize vars properly, since we don't want NULL vars $volume['input_pkts'] = $volume['input_bytes'] = $volume['output_pkts'] = $volume['output_bytes'] = 0 ; + /* XXX Fix */ + return $volume; $ipfw = pfSense_ipfw_getTablestats($cpzoneid, IP_FW_TABLE_XLISTENTRY, 1, $ip, $mac); if (is_array($ipfw)) { if ($reverse) { @@ -1981,8 +2053,8 @@ function captiveportal_reapply_attributes($cpentry, $attributes) { $bw_up_pipeno = $cpentry[1]; $bw_down_pipeno = $cpentry[1]+1; - $_gb = @pfSense_pipe_action("pipe {$bw_up_pipeno} config bw {$bw_up}Kbit/s queue 100 buckets 16"); - $_gb = @pfSense_pipe_action("pipe {$bw_down_pipeno} config bw {$bw_down}Kbit/s queue 100 buckets 16"); + $_gb = @pfSense_ipfw_pipe("pipe {$bw_up_pipeno} config bw {$bw_up}Kbit/s queue 100 buckets 16"); + $_gb = @pfSense_ipfw_pipe("pipe {$bw_down_pipeno} config bw {$bw_down}Kbit/s queue 100 buckets 16"); //captiveportal_logportalauth($cpentry[4], $cpentry[3], $cpentry[2], "RADIUS_BANDWIDTH_REAPPLY", "{$bw_up}/{$bw_down}"); unset($bw_up_pipeno, $bw_down_pipeno, $bw_up, $bw_down); @@ -2009,47 +2081,42 @@ function portal_allow($clientip, $clientmac, $username, $password = null, $attri $writecfg = false; /* Find an existing session */ - if ((isset($config['captiveportal'][$cpzone]['noconcurrentlogins'])) && $passthrumac) { - if (isset($config['captiveportal'][$cpzone]['passthrumacadd'])) { - $mac = captiveportal_passthrumac_findbyname($username); - if (!empty($mac)) { - if ($_POST['replacemacpassthru']) { - foreach ($config['captiveportal'][$cpzone]['passthrumac'] as $idx => $macent) { - if ($macent['mac'] == $mac['mac']) { - $macrules = ""; - $ruleno = captiveportal_get_ipfw_passthru_ruleno($mac['mac']); - $pipeno = captiveportal_get_dn_passthru_ruleno($mac['mac']); - if ($ruleno) { - captiveportal_free_ipfw_ruleno($ruleno); - $macrules .= "delete {$ruleno}\n"; - ++$ruleno; - $macrules .= "delete {$ruleno}\n"; - } - if ($pipeno) { - captiveportal_free_dn_ruleno($pipeno); - $macrules .= "pipe delete {$pipeno}\n"; - ++$pipeno; - $macrules .= "pipe delete {$pipeno}\n"; - } - unset($config['captiveportal'][$cpzone]['passthrumac'][$idx]); - $mac['action'] = 'pass'; - $mac['mac'] = $clientmac; - $config['captiveportal'][$cpzone]['passthrumac'][] = $mac; - $macrules .= captiveportal_passthrumac_configure_entry($mac); - file_put_contents("{$g['tmp_path']}/macentry_{$cpzone}.rules.tmp", $macrules); - mwexec("/sbin/ipfw -x {$cpzoneid} -q {$g['tmp_path']}/macentry_{$cpzone}.rules.tmp"); - $writecfg = true; - $sessionid = true; - break; - } - } - } else { - portal_reply_page($redirurl, "error", "Username: {$username} is already authenticated using another MAC address.", - $clientmac, $clientip, $username, $password); - unlock($cpdblck); - return; + if ((isset($config['captiveportal'][$cpzone]['noconcurrentlogins'])) && + $passthrumac && + isset($config['captiveportal'][$cpzone]['passthrumacadd'])) { + $mac = captiveportal_passthrumac_findbyname($username); + if (!empty($mac) && $_POST['replacemacpassthru']) { + foreach ($config['captiveportal'][$cpzone]['passthrumac'] as $idx => $macent) { + if ($macent['mac'] != $mac['mac']) { + continue; } + + $macrules = ""; + $pipeno = captiveportal_get_dn_passthru_ruleno($mac['mac']); + if ($pipeno) { + captiveportal_free_dn_ruleno($pipeno); + $macrules .= "table {$cpzone}_pipe_mac delete any,{$mac['mac']}\n"; + $macrules .= "table {$cpzone}_pipe_mac delete {$mac['mac']},any\n"; + $macrules .= "pipe delete {$pipeno}\n"; + ++$pipeno; + $macrules .= "pipe delete {$pipeno}\n"; + } + unset($config['captiveportal'][$cpzone]['passthrumac'][$idx]); + $mac['action'] = 'pass'; + $mac['mac'] = $clientmac; + $config['captiveportal'][$cpzone]['passthrumac'][] = $mac; + $macrules .= captiveportal_passthrumac_configure_entry($mac); + file_put_contents("{$g['tmp_path']}/macentry_{$cpzone}.rules.tmp", $macrules); + mwexec("/sbin/ipfw -q {$g['tmp_path']}/macentry_{$cpzone}.rules.tmp"); + $writecfg = true; + $sessionid = true; + break; } + } elseif (!empty($mac)) { + portal_reply_page($redirurl, "error", "Username: {$username} is already authenticated using another MAC address.", + $clientmac, $clientip, $username, $password); + unlock($cpdblck); + return; } } @@ -2150,7 +2217,7 @@ function portal_allow($clientip, $clientmac, $username, $password = null, $attri unlock($cpdblck); $macrules = captiveportal_passthrumac_configure_entry($mac); file_put_contents("{$g['tmp_path']}/macentry_{$cpzone}.rules.tmp", $macrules); - mwexec("/sbin/ipfw -x {$cpzoneid} -q {$g['tmp_path']}/macentry_{$cpzone}.rules.tmp"); + mwexec("/sbin/ipfw -q {$g['tmp_path']}/macentry_{$cpzone}.rules.tmp"); $writecfg = true; } else { /* See if a pipeno is passed, if not start sessions because this means there isn't one atm */ @@ -2178,21 +2245,12 @@ function portal_allow($clientip, $clientmac, $username, $password = null, $attri $bw_up_pipeno = $pipeno; $bw_down_pipeno = $pipeno + 1; //$bw_up /= 1000; // Scale to Kbit/s - $_gb = @pfSense_pipe_action("pipe {$bw_up_pipeno} config bw {$bw_up}Kbit/s queue 100 buckets 16"); - $_gb = @pfSense_pipe_action("pipe {$bw_down_pipeno} config bw {$bw_down}Kbit/s queue 100 buckets 16"); + $_gb = @pfSense_ipfw_pipe("pipe {$bw_up_pipeno} config bw {$bw_up}Kbit/s queue 100 buckets 16"); + $_gb = @pfSense_ipfw_pipe("pipe {$bw_down_pipeno} config bw {$bw_down}Kbit/s queue 100 buckets 16"); $clientsn = (is_ipaddrv6($clientip)) ? 128 : 32; - if (!isset($config['captiveportal'][$cpzone]['nomacfilter'])) { - $_gb = @pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XADD, 1, $clientip, $clientsn, $clientmac, $bw_up_pipeno); - } else { - $_gb = @pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XADD, 1, $clientip, $clientsn, NULL, $bw_up_pipeno); - } - - if (!isset($config['captiveportal'][$cpzone]['nomacfilter'])) { - $_gb = @pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XADD, 2, $clientip, $clientsn, $clientmac, $bw_down_pipeno); - } else { - $_gb = @pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XADD, 2, $clientip, $clientsn, NULL, $bw_down_pipeno); - } + $_gb = @pfSense_ipfw_table("{$cpzone}_auth_up", IP_FW_TABLE_XADD, "{$clientip}/{$clientsn}", $bw_up_pipeno); + $_gb = @pfSense_ipfw_table("{$cpzone}_auth_down", IP_FW_TABLE_XADD, "{$clientip}/{$clientsn}", $bw_down_pipeno); if ($attributes['voucher']) { $attributes['session_timeout'] = $remaining_time; diff --git a/src/etc/inc/certs.inc b/src/etc/inc/certs.inc index 4970314..248019e 100644 --- a/src/etc/inc/certs.inc +++ b/src/etc/inc/certs.inc @@ -3,7 +3,7 @@ * certs.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2008-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2008-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc. All rights reserved. * All rights reserved. * @@ -143,14 +143,16 @@ function ca_chain(& $cert) { return ""; } -function ca_import(& $ca, $str, $key = "", $serial = 0) { +function ca_import(& $ca, $str, $key = "", $serial = "") { global $config; $ca['crt'] = base64_encode($str); if (!empty($key)) { $ca['prv'] = base64_encode($key); } - if (!empty($serial)) { + if (empty($serial)) { + $ca['serial'] = 0; + } else { $ca['serial'] = $serial; } $subject = cert_get_subject($str, false); @@ -315,6 +317,9 @@ function cert_create(& $cert, $caref, $keylen, $lifetime, $dn, $type = "user", $ if (!$ca_res_key) { return false; } + if (empty($ca['serial'])) { + $ca['serial'] = 0; + } $ca_serial = ++$ca['serial']; } @@ -570,7 +575,7 @@ function cert_get_purpose($str_crt, $decode = true) { $crt_details = openssl_x509_parse($str_crt); $purpose = array(); $purpose['ca'] = (stristr($crt_details['extensions']['basicConstraints'], 'CA:TRUE') === false) ? 'No': 'Yes'; - $purpose['server'] = ($crt_details['extensions']['nsCertType'] == "SSL Server") ? 'Yes': 'No'; + $purpose['server'] = (strpos($crt_details['extensions']['nsCertType'], 'SSL Server') !== FALSE) ? 'Yes': 'No'; return $purpose; } @@ -604,6 +609,65 @@ function prv_get_modulus($str_crt, $decode = true) { return cert_get_modulus($str_crt, $decode, "prv"); } +function is_openvpn_server_ca($caref) { + global $config; + if (!is_array($config['openvpn']['openvpn-server'])) { + return; + } + foreach ($config['openvpn']['openvpn-server'] as $ovpns) { + if ($ovpns['caref'] == $caref) { + return true; + } + } + return false; +} + +function is_openvpn_client_ca($caref) { + global $config; + if (!is_array($config['openvpn']['openvpn-client'])) { + return; + } + foreach ($config['openvpn']['openvpn-client'] as $ovpnc) { + if ($ovpnc['caref'] == $caref) { + return true; + } + } + return false; +} + +function is_ipsec_peer_ca($caref) { + global $config; + if (!is_array($config['ipsec']['phase1'])) { + return; + } + foreach ($config['ipsec']['phase1'] as $ipsec) { + if ($ipsec['caref'] == $caref) { + return true; + } + } + return false; +} + +function is_ldap_peer_ca($caref) { + global $config; + if (!is_array($config['system']['authserver'])) { + return; + } + foreach ($config['system']['authserver'] as $authserver) { + if ($authserver['ldap_caref'] == $caref) { + return true; + } + } + return false; +} + +function ca_in_use($caref) { + return (is_openvpn_server_ca($caref) || + is_openvpn_client_ca($caref) || + is_ipsec_peer_ca($caref) || + is_ldap_peer_ca($caref)); +} + function is_user_cert($certref) { global $config; if (!is_array($config['system']['user'])) { diff --git a/src/etc/inc/config.console.inc b/src/etc/inc/config.console.inc index a87b082..90be4aa 100644 --- a/src/etc/inc/config.console.inc +++ b/src/etc/inc/config.console.inc @@ -3,7 +3,7 @@ * config.console.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) @@ -47,14 +47,9 @@ function set_networking_interfaces_ports() { $iflist = get_interface_list(); - /* Function flow is based on $key and $auto_assign or the lack thereof */ + /* Function flow is based on $key or the lack thereof */ $key = null; - /* Only present auto interface option if running from the installer media and interface mismatch*/ - if ((preg_match("/cdrom/", $g['platform'])) && is_interface_mismatch()) { - $auto_assign = false; - } - echo <<<EOD Valid interfaces are: @@ -81,15 +76,6 @@ EOD; } } - if ($auto_assign) { - echo <<<EOD - - !!! Installation Media Detected: Auto Interface Option !!!! -BEGIN MANUAL CONFIGURATION OR THE SYSTEM WILL PROCEED WITH AUTO CONFIGURATION. - -EOD; - } - echo "\n" . gettext("Do VLANs need to be set up first?"); echo "\n" . gettext( @@ -98,211 +84,147 @@ EOD; "\n"; echo "\n" . gettext("Should VLANs be set up now [y|n]?") . " "; - if ($auto_assign) { - $key = timeout(); - } else { - $key = chop(fgets($fp)); - } - - if (!isset($key) and $auto_assign) { // Auto Assign Interfaces - do { - echo <<<EOD + $key = chop(fgets($fp)); - !!! Auto Assigning Interfaces !!! - -For setup purposes, there must be at least one NIC connected for -the LAN. If a second NIC is connected, it will be assigned to the -WAN. Otherwise, WAN will be temporarily assigned to the next -available NIC found regardless of activity. The WAN interface -should then be assigned and configured as required. - -Please make the pfSense NIC connections now. -The system will continue checking until they have been made. - -Searching for active interfaces... - -EOD; - unset($wanif, $lanif); + //Manually assign interfaces + if (in_array($key, array('y', 'Y'))) { + vlan_setup(); + } - $media_iflist = $plugged_in = array(); - $media_iflist = get_interface_list("media"); - foreach ($media_iflist as $iface => $ifa) { - if ($ifa['up']) { - $plugged_in[] = $iface; - } - } + if (is_array($config['vlans']['vlan']) && count($config['vlans']['vlan'])) { - $lanif = array_shift($plugged_in); - $wanif = array_shift($plugged_in); + echo "\n\n" . gettext("VLAN interfaces:") . "\n\n"; + foreach ($config['vlans']['vlan'] as $vlan) { - if (isset($lanif) && !isset($wanif)) { - foreach ($iflist as $iface => $ifa) { - if ($iface != $lanif) { - $wanif = $iface; - break; - } - } - } + echo sprintf("% -16s%s\n", "{$vlan['if']}_vlan{$vlan['tag']}", + "VLAN tag {$vlan['tag']}, parent interface {$vlan['if']}"); - echo <<<EOD + $iflist[$vlan['if'] . '_vlan' . $vlan['tag']] = array(); + $ifsmallist = $ifsmallist . $vlan['if'] . '_vlan' . $vlan['tag'] . " "; + } + } -Assigned WAN to : $wanif -Assigned LAN to : $lanif + echo <<<EOD -If these assignments are not suitable, -press any key to go back to manual configuration. +If the names of the interfaces are not known, auto-detection can +be used instead. To use auto-detection, please disconnect all +interfaces before pressing 'a' to begin the process. EOD; - $key = timeout(20); - if (isset($key)) { - return; - } - } while (!isset($wanif)); - $config['system']['enablesshd'] = 'enabled'; - $key = 'y'; - - } else { - //Manually assign interfaces - if (in_array($key, array('y', 'Y'))) { - vlan_setup(); + do { + echo "\n" . gettext("Enter the WAN interface name or 'a' for auto-detection") . " "; + printf(gettext("%s(%s or a): "), "\n", trim($ifsmallist)); + $wanif = chop(fgets($fp)); + if ($wanif === "") { + return; } - - if (is_array($config['vlans']['vlan']) && count($config['vlans']['vlan'])) { - - echo "\n\n" . gettext("VLAN interfaces:") . "\n\n"; - foreach ($config['vlans']['vlan'] as $vlan) { - - echo sprintf("% -16s%s\n", "{$vlan['if']}_vlan{$vlan['tag']}", - "VLAN tag {$vlan['tag']}, parent interface {$vlan['if']}"); - - $iflist[$vlan['if'] . '_vlan' . $vlan['tag']] = array(); - $ifsmallist = $ifsmallist . $vlan['if'] . '_vlan' . $vlan['tag'] . " "; - } + if ($wanif === "a") { + $wanif = autodetect_interface("WAN", $fp); + } else if (!array_key_exists($wanif, $iflist)) { + printf(gettext("%sInvalid interface name '%s'%s"), "\n", $wanif, "\n"); + unset($wanif); + continue; } + $ifsmallist = str_replace(" " . $wanif . " ", " ", $ifsmallist); + } while (!$wanif); - echo <<<EOD - -If the names of the interfaces are not known, auto-detection can -be used instead. To use auto-detection, please disconnect all -interfaces before pressing 'a' to begin the process. + do { + printf(gettext("%sEnter the LAN interface name or 'a' for auto-detection %s" . + "NOTE: this enables full Firewalling/NAT mode.%s" . + "(%s a or nothing if finished):%s"), "\n", "\n", "\n", trim($ifsmallist), " "); -EOD; + $lanif = chop(fgets($fp)); - do { - echo "\n" . gettext("Enter the WAN interface name or 'a' for auto-detection") . " "; - printf(gettext("%s(%s or a): "), "\n", trim($ifsmallist)); - $wanif = chop(fgets($fp)); - if ($wanif === "") { - return; - } - if ($wanif === "a") { - $wanif = autodetect_interface("WAN", $fp); - } else if (!array_key_exists($wanif, $iflist)) { - printf(gettext("%sInvalid interface name '%s'%s"), "\n", $wanif, "\n"); - unset($wanif); - continue; - } - $ifsmallist = str_replace(" " . $wanif . " ", " ", $ifsmallist); - } while (!$wanif); + if ($lanif == "exit") { + exit; + } - do { - printf(gettext("%sEnter the LAN interface name or 'a' for auto-detection %s" . - "NOTE: this enables full Firewalling/NAT mode.%s" . - "(%s a or nothing if finished):%s"), "\n", "\n", "\n", trim($ifsmallist), " "); + if ($lanif == "") { + /* It is OK to have just a WAN, without a LAN so break if the user does not want LAN. */ + break; + } - $lanif = chop(fgets($fp)); + if ($lanif === "a") { + $lanif = autodetect_interface("LAN", $fp); + } else if (!array_key_exists($lanif, $iflist)) { + printf(gettext("%sInvalid interface name '%s'%s"), "\n", $lanif, "\n"); + unset($lanif); + continue; + } + $ifsmallist = str_replace(" " . $lanif . " ", " ", $ifsmallist); + } while (!$lanif); - if ($lanif == "exit") { - exit; - } + /* optional interfaces */ + $i = 0; + $optif = array(); - if ($lanif == "") { - /* It is OK to have just a WAN, without a LAN so break if the user does not want LAN. */ - break; + if ($lanif <> "") { + while (1) { + if ($optif[$i]) { + $i++; } + $io = $i + 1; - if ($lanif === "a") { - $lanif = autodetect_interface("LAN", $fp); - } else if (!array_key_exists($lanif, $iflist)) { - printf(gettext("%sInvalid interface name '%s'%s"), "\n", $lanif, "\n"); - unset($lanif); - continue; + if ($config['interfaces']['opt' . $io]['descr']) { + printf(gettext("%sOptional interface %s description found: %s"), "\n", $io, $config['interfaces']['opt' . $io]['descr']); } - $ifsmallist = str_replace(" " . $lanif . " ", " ", $ifsmallist); - } while (!$lanif); - /* optional interfaces */ - $i = 0; - $optif = array(); + printf(gettext("%sEnter the Optional %s interface name or 'a' for auto-detection%s" . + "(%s a or nothing if finished):%s"), "\n", $io, "\n", trim($ifsmallist), " "); - if ($lanif <> "") { - while (1) { - if ($optif[$i]) { - $i++; - } - $io = $i + 1; + $optif[$i] = chop(fgets($fp)); - if ($config['interfaces']['opt' . $io]['descr']) { - printf(gettext("%sOptional interface %s description found: %s"), "\n", $io, $config['interfaces']['opt' . $io]['descr']); - } - - printf(gettext("%sEnter the Optional %s interface name or 'a' for auto-detection%s" . - "(%s a or nothing if finished):%s"), "\n", $io, "\n", trim($ifsmallist), " "); - - $optif[$i] = chop(fgets($fp)); - - if ($optif[$i]) { - if ($optif[$i] === "a") { - $ad = autodetect_interface(gettext("Optional") . " " . $io, $fp); - if ($ad) { - $optif[$i] = $ad; - } else { - unset($optif[$i]); - } - } else if (!array_key_exists($optif[$i], $iflist)) { - printf(gettext("%sInvalid interface name '%s'%s"), "\n", $optif[$i], "\n"); + if ($optif[$i]) { + if ($optif[$i] === "a") { + $ad = autodetect_interface(gettext("Optional") . " " . $io, $fp); + if ($ad) { + $optif[$i] = $ad; + } else { unset($optif[$i]); - continue; } - $ifsmallist = str_replace(" " . $optif[$i] . " ", " ", $ifsmallist); - } else { + } else if (!array_key_exists($optif[$i], $iflist)) { + printf(gettext("%sInvalid interface name '%s'%s"), "\n", $optif[$i], "\n"); unset($optif[$i]); - break; + continue; } + $ifsmallist = str_replace(" " . $optif[$i] . " ", " ", $ifsmallist); + } else { + unset($optif[$i]); + break; } } + } - /* check for double assignments */ - $ifarr = array_merge(array($lanif, $wanif), $optif); + /* check for double assignments */ + $ifarr = array_merge(array($lanif, $wanif), $optif); - for ($i = 0; $i < (count($ifarr)-1); $i++) { - for ($j = ($i+1); $j < count($ifarr); $j++) { - if ($ifarr[$i] == $ifarr[$j]) { - echo <<<EOD + for ($i = 0; $i < (count($ifarr)-1); $i++) { + for ($j = ($i+1); $j < count($ifarr); $j++) { + if ($ifarr[$i] == $ifarr[$j]) { + echo <<<EOD Error: The same interface name cannot be assigned twice! EOD; - fclose($fp); - return; - } + fclose($fp); + return; } } + } - echo "\n" . gettext("The interfaces will be assigned as follows:") . "\n\n"; - - echo "WAN -> " . $wanif . "\n"; - if ($lanif != "") { - echo "LAN -> " . $lanif . "\n"; - } - for ($i = 0; $i < count($optif); $i++) { - echo "OPT" . ($i+1) . " -> " . $optif[$i] . "\n"; - } + echo "\n" . gettext("The interfaces will be assigned as follows:") . "\n\n"; - echo "\n" . gettext("Do you want to proceed [y|n]?") . " "; - $key = chop(fgets($fp)); + echo "WAN -> " . $wanif . "\n"; + if ($lanif != "") { + echo "LAN -> " . $lanif . "\n"; } + for ($i = 0; $i < count($optif); $i++) { + echo "OPT" . ($i+1) . " -> " . $optif[$i] . "\n"; + } + + echo "\n" . gettext("Do you want to proceed [y|n]?") . " "; + $key = chop(fgets($fp)); if (in_array($key, array('y', 'Y'))) { if ($lanif) { @@ -316,7 +238,7 @@ EOD; } $config['interfaces']['lan']['if'] = $lanif; $config['interfaces']['lan']['enable'] = true; - } elseif (!platform_booting() && !$auto_assign) { + } elseif (!platform_booting()) { echo "\n" . gettext("You have chosen to remove the LAN interface.") . "\n"; echo "\n" . gettext("Would you like to remove the LAN IP address and \nunload the interface now [y|n]?") . " "; @@ -532,7 +454,7 @@ function vlan_setup() { $vlan['if'] = chop(fgets($fp)); if ($vlan['if']) { - if (!array_key_exists($vlan['if'], $iflist) or + if (!array_key_exists($vlan['if'], $iflist) || !is_jumbo_capable($vlan['if'])) { printf(gettext("%sInvalid interface name '%s'%s"), "\n", $vlan['if'], "\n"); continue; @@ -584,8 +506,14 @@ function check_for_alternate_interfaces() { $default_device['lan'] = "re2"; break; case 'RCC-VE': - $default_device['wan'] = "igb0"; - $default_device['lan'] = "igb1"; + /* SG-4860 or SG-8860 */ + if (does_interface_exist('igb4')) { + $config['interfaces']['wan']['if'] = 'igb1'; + $config['interfaces']['lan']['if'] = 'igb0'; + } else { + $config['interfaces']['wan']['if'] = 'igb0'; + $config['interfaces']['lan']['if'] = 'igb1'; + } break; default: $default_device['wan'] = ""; diff --git a/src/etc/inc/config.gui.inc b/src/etc/inc/config.gui.inc index de9d422..3ed814c 100644 --- a/src/etc/inc/config.gui.inc +++ b/src/etc/inc/config.gui.inc @@ -3,7 +3,7 @@ * config.gui.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) @@ -44,13 +44,6 @@ if (file_exists("/cf/conf/use_xmlreader")) { } require_once("crypt.inc"); -/* read platform */ -if (file_exists("{$g['etc_path']}/platform")) { - $g['platform'] = chop(file_get_contents("{$g['etc_path']}/platform")); -} else { - $g['platform'] = "unknown"; -} - /* if /debugging exists, lets set $debugging so we can output more information */ if (file_exists("/debugging")) { diff --git a/src/etc/inc/config.inc b/src/etc/inc/config.inc index 083afdb..aa33214 100644 --- a/src/etc/inc/config.inc +++ b/src/etc/inc/config.inc @@ -3,7 +3,7 @@ * config.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) @@ -57,13 +57,6 @@ if (file_exists("/cf/conf/use_xmlreader")) { } require_once("crypt.inc"); -/* read platform */ -if (file_exists("{$g['etc_path']}/platform")) { - $g['platform'] = chop(file_get_contents("{$g['etc_path']}/platform")); -} else { - $g['platform'] = "unknown"; -} - /* if /debugging exists, lets set $debugging so we can output more information */ if (file_exists("/debugging")) { @@ -83,9 +76,7 @@ if (platform_booting(true)) { if (!config_validate("{$g['conf_path']}/config.xml")) { log_error(gettext("ERROR! Could not convert m0n0wall -> pfsense in config.xml")); } - conf_mount_rw(); file_put_contents("/cf/conf/config.xml", $config_contents); - conf_mount_ro(); } unset($config_contents); } @@ -98,63 +89,44 @@ if (platform_booting(true)) { /* check if there's already an fstab (NFS booting?) */ if (!file_exists("{$g['etc_path']}/fstab")) { echo "."; - if (strstr($g['platform'], "cdrom")) { - /* config is on floppy disk for CD-ROM version */ - $cfgdevice = $cfgpartition = "fd0"; - $_gb = exec('/sbin/dmesg -a', $dmesg); - if (preg_match("/da0/", $dmesg) == true) { - $cfgdevice = $cfgpartition = "da0" ; - if (mwexec("/sbin/mount -r /dev/{$cfgdevice} /cf")) { - /* could not mount, fallback to floppy */ - $cfgdevice = $cfgpartition = "fd0"; + /* probe kernel known disks until we find one with config.xml */ + $disks = explode(" ", get_single_sysctl("kern.disks")); + foreach ($disks as $mountdisk) { + /* skip mfs mounted filesystems */ + if (strstr($mountdisk, "md")) { + continue; + } + if (mwexec("/sbin/mount -r /dev/{$mountdisk}a {$g['cf_path']}") == 0) { + if (file_exists("{$g['cf_conf_path']}/config.xml")) { + /* found it */ + $cfgdevice = $mountdisk; + $cfgpartition = $cfgdevice . "a"; + $cfgfstype = "ufs"; + printf(gettext("Found configuration on %s.%s"), $cfgdevice, "\n"); + } + + mwexec("/sbin/umount -f {$g['cf_path']}"); + + if ($cfgdevice) { + break; } } - unset($dmesg); - $cfgfstype = "msdosfs"; - echo gettext("CDROM build") . "\n"; - echo " " . gettext("CFG:") . " {$cfgpartition}\n"; - echo " " . gettext("TYPE:") . " {$cfgfstype}\n"; - } else { - echo "."; - /* probe kernel known disks until we find one with config.xml */ - $disks = explode(" ", get_single_sysctl("kern.disks")); - foreach ($disks as $mountdisk) { - /* skip mfs mounted filesystems */ - if (strstr($mountdisk, "md")) { - continue; + if (mwexec("/sbin/mount -r /dev/{$mountdisk}d {$g['cf_path']}") == 0) { + if (platform_booting()) { + echo "."; } - if (mwexec("/sbin/mount -r /dev/{$mountdisk}a {$g['cf_path']}") == 0) { - if (file_exists("{$g['cf_conf_path']}/config.xml")) { - /* found it */ - $cfgdevice = $mountdisk; - $cfgpartition = $cfgdevice . "a"; - $cfgfstype = "ufs"; - printf(gettext("Found configuration on %s.%s"), $cfgdevice, "\n"); - } - - mwexec("/sbin/umount -f {$g['cf_path']}"); - - if ($cfgdevice) { - break; - } + if (file_exists("{$g['cf_conf_path']}/config.xml")) { + /* found it */ + $cfgdevice = $mountdisk; + $cfgpartition = $cfgdevice . "d"; + $cfgfstype = "ufs"; + printf(gettext("Found configuration on %s.%s"), $cfgdevice, "\n"); } - if (mwexec("/sbin/mount -r /dev/{$mountdisk}d {$g['cf_path']}") == 0) { - if (platform_booting()) { - echo "."; - } - if (file_exists("{$g['cf_conf_path']}/config.xml")) { - /* found it */ - $cfgdevice = $mountdisk; - $cfgpartition = $cfgdevice . "d"; - $cfgfstype = "ufs"; - printf(gettext("Found configuration on %s.%s"), $cfgdevice, "\n"); - } - - mwexec("/sbin/umount -f {$g['cf_path']}"); - - if ($cfgdevice) { - break; - } + + mwexec("/sbin/umount -f {$g['cf_path']}"); + + if ($cfgdevice) { + break; } } } diff --git a/src/etc/inc/config.lib.inc b/src/etc/inc/config.lib.inc index 2f8fa59..2971c4a 100644 --- a/src/etc/inc/config.lib.inc +++ b/src/etc/inc/config.lib.inc @@ -3,7 +3,7 @@ * config.lib.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2009 Erik Kristensen * All rights reserved. * @@ -200,7 +200,6 @@ function restore_backup($file) { global $g; if (file_exists($file)) { - conf_mount_rw(); unlink_if_exists("{$g['tmp_path']}/config.cache"); copy("$file", "/cf/conf/config.xml"); pfSense_fsync("/cf/conf/config.xml"); @@ -208,7 +207,6 @@ function restore_backup($file) { disable_security_checks(); log_error(sprintf(gettext('%1$s is restoring the configuration %2$s'), $g['product_name'], $file)); file_notice("config.xml", sprintf(gettext('%1$s is restoring the configuration %2$s'), $g['product_name'], $file), "pfSenseConfigurator", ""); - conf_mount_ro(); } } @@ -228,32 +226,20 @@ function parse_config_bootup() { $lockkey = lock('config'); if (!file_exists("{$g['conf_path']}/config.xml")) { if (platform_booting()) { - if (strstr($g['platform'], "cdrom")) { - /* try copying the default config. to the floppy */ - echo gettext("Resetting factory defaults...") . "\n"; - reset_factory_defaults(true, false); - if (!file_exists("{$g['conf_path']}/config.xml")) { - echo gettext("No XML configuration file found - using factory defaults.\n" . - "Make sure that the configuration floppy disk with the conf/config.xml\n" . - "file is inserted. If it isn't, the configuration changes will be lost\n" . - "on reboot.\n"); - } - } else { - $last_backup = discover_last_backup(); - if ($last_backup) { - log_error("No config.xml found, attempting last known config restore."); - file_notice("config.xml", gettext("No config.xml found, attempting last known config restore."), "pfSenseConfigurator", ""); - restore_backup("/cf/conf/backup/{$last_backup}"); - } - if (!file_exists("{$g['conf_path']}/config.xml")) { - echo sprintf(gettext("XML configuration file not found. %s cannot continue booting."), $g['product_name']) . "\n"; - unlock($lockkey); - mwexec("/sbin/halt"); - exit; - } - log_error("Last known config found and restored. Please double check the configuration file for accuracy."); - file_notice("config.xml", gettext("Last known config found and restored. Please double check the configuration file for accuracy."), "pfSenseConfigurator", ""); + $last_backup = discover_last_backup(); + if ($last_backup) { + log_error("No config.xml found, attempting last known config restore."); + file_notice("config.xml", gettext("No config.xml found, attempting last known config restore."), "pfSenseConfigurator", ""); + restore_backup("/cf/conf/backup/{$last_backup}"); } + if (!file_exists("{$g['conf_path']}/config.xml")) { + echo sprintf(gettext("XML configuration file not found. %s cannot continue booting."), $g['product_name']) . "\n"; + unlock($lockkey); + mwexec("/sbin/halt"); + exit; + } + log_error("Last known config found and restored. Please double check the configuration file for accuracy."); + file_notice("config.xml", gettext("Last known config found and restored. Please double check the configuration file for accuracy."), "pfSenseConfigurator", ""); } else { unlock($lockkey); log_error(gettext("Could not find a usable configuration file! Exiting....")); @@ -304,36 +290,8 @@ EOD; ******/ /* mount flash card read/write */ function conf_mount_rw() { - global $g, $config; - - /* do not mount on cdrom platform */ - if ($g['platform'] == "cdrom" or $g['platform'] == $g['product_name']) { - return; - } - - if ((refcount_reference(1000) > 1) && is_writable("/")) { - return; - } - - $status = mwexec("/sbin/mount -u -w -o sync,noatime {$g['cf_path']}"); - if ($status <> 0) { - if (platform_booting()) { - echo gettext("/cf Filesystem is dirty.") . "\n"; - } - $status = mwexec("/sbin/mount -u -w -o sync,noatime {$g['cf_path']}"); - } - - /* if the platform is soekris or wrap or $product, lets mount the - * compact flash cards root. - */ - $status = mwexec("/sbin/mount -u -w -o sync,noatime /"); - /* we could not mount this correctly. */ - if ($status <> 0) { - log_error(gettext("/ File system is dirty.")); - $status = mwexec("/sbin/mount -u -w -o sync,noatime /"); - } - - mark_subsystem_dirty('mount'); + /* Obsoleted. Keep it here untill all calls are removed */ + return; } /****f* config/conf_mount_ro @@ -343,35 +301,8 @@ function conf_mount_rw() { * null ******/ function conf_mount_ro() { - global $g, $config; - - // do nothing here. redmine #6184 + /* Obsoleted. Keep it here untill all calls are removed */ return; - - /* Do not trust $g['platform'] since this can be clobbered during factory reset. */ - $platform = trim(file_get_contents("/etc/platform")); - /* do not umount on cdrom or pfSense platforms */ - if ($platform == "cdrom" or $platform == $g['product_name']) { - return; - } - - if (refcount_unreference(1000) > 0) { - return; - } - - if (isset($config['system']['nanobsd_force_rw'])) { - return; - } - - if (platform_booting()) { - return; - } - - clear_subsystem_dirty('mount'); - /* sync data, then force a remount of /cf */ - pfSense_fsync($g['cf_path']); - mwexec("/sbin/mount -u -r -f -o sync,noatime {$g['cf_path']}"); - mwexec("/sbin/mount -u -r -f -o sync,noatime /"); } /****f* config/convert_config @@ -453,13 +384,13 @@ function convert_config() { * process, them renaming the temporary file over the original. * INPUTS * $filename - string containing the filename of the file to write - * $content - string containing the file content to write to file + * $content - string or array containing the file content to write to file * $force_binary - boolean denoting whether we should force binary * mode writing. * RESULT * boolean - true if successful, false if not ******/ -function safe_write_file($file, $content, $force_binary) { +function safe_write_file($file, $content, $force_binary = false) { $tmp_file = $file . "." . getmypid(); $write_mode = $force_binary ? "wb" : "w"; @@ -468,7 +399,15 @@ function safe_write_file($file, $content, $force_binary) { // Unable to open temporary file for writing return false; } - if (!fwrite($fd, $content)) { + if (is_array($content)) { + foreach ($content as $line) { + if (!fwrite($fd, $line . "\n")) { + // Unable to write to temporary file + fclose($fd); + return false; + } + } + } elseif (!fwrite($fd, $content)) { // Unable to write to temporary file fclose($fd); return false; @@ -526,14 +465,13 @@ function write_config($desc="Unknown", $backup = true, $write_config_only = fals $config['revision'] = make_config_revision_entry($desc); - conf_mount_rw(); $lockkey = lock('config', LOCK_EX); /* generate configuration XML */ $xmlconfig = dump_xml_config($config, $g['xml_rootobj']); /* write new configuration */ - if (!safe_write_file("{$g['cf_conf_path']}/config.xml", $xmlconfig, false)) { + if (!safe_write_file("{$g['cf_conf_path']}/config.xml", $xmlconfig)) { log_error(gettext("WARNING: Config contents could not be saved. Could not open file!")); unlock($lockkey); file_notice("config.xml", sprintf(gettext("Unable to open %s/config.xml for writing in write_config()%s"), $g['cf_conf_path'], "\n")); @@ -566,16 +504,11 @@ function write_config($desc="Unknown", $backup = true, $write_config_only = fals unlock($lockkey); if ($write_config_only) { - /* tell kernel to sync fs data */ - conf_mount_ro(); return $config; } unlink_if_exists("/usr/local/pkg/pf/carp_sync_client.php"); - /* tell kernel to sync fs data */ - conf_mount_ro(); - /* sync carp entries to other firewalls */ carp_sync_client(); @@ -596,7 +529,6 @@ function write_config($desc="Unknown", $backup = true, $write_config_only = fals function reset_factory_defaults($lock = false, $reboot_required = true) { global $g; - conf_mount_rw(); /* Remove all additional packages */ mwexec("/bin/sh /usr/local/sbin/{$g['product_name']}-upgrade " . @@ -636,7 +568,6 @@ function reset_factory_defaults($lock = false, $reboot_required = true) { if (!$lock) { unlock($lockkey); } - conf_mount_ro(); setup_serial_port(); return 0; } @@ -650,7 +581,6 @@ function config_restore($conffile) { backup_config(); - conf_mount_rw(); $lockkey = lock('config', LOCK_EX); @@ -663,7 +593,6 @@ function config_restore($conffile) { $config = parse_config(true); - conf_mount_ro(); write_config(sprintf(gettext("Reverted to %s."), array_pop(explode("/", $conffile))), false); @@ -687,7 +616,6 @@ function config_install($conffile) { log_error(gettext("Installing configuration ....")); } - conf_mount_rw(); $lockkey = lock('config', LOCK_EX); copy($conffile, "{$g['conf_path']}/config.xml"); @@ -700,7 +628,6 @@ function config_install($conffile) { } unlock($lockkey); - conf_mount_ro(); return 0; } @@ -757,7 +684,7 @@ function config_validate($conffile) { } function cleanup_backupcache($lock = false) { - global $g; + global $config, $g; $i = false; $revisions = intval(is_numericint($config['system']['backupcount']) ? $config['system']['backupcount'] : $g['default_config_backup_count']); @@ -766,7 +693,6 @@ function cleanup_backupcache($lock = false) { $lockkey = lock('config'); } - conf_mount_rw(); $backups = get_backups(); if ($backups) { @@ -838,7 +764,6 @@ function cleanup_backupcache($lock = false) { fwrite($bakout, serialize($tocache)); fclose($bakout); pfSense_fsync("{$g['cf_conf_path']}/backup/backup.cache"); - conf_mount_ro(); if (!$lock) { unlock($lockkey); @@ -866,11 +791,6 @@ function get_backups() { function backup_config() { global $config, $g; - if ($g['platform'] == "cdrom") { - return; - } - - conf_mount_rw(); /* Create backup directory if needed */ safe_mkdir("{$g['cf_conf_path']}/backup"); @@ -901,7 +821,6 @@ function backup_config() { fclose($bakout); pfSense_fsync("{$g['cf_conf_path']}/backup/backup.cache"); - conf_mount_ro(); return true; } diff --git a/src/etc/inc/crypt.inc b/src/etc/inc/crypt.inc index f3476f4..d72bbe5 100644 --- a/src/etc/inc/crypt.inc +++ b/src/etc/inc/crypt.inc @@ -3,7 +3,7 @@ * crypt.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2008-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2008-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc. All rights reserved. * All rights reserved. * diff --git a/src/etc/inc/dyndns.class b/src/etc/inc/dyndns.class index a9f6813..8b488dc 100644 --- a/src/etc/inc/dyndns.class +++ b/src/etc/inc/dyndns.class @@ -3,7 +3,7 @@ * dyndns.class * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -57,6 +57,9 @@ * - DNS Made Easy (www.dnsmadeeasy.com) * - SPDYN (spdyn.de) * - SPDYN IPv6 (spdyn.de) + * - All-Inkl (all-inkl.com) + * - DuiaDNS (www.duiadns.net) + * - DuiaDNS IPv6 (www.duiadns.net) * +----------------------------------------------------+ * Requirements: * - PHP version 4.0.2 or higher with the CURL Library and the PCRE Library @@ -107,6 +110,9 @@ * DNS Made Easy - Last Tested: 27 April 2015 * SPDYN - Last Tested: 02 July 2016 * SPDYN IPv6 - Last Tested: 02 July 2016 + * All-Inkl - Last Tested: 12 November 2016 + * DuiaDNS - Last Tested: 25 November 2016 + * DuiaDNS IPv6 - Last Tested: 25 November 2016 * +====================================================+ * * @author E.Kristensen @@ -169,9 +175,8 @@ $dnsZoneID ='', $dnsTTL='', $dnsResultMatch = '', $dnsRequestIf = '', $dnsID = '', $dnsVerboseLog = false, $curlIpresolveV4 = false, $curlSslVerifypeer = true) { - global $config, $g; - - if ($dnsService == "namecheap") { + global $config, $g, $dyndns_split_domain_types; + if (in_array($dnsService, $dyndns_split_domain_types)) { $this->_FQDN = $dnsHost . "." . $dnsDomain; } else { $this->_FQDN = $dnsHost; @@ -196,7 +201,15 @@ case 'freedns-v6': if (!$dnsHost) $this->_error(5); break; - case 'namecheap': + case "namecheap": + if (!$dnsPass) $this->_error(4); + if (!$dnsHost) $this->_error(5); + if (!$dnsDomain) $this->_error(5); + break; + case "cloudflare-v6": + case "cloudflare": + case "gratisdns": + if (!$dnsUser) $this->_error(3); if (!$dnsPass) $this->_error(4); if (!$dnsHost) $this->_error(5); if (!$dnsDomain) $this->_error(5); @@ -218,6 +231,7 @@ case 'he-net-v6': case 'custom-v6': case 'spdyn-v6': + case 'duiadns-v6': case 'freedns-v6': case 'cloudflare-v6': $this->_useIPv6 = true; @@ -227,7 +241,7 @@ } $this->_dnsService = strtolower($dnsService); $this->_dnsUser = $dnsUser; - $this->_dnsPass = $dnsPass; + $this->_dnsPass = base64_decode($dnsPass); $this->_dnsHost = $dnsHost; $this->_dnsDomain = $dnsDomain; $this->_dnsServer = $dnsServer; @@ -286,6 +300,8 @@ case 'namecheap': case 'he-net': case 'he-net-v6': + case 'duiadns': + case 'duiadns-v6': case 'selfhost': case 'he-net-tunnelbroker': case 'route53': @@ -300,6 +316,7 @@ case 'dnsmadeeasy': case 'spdyn': case 'spdyn-v6': + case 'all-inkl': $this->_update(); if ($this->_dnsDummyUpdateDone == true) { // If a dummy update was needed, then sleep a while and do the update again to put the proper address back. @@ -343,7 +360,7 @@ } if ($this->_dnsService != 'ods' and $this->_dnsService != 'route53 ') { - curl_setopt($ch, CURLOPT_HEADER, 0); + curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_USERAGENT, $this->_UserAgent); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_INTERFACE, 'if!' . $realparentif); @@ -590,6 +607,15 @@ $server = "https://dynamicdns.park-your-domain.com/update?host={$this->_dnsHost}&domain={$this->_dnsDomain}&password={$dnspass}&ip={$this->_dnsIP}"; curl_setopt($ch, CURLOPT_URL, $server); break; + case 'duiadns': + case 'duiadns-v6': + $needsIP = FALSE; + $server = "https://ipv4.duiadns.net/dyndns.duia?"; + curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt($ch, CURLOPT_USERPWD, $this->_dnsUser . ':' . $this->_dnsPass); + curl_setopt($ch, CURLOPT_URL, $server . 'hostname=' . $this->_dnsHost . '&myip=' . $this->_dnsIP); + break; case 'he-net': case 'he-net-v6': $needsIP = FALSE; @@ -665,8 +691,6 @@ $needsIP = TRUE; $dnsServer ='api.cloudflare.com'; $dnsHost = str_replace(' ', '', $this->_dnsHost); - $host_names = explode(".", $dnsHost); - $bottom_host_name = $host_names[count($host_names)-2] . "." . $host_names[count($host_names)-1]; curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array( @@ -676,12 +700,12 @@ )); // Get zone ID - $getZoneId = "https://{$dnsServer}/client/v4/zones/?name={$bottom_host_name}"; + $getZoneId = "https://{$dnsServer}/client/v4/zones/?name={$this->_dnsDomain}"; curl_setopt($ch, CURLOPT_URL, $getZoneId); $output = json_decode(curl_exec($ch)); $zone = $output->result[0]->id; if ($zone) { // If zone ID was found get host ID - $getHostId = "https://{$dnsServer}/client/v4/zones/{$zone}/dns_records?name={$this->_dnsHost}&type={$recordType}"; + $getHostId = "https://{$dnsServer}/client/v4/zones/{$zone}/dns_records?name={$this->_FQDN}&type={$recordType}"; curl_setopt($ch, CURLOPT_URL, $getHostId); $output = json_decode(curl_exec($ch)); $host = $output->result[0]->id; @@ -712,15 +736,7 @@ case 'gratisdns': $needsIP = TRUE; $server = "https://ssl.gratisdns.dk/ddns.phtml"; - $host = trim($this->_dnsHost); - $hostnames = explode(".", $host); - $hostnames_count = count($hostnames); - if ($hostnames_count > 2) { - $domain = $hostnames[$hostnames_count-2] . "." . $hostnames[$hostnames_count-1]; - } else { - $domain = $host; - } - curl_setopt($ch, CURLOPT_URL, $server . '?u=' . $this->_dnsUser . '&p=' . $this->_dnsPass . '&h=' . $host . '&d=' . $domain . '&i=' . $this->_dnsIP); + curl_setopt($ch, CURLOPT_URL, $server . '?u=' . $this->_dnsUser . '&p=' . $this->_dnsPass . '&h=' . $this->_dnsHost . '&d=' . $this->_dnsDomain . '&i=' . $this->_dnsIP); break; case 'ovh-dynhost': $needsIP = FALSE; @@ -795,12 +811,21 @@ } curl_setopt($ch, CURLOPT_URL, $server .$port . '?hostname=' . $this->_dnsHost . '&myip=' . $this->_dnsIP); break; + case 'all-inkl': + $needsIP = FALSE; + $server = 'https://dyndns.kasserver.com/'; + curl_setopt($ch, CURLOPT_USERPWD, $this->_dnsUser.':'.$this->_dnsPass); + curl_setopt($ch, CURLOPT_URL, $server . 'myip=' . $this->_dnsIP); + break; default: break; } if ($this->_dnsService != 'ods') { - $data = curl_exec($ch); - $this->_checkStatus($ch, $data); + $response = curl_exec($ch); + $header_size = curl_getinfo($ch, CURLINFO_ ER_SIZE); + $header = substr($response, 0, $header_size); + $data = substr($response, $header_size); + $this->_checkStatus($ch, $data, $header); @curl_close($ch); } } @@ -1167,7 +1192,26 @@ $this->_debug($data); } break; - + case 'duiadns': + case 'duiadns-v6': + if (preg_match("/error/i", $data)) { + $status = $status_intro . $error_str . gettext("Server side error."); + } else if (preg_match('/nohost/i', $data)) { + $status = $status_intro . $error_str . gettext("Bad Request - A hostname was not provided."); + } else if (preg_match('/badauth/i', $data)) { + $status = $status_intro . $error_str . gettext("Invalid username or password."); + } else if (preg_match('/good/i', $data)) { + $status = $status_intro . $success_str . gettext("IP Address Updated Successfully!"); + $successful_update = true; + } else if (preg_match('/nochg/i', $data)) { + $status = $status_intro . $success_str . gettext("No Change In IP Address."); + $successful_update = true; + } else { + $status = $status_intro . "(" . gettext("Unknown Response") . ")"; + log_error($status_intro . gettext("PAYLOAD:") . " " . $data); + $this->_debug($data); + } + break; case 'he-net': case 'he-net-v6': if (preg_match("/badip/i", $data)) { @@ -1318,14 +1362,12 @@ /* Responds with HTTP 200 on success. Responds with HTTP 4xx on error. Returns JSON data as body */ - $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); - $header = substr($data, 0, $header_size); - $body = substr($data, $header_size); - if (preg_match("/Status: 200\s/i", $header)) { +; + if (preg_match("/\s200\sOK/i", $header)) { $status = $status_intro . $success_str . gettext("IP Address Updated Successfully!"); $successful_update = true; - } else if (preg_match("/Status: 4\d\d\s/i", $header)) { - $arrbody = json_decode($body, true); + } else if (preg_match("/\s4\d\d\s/i", $header)) { + $arrbody = json_decode($data, true); $message = $arrbody['message'] . "."; if (isset($arrbody['errors']['content'])) { foreach ($arrbody['errors']['content'] as $key => $content) { @@ -1335,8 +1377,8 @@ $status = $status_intro . $error_str . $message; } else { $status = $status_intro . "(" . gettext("Unknown Response") . ")"; - log_error($status_intro . gettext("PAYLOAD:") . " " . $body); - $this->_debug($body); + log_error($status_intro . gettext("PAYLOAD:") . " " . $data); + $this->_debug($data); } break; case 'googledomains': @@ -1422,12 +1464,27 @@ $this->_debug($data); } break; + case 'all-inkl': + if (preg_match('/good\s'.$this->_dnsIP.'/i', $data)) { + $status = $status_intro . $success_str . gettext("IP Address Changed Successfully!") . " (" . $this->_dnsIP . ")"; + $successful_update = true; + } else if (preg_match('/good/i', $data)) { + $status = $status_intro . $error_str . gettext("Result did not match."); + } else if (preg_match("/\s401\sUnauthorized/i", $header)) { + $status = $status_intro . $error_str . gettext("Invalid username or password"); + } + else { + $status = $status_intro . "(" . gettext("Unknown Response") . ")"; + log_error($status_intro . gettext("PAYLOAD:") . " " . $header.$data); + $this->_debug($data); + $this->_debug($header); + } + break; } if ($successful_update == true) { /* Write WAN IP to cache file */ $wan_ip = $this->_checkIP(); - conf_mount_rw(); if ($this->_useIPv6 == false && $wan_ip > 0) { $currentTime = time(); notify_all_remote(sprintf(gettext('DynDNS updated IP Address on %1$s (%2$s) to %3$s'), convert_real_interface_to_friendly_descr($this->_if), $this->_if, $wan_ip)); @@ -1444,7 +1501,6 @@ } else { @unlink($this->_cacheFile_v6); } - conf_mount_ro(); } $this->status = $status; log_error($status); @@ -1527,10 +1583,8 @@ $initial = false; $log_error .= sprintf(gettext("Cached IPv6: %s"), $cacheIP); } else { - conf_mount_rw(); $cacheIP = '::'; @file_put_contents($this->_cacheFile, "::|{$currentTime}"); - conf_mount_ro(); $cacheTime = $currentTime; $initial = true; $log_error .= gettext("No Cached IPv6 found."); @@ -1543,10 +1597,8 @@ $initial = false; $log_error .= sprintf(gettext("Cached IP: %s"), $cacheIP); } else { - conf_mount_rw(); $cacheIP = '0.0.0.0'; @file_put_contents($this->_cacheFile, "0.0.0.0:{$currentTime}"); - conf_mount_ro(); $cacheTime = $currentTime; $initial = true; $log_error .= gettext("No Cached IP found."); @@ -1603,11 +1655,9 @@ return; } $string = date('m-d-y h:i:s').' - ('.$this->_debugID.') - ['.$this->_dnsService.'] - '.$data."\n"; - conf_mount_rw(); $file = fopen($this->_debugFile, 'a'); fwrite($file, $string); fclose($file); - conf_mount_ro(); } function _checkIP() { global $debug; diff --git a/src/etc/inc/easyrule.inc b/src/etc/inc/easyrule.inc index 8420982..b86a39e 100644 --- a/src/etc/inc/easyrule.inc +++ b/src/etc/inc/easyrule.inc @@ -3,7 +3,7 @@ * easyrule.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2009-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2009-2016 Rubicon Communications, LLC (Netgate) * Originally Sponsored By Anathematic @ pfSense Forums * All rights reserved. * diff --git a/src/etc/inc/filter.inc b/src/etc/inc/filter.inc index 9479ba3..894da4d 100644 --- a/src/etc/inc/filter.inc +++ b/src/etc/inc/filter.inc @@ -5,7 +5,7 @@ * part of pfSense (https://www.pfsense.org) * Copyright (c) 2005 Bill Marquette * Copyright (c) 2006 Peter Allgeyer - * Copyright (c) 2008-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2008-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) @@ -232,7 +232,7 @@ function filter_configure_sync($delete_states_if_needed = true) { $filterlck = lock('filter', LOCK_EX); filter_pflog_start(); - update_filter_reload_status(gettext("Initializing")); + update_filter_reload_status(gettext("Initializing"), true); // second argument = overwrite existing file /* invalidate interface cache */ get_interface_arr(true); @@ -730,14 +730,12 @@ function filter_generate_aliases() { $aliases .= "table <snort2c>\n"; $aliases .= "table <virusprot>\n"; if (!file_exists("/etc/bogons") || !file_exists("/etc/bogonsv6")) { - conf_mount_rw(); if (!file_exists("/etc/bogons")) { @file_put_contents("/etc/bogons", ""); } if (!file_exists("/etc/bogonsv6")) { @file_put_contents("/etc/bogonsv6", ""); } - conf_mount_ro(); } $aliases .= "table <bogons> persist file \"/etc/bogons\"\n"; if (is_bogonsv6_used()) { @@ -2035,6 +2033,11 @@ function filter_nat_rules_generate() { $obtarget = ($obent['target'] == "other-subnet") ? $obent['targetip'] . '/' . $obent['targetip_subnet']: $obent['target']; $poolopts = (is_subnet($obtarget) || is_alias($obtarget)) ? $obent['poolopts'] : ""; + /* pool option source-hash allows specification of an optional source-hash key */ + if ($poolopts == "source-hash" && !empty($obent['source_hash_key'])) { + $poolopts = "source-hash ".$obent['source_hash_key']; + } + $natrules .= filter_nat_rules_generate_if($obent['interface'], $src, $obent['sourceport'], @@ -3105,6 +3108,11 @@ block out {$log['block']} inet all tracker {$increment_tracker($tracker)} label block in {$log['block']} inet6 all tracker {$increment_tracker($tracker)} label "Default deny rule IPv6" block out {$log['block']} inet6 all tracker {$increment_tracker($tracker)} label "Default deny rule IPv6" +EOD; + + if (isset($config['system']['ipv6allow'])) { + $ipfrules .= <<<EOD + # IPv6 ICMP is not auxilary, it is required for operation # See man icmp6(4) # 1 unreach Destination unreachable @@ -3124,12 +3132,23 @@ pass in {$log['pass']} quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 i pass in {$log['pass']} quick inet6 proto ipv6-icmp from ff02::/16 to fe80::/10 icmp6-type {128,133,134,135,136} tracker {$increment_tracker($tracker)} keep state pass in {$log['pass']} quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type {128,133,134,135,136} tracker {$increment_tracker($tracker)} keep state +EOD; + } + $ipfrules .= <<<EOD # We use the mighty pf, we cannot be fooled. block {$log['block']} quick inet proto { tcp, udp } from any port = 0 to any tracker {$increment_tracker($tracker)} label "Block traffic from port 0" block {$log['block']} quick inet proto { tcp, udp } from any to any port = 0 tracker {$increment_tracker($tracker)} label "Block traffic to port 0" + +EOD; + if (isset($config['system']['ipv6allow'])) { + $ipfrules .= <<<EOD block {$log['block']} quick inet6 proto { tcp, udp } from any port = 0 to any tracker {$increment_tracker($tracker)} label "Block traffic from port 0" block {$log['block']} quick inet6 proto { tcp, udp } from any to any port = 0 tracker {$increment_tracker($tracker)} label "Block traffic to port 0" +EOD; + } + $ipfrules .= <<<EOD + # Snort package block {$log['block']} quick from <snort2c> to any tracker {$increment_tracker($tracker)} label "Block snort2c hosts" block {$log['block']} quick from any to <snort2c> tracker {$increment_tracker($tracker)} label "Block snort2c hosts" @@ -3469,13 +3488,27 @@ EOD; # loopback pass in {$log['pass']} on \$loopback inet all tracker {$increment_tracker($tracker)} label "pass IPv4 loopback" pass out {$log['pass']} on \$loopback inet all tracker {$increment_tracker($tracker)} label "pass IPv4 loopback" + +EOD; + if (isset($config['system']['ipv6allow'])) { + $ipfrules .= <<<EOD pass in {$log['pass']} on \$loopback inet6 all tracker {$increment_tracker($tracker)} label "pass IPv6 loopback" pass out {$log['pass']} on \$loopback inet6 all tracker {$increment_tracker($tracker)} label "pass IPv6 loopback" + +EOD; + } + $ipfrules .= <<<EOD # let out anything from the firewall host itself and decrypted IPsec traffic pass out {$log['pass']} inet all keep state allow-opts tracker {$increment_tracker($tracker)} label "let out anything IPv4 from firewall host itself" + +EOD; + if (isset($config['system']['ipv6allow'])) { + $ipfrules .= <<<EOD pass out {$log['pass']} inet6 all keep state allow-opts tracker {$increment_tracker($tracker)} label "let out anything IPv6 from firewall host itself" EOD; + } + $ipfrules .= "\n"; $saved_tracker += 100; $tracker = $saved_tracker; diff --git a/src/etc/inc/filter_log.inc b/src/etc/inc/filter_log.inc index bd91d6e..93b049c 100644 --- a/src/etc/inc/filter_log.inc +++ b/src/etc/inc/filter_log.inc @@ -3,7 +3,7 @@ * filter_log.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/inc/functions.inc b/src/etc/inc/functions.inc index 7c56ac0..85aff1a 100644 --- a/src/etc/inc/functions.inc +++ b/src/etc/inc/functions.inc @@ -3,7 +3,7 @@ * functions.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/etc/inc/globals.inc b/src/etc/inc/globals.inc index 2dd1714..76c6aa7 100644 --- a/src/etc/inc/globals.inc +++ b/src/etc/inc/globals.inc @@ -3,7 +3,7 @@ * globals.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -54,33 +54,32 @@ $g = array( "admin_group" => "admins", "product_name" => "pfSense", "product_version" => trim(file_get_contents("/etc/version"), " \n"), - "product_copyright" => "Electric Sheep Fencing LLC", + "product_copyright" => "Rubicon Communications, LLC (Netgate)", "product_copyright_url" => "https://pfsense.org/license", "product_copyright_years" => "2004 - ".date("Y"), "product_website" => "www.pfsense.org", "product_website_footer" => "https://www.pfsense.org/?gui=bootstrap", "product_email" => "coreteam@pfsense.org", - "hideplatform" => false, - "hidebackupbeforeupgrade" => false, "disablehelpmenu" => false, "disablehelpicon" => false, "disablecrashreporter" => false, "crashreporterurl" => "https://crashreporter.pfsense.org/crash_reporter.php", "debug" => false, - "latest_config" => "15.5", - "nopkg_platforms" => array("cdrom"), + "latest_config" => "15.8", "minimum_ram_warning" => "101", "minimum_ram_warning_text" => "128 MB", "wan_interface_name" => "wan", "captiveportal_path" => "/usr/local/captiveportal", "captiveportal_element_path" => "/var/db/cpelements", "captiveportal_element_sizelimit" => 1048576, + "captiveportal_rules_interval" => 50, "services_dhcp_server_enable" => true, - "wireless_regex" => "/^(ndis|wi|ath|an|ral|ural|iwi|wlan|rum|run|bwn|zyd|mwl|bwi|ipw|iwn|malo|uath|upgt|urtw|wpi)/", + "wireless_regex" => "/^(ath|bwi|bwn|ipw|iwi|iwm|iwn|malo|mwl|ral|rsu|rum|run|uath|upgt|ural|urtw|urtwn|wi|wpi|wtap|zyd)[0-9]+/", "help_base_url" => "/help.php", "pkg_prefix" => "pfSense-pkg-", "default_timezone" => "Etc/UTC", - "language" => "en_US" + "language" => "en_US", + "default_config_backup_count" => 30 ); /* IP TOS flags */ @@ -100,36 +99,8 @@ if (is_numeric($g["product_version_patch"]) && $g["product_version_patch"] != "0 $g['product_version_string'] .= "-p{$g['product_version_patch']}"; } -if (file_exists("/etc/platform")) { - $arch = php_uname("m"); - - if (strstr($g['product_version'], "-RELEASE")) { - /* This is only necessary for RELEASE */ - $arch = ($arch == "i386") ? "" : '/' . $arch; - /* Full installs and NanoBSD use the same update directory and manifest in 2.x */ - $g['update_url']="https://updates.pfsense.org/_updaters{$arch}"; - $g['update_manifest']="https://updates.pfsense.org/manifest"; - } else { - /* Full installs and NanoBSD use the same update directory and manifest in 2.x */ - $g['update_url']="https://snapshots.pfsense.org/FreeBSD_releng/10.1/{$arch}/pfSense_HEAD/.updaters/"; - $g['update_manifest']="https://updates.pfSense.org/manifest"; - } - - $g['platform'] = trim(file_get_contents("/etc/platform")); - if ($g['platform'] == "nanobsd") { - $g['firmware_update_text']="pfSense-*.img.gz"; - $g['hidebackupbeforeupgrade'] = true; - $g['default_config_backup_count'] = 5; - } else { - $g['firmware_update_text']="pfSense-*.tgz"; - $g['default_config_backup_count'] = 30; - } -} else { - // shouldn't happen but "just in case" no platform were detected - $g['platform'] = 'undetected'; - $g['default_config_backup_count'] = 30; -} - +/* XXX: Backward compatible */ +$g['platform'] = $g['product_name']; if (file_exists("{$g['etc_path']}/default-config-flavor")) { $flavor_array = file("{$g['etc_path']}/default-config-flavor"); @@ -224,4 +195,5 @@ $factory_default_checkipservice = array( "descr" => 'Default Check IP Service' ); +$dyndns_split_domain_types = array("namecheap", "cloudflare", "cloudflare-v6", "gratisdns"); ?> diff --git a/src/etc/inc/gmirror.inc b/src/etc/inc/gmirror.inc index 83964a3..7afe632 100644 --- a/src/etc/inc/gmirror.inc +++ b/src/etc/inc/gmirror.inc @@ -3,7 +3,7 @@ * gmirror.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/inc/gwlb.inc b/src/etc/inc/gwlb.inc index a71b0e4..4e91f34 100644 --- a/src/etc/inc/gwlb.inc +++ b/src/etc/inc/gwlb.inc @@ -4,7 +4,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2008 Bill Marquette, Seth Mos - * Copyright (c) 2008-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2008-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -223,12 +223,11 @@ function setup_gateways_monitor() { */ if (is_ipaddrv4($gateway['gateway']) && $gateway['monitor'] != $gateway['gateway']) { log_error(sprintf(gettext('Removing static route for monitor %1$s and adding a new route through %2$s'), $gateway['monitor'], $gateway['gateway'])); + $route_to = "-host {$gateway['monitor']}"; if (interface_isppp_type($gateway['friendlyiface'])) { - mwexec("/sbin/route change -host " . escapeshellarg($gateway['monitor']) . - " -iface " . escapeshellarg($gateway['interface']), true); + route_add_or_change("{$route_to} -iface {$gateway['interface']}"); } else { - mwexec("/sbin/route change -host " . escapeshellarg($gateway['monitor']) . - " " . escapeshellarg($gateway['gateway']), true); + route_add_or_change("{$route_to} {$gateway['gateway']}"); } pfSense_kill_states("0.0.0.0/0", $gateway['monitor'], $gateway['interface'], "icmp"); @@ -265,12 +264,11 @@ function setup_gateways_monitor() { */ if ($gateway['gateway'] != $gateway['monitor']) { log_error(sprintf(gettext('Removing static route for monitor %1$s and adding a new route through %2$s'), $gateway['monitor'], $gateway['gateway'])); + $route_to = "-host -inet6 {$gateway['monitor']}"; if (interface_isppp_type($gateway['friendlyiface'])) { - mwexec("/sbin/route change -host -inet6 " . escapeshellarg($gateway['monitor']) . - " -iface " . escapeshellarg($gateway['interface']), true); + route_add_or_change("{$route_to} -iface {$gateway['interface']}"); } else { - mwexec("/sbin/route change -host -inet6 " . escapeshellarg($gateway['monitor']) . - " " . escapeshellarg($gateway['gateway']), true); + route_add_or_change("{$route_to} {$gateway['gateway']}"); } pfSense_kill_states("::0.0.0.0/0", $gateway['monitor'], $gateway['interface'], "icmpv6"); @@ -593,6 +591,7 @@ function return_gateways_array($disabled = false, $localhost = false, $inactive switch ($ifcfg['ipaddr']) { case "dhcp": case "pppoe": + case "l2tp": case "pptp": case "ppp": $ctype = strtoupper($ifcfg['ipaddr']); @@ -842,7 +841,7 @@ function fixup_default_gateway($ipprotocol, $gateways_status, $gateways_arr) { } else { $inetfamily = "-inet"; } - mwexec("/sbin/route change {$inetfamily} default {$gateways_arr[$upgw]['gateway']}"); + route_add_or_change("{$inetfamily} default {$gateways_arr[$upgw]['gateway']}"); } } else if (!empty($dfltgwname)) { $defaultgw = trim(exec("/sbin/route -n get -{$ipprotocol} default | /usr/bin/awk '/gateway:/ {print $2}'"), " \n"); @@ -861,7 +860,7 @@ function fixup_default_gateway($ipprotocol, $gateways_status, $gateways_arr) { } } if ($defaultgw != $gateways_arr[$dfltgwname]['gateway']) { - mwexec("/sbin/route change -{$ipprotocol} default {$gateways_arr[$dfltgwname]['gateway']}"); + route_add_or_change("-{$ipprotocol} default {$gateways_arr[$dfltgwname]['gateway']}"); } } } @@ -923,26 +922,25 @@ function return_gateway_groups_array() { $gwdown = true; } if ($gwdown == true) { - if (!file_exists("/tmp/.down.$gwname")) { - $msg .= "\n".implode("|", $status); - touch("/tmp/.down.$gwname"); - log_error($msg); - notify_via_growl($msg); - notify_via_smtp($msg); - } + if (!file_exists("/tmp/.down.{$gwname}")) { + $msg .= "\n".implode("|", $status); + touch("/tmp/.down.{$gwname}"); + log_error($msg); + notify_via_growl($msg); + notify_via_smtp($msg); + } } else { /* Online add member */ if (!is_array($tiers[$tier])) { $tiers[$tier] = array(); } $tiers[$tier][] = $gwname; - if (file_exists("/tmp/.down.$gwname")) { - $msg = "MONITOR: {$gwname} is available now, adding to routing group"; + if (unlink_if_exists("/tmp/.down.{$gwname}")) { + $msg = sprintf(gettext('MONITOR: %1$s is available now, adding to routing group %2$s'), $gwname, $group['name']); $msg .= "\n".implode("|", $status); log_error($msg); notify_via_growl($msg); notify_via_smtp($msg); - unlink("/tmp/.down.$gwname"); } } } else if (isset($gateways_arr[$gwname]['monitor_disable'])) { diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index 865009a..b1ef885 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -3,7 +3,7 @@ * interfaces.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -1006,10 +1006,10 @@ function interface_gif_configure(&$gif, $gifkey = "") { } if (is_ipaddrv4($realifgw)) { - mwexec("/sbin/route change -host " . escapeshellarg($gif['remote-addr']) . " {$realifgw}"); + route_add_or_change("-host {$gif['remote-addr']} {$realifgw}"); } if (is_ipaddrv6($realifgw)) { - mwexec("/sbin/route change -host -inet6 " . escapeshellarg($gif['remote-addr']) . " {$realifgw}"); + route_add_or_change("-host -inet6 {$gif['remote-addr']} {$realifgw}"); } interfaces_bring_up($gifif); @@ -1158,16 +1158,16 @@ function interfaces_configure() { /* reload IPsec tunnels */ vpn_ipsec_configure(); - /* reload dhcpd (interface enabled/disabled status may have changed) */ - services_dhcpd_configure(); - + /* restart dns servers (defering dhcpd reload) */ if (isset($config['dnsmasq']['enable'])) { - services_dnsmasq_configure(); + services_dnsmasq_configure(false); } - if (isset($config['unbound']['enable'])) { - services_unbound_configure(); + services_unbound_configure(false); } + + /* reload dhcpd (interface enabled/disabled status may have changed) */ + services_dhcpd_configure(); } return 0; @@ -1300,11 +1300,7 @@ function interface_bring_down($interface = "wan", $destroy = false, $ifacecfg = switch ($ifcfg['ipaddrv6']) { case "slaac": case "dhcp6": - $pidv6 = find_dhcp6c_process($realif); - if ($pidv6) { - posix_kill($pidv6, SIGTERM); - } - sleep(3); + kill_dhcp6client_process($realif); unlink_if_exists("{$g['varetc_path']}/dhcp6c_{$interface}.conf"); unlink_if_exists("{$g['varetc_path']}/dhcp6c_{$interface}_script.sh"); unlink_if_exists("{$g['varetc_path']}/rtsold_{$realifv6}_script.sh"); @@ -1654,6 +1650,9 @@ function interface_ppps_configure($interface) { log_error(sprintf(gettext("Could not get a Local IP address for PPTP/L2TP link on %s in interfaces_ppps_configure. Using 0.0.0.0 ip!"), $port)); $localips[$pid] = "0.0.0.0"; } + if (!$g['booting'] && !is_ipaddr($gateways[$pid]) && is_hostname($gateways[$pid])) { + $gateways[$pid] = gethostbyname($gateways[$pid]); + } if (!is_ipaddr($gateways[$pid])) { log_error(sprintf(gettext('Could not get a PPTP/L2TP Remote IP address from %1$s for %2$s in interfaces_ppps_configure.'), $dhcp_gateway, $gway)); return 0; @@ -1999,15 +1998,11 @@ EOD; // Create the uptime log if requested and if it doesn't exist already, or delete it if it is no longer requested. if (isset($ppp['uptime'])) { if (!file_exists("/conf/{$pppif}.log")) { - conf_mount_rw(); file_put_contents("/conf/{$pppif}.log", ''); - conf_mount_ro(); } } else { if (file_exists("/conf/{$pppif}.log")) { - conf_mount_rw(); @unlink("/conf/{$pppif}.log"); - conf_mount_ro(); } } @@ -2582,8 +2577,6 @@ function interface_wireless_configure($if, &$wl, &$wlcfg) { $wlcmd = array(); $wl_sysctl = array(); - /* Make sure it's up */ - $wlcmd[] = "up"; /* Set a/b/g standard */ $standard = str_replace(" Turbo", "", $wlcfg['standard']); /* skip mode entirely for "auto" */ @@ -2710,7 +2703,6 @@ function interface_wireless_configure($if, &$wl, &$wlcfg) { mwexec(kill_wpasupplicant("{$if}")); /* generate wpa_supplicant/hostap config if wpa is enabled */ - conf_mount_rw(); switch ($wlcfg['mode']) { case 'bss': @@ -2842,7 +2834,8 @@ EOD; /* add line to script to restore old mac to make hostapd happy */ if (file_exists("{$g['tmp_path']}/{$if}_oldmac")) { $if_oldmac = file_get_contents("{$g['tmp_path']}/{$if}_oldmac"); - if (is_macaddr($if_oldmac)) { + $if_curmac = get_interface_mac($if); + if ($if_curmac != $if_oldmac && is_macaddr($if_oldmac)) { fwrite($fd_set, "{$ifconfig} " . escapeshellarg($if) . " link " . escapeshellarg($if_oldmac) . "\n"); } @@ -2851,22 +2844,17 @@ EOD; fwrite($fd_set, "{$hostapd} -B -P {$g['varrun_path']}/hostapd_{$if}.pid {$g['varetc_path']}/hostapd_{$if}.conf\n"); /* add line to script to restore spoofed mac after running hostapd */ - if (file_exists("{$g['tmp_path']}/{$if}_oldmac")) { - if ($wl['spoofmac']) { - $if_curmac = $wl['spoofmac']; - } else { - $if_curmac = get_interface_mac($if); - } - if (is_macaddr($if_curmac)) { + if ($wl['spoofmac']) { + $if_curmac = get_interface_mac($if); + if ($wl['spoofmac'] != $if_curmac && is_macaddr($wl['spoofmac'])) { fwrite($fd_set, "{$ifconfig} " . escapeshellarg($if) . - " link " . escapeshellarg($if_curmac) . "\n"); + " link " . escapeshellarg($wl['spoofmac']) . "\n"); } } } } fclose($fd_set); - conf_mount_ro(); /* Making sure regulatory settings have actually changed * before applying, because changing them requires bringing @@ -2954,18 +2942,22 @@ EOD; } } - /* 20150318 cmb - Note: the below no longer appears to be true on FreeBSD 10.x, so don't set - * mode twice (for now at least). This can be removed entirely in the future if no problems are found - - * The mode must be specified in a separate command before ifconfig - * will allow the mode and channel at the same time in the next. */ - //mwexec("/sbin/ifconfig " . escapeshellarg($if) . " mode " . escapeshellarg($standard)); - //fwrite($wlan_setup_log, "/sbin/ifconfig " . escapeshellarg($if) . " mode " . escapeshellarg($standard) . "\n"); + /* The mode must be specified in a separate command before ifconfig + * will allow the mode and channel at the same time in the next. + * Only do this for AP mode as this breaks client mode (PR 198680). + */ + if ($wlcfg['mode'] == "hostap") { + mwexec("/sbin/ifconfig " . escapeshellarg($if) . " mode " . escapeshellarg($standard)); + fwrite($wlan_setup_log, "/sbin/ifconfig " . escapeshellarg($if) . " mode " . escapeshellarg($standard) . "\n"); + } /* configure wireless */ $wlcmd_args = implode(" ", $wlcmd); mwexec("/sbin/ifconfig " . escapeshellarg($if) . " " . $wlcmd_args, false); fwrite($wlan_setup_log, "/sbin/ifconfig " . escapeshellarg($if) . " " . "$wlcmd_args \n"); + /* Bring the interface up only after setting up all the other parameters. */ + mwexec("/sbin/ifconfig " . escapeshellarg($if) . " up", false); + fwrite($wlan_setup_log, "/sbin/ifconfig " . escapeshellarg($if) . " up\n"); fclose($wlan_setup_log); unset($wlcmd_args, $wlcmd); @@ -3030,19 +3022,14 @@ function find_dhcp6c_process($interface) { } function kill_dhcp6client_process($interface) { - if (empty($interface) || !does_interface_exist($interface)) { - return; - } + if (empty($interface) || !does_interface_exist($interface)) { + return; + } - $i = 0; - while ((($pid = find_dhcp6c_process($interface)) != 0) && ($i < 3)) { - /* 3rd time make it die for sure */ - $sig = ($i == 2 ? SIGKILL : SIGTERM); - posix_kill($pid, $sig); - sleep(1); - $i++; - } - unset($i); + if (($pid = find_dhcp6c_process($interface)) != 0) { + mwexec("kill -9 {$pid}"); + sleep(1); + } } function interface_virtual_create($interface) { @@ -3536,14 +3523,15 @@ function interface_track6_configure($interface = "lan", $wancfg, $linkupevent = require_once("services.inc"); } + /* restart dns servers (defering dhcpd reload) */ if (isset($config['unbound']['enable'])) { - services_unbound_configure(); + services_unbound_configure(false); } - if (isset($config['dnsmasq']['enable'])) { - services_dnsmasq_configure(); + services_dnsmasq_configure(false); } + /* reconfigure dhcpdv6 (leaving dhcpdv4 alone) */ services_dhcpd_configure("inet6"); } @@ -3704,12 +3692,12 @@ function interface_6rd_configure($interface = "wan", $wancfg) { $rd6prefix = explode("/", $wancfg['prefix-6rd']); $rd6prefixlen = $rd6prefix[1]; $brgw = explode('.', $wancfg['gateway-6rd']); - $rd6brgw = substr(Net_IPv6::_ip2Bin($rd6prefix[0]), 0, $rd6prefixlen); + $rd6brgw = substr(ip6_to_bin($rd6prefix[0]), 0, $rd6prefixlen); $rd6brgw .= str_pad(decbin($brgw[0]), 8, '0', STR_PAD_LEFT) . str_pad(decbin($brgw[1]), 8, '0', STR_PAD_LEFT) . str_pad(decbin($brgw[2]), 8, '0', STR_PAD_LEFT) . str_pad(decbin($brgw[3]), 8, '0', STR_PAD_LEFT); if (strlen($rd6brgw) < 128) { $rd6brgw = str_pad($rd6brgw, 128, '0', STR_PAD_RIGHT); } - $rd6brgw = Net_IPv6::compress(Net_IPv6::_bin2Ip($rd6brgw)); + $rd6brgw = bin_to_compressed_ip6($rd6brgw); unset($brgw); $rd6prefix = Net_IPv6::uncompress($rd6prefix[0]); @@ -3753,7 +3741,7 @@ function interface_6rd_configure($interface = "wan", $wancfg) { $ip4gateway = get_interface_gateway($interface); if (is_ipaddrv4($ip4gateway)) { - mwexec("/sbin/route change -host " . escapeshellarg($wancfg['gateway-6rd']) . " {$ip4gateway}"); + route_add_or_change("-host {$wancfg['gateway-6rd']} {$ip4gateway}"); } /* configure dependent interfaces */ @@ -3860,7 +3848,7 @@ function interface_6to4_configure($interface = "wan", $wancfg) { $ip4gateway = get_interface_gateway($interface); if (is_ipaddrv4($ip4gateway)) { - mwexec("/sbin/route change -host 192.88.99.1 {$ip4gateway}"); + route_add_or_change("-host 192.88.99.1 {$ip4gateway}"); } if (!platform_booting()) { @@ -3974,23 +3962,20 @@ function interface_dhcpv6_configure($interface = "wan", $wancfg) { $rtsoldscript .= "echo $2 > {$g['tmp_path']}/{$wanif}_routerv6\n"; $rtsoldscript .= "echo $2 > {$g['tmp_path']}/{$wanif}_defaultgwv6\n"; $rtsoldscript .= "/usr/bin/logger -t rtsold \"Received RA specifying route \$2 for interface {$interface}({$wanif})\"\n"; - $rtsoldscript .= "if [ -f {$g['varrun_path']}/dhcp6c_{$wanif}.pid ]; then\n"; - $rtsoldscript .= "\t/bin/pkill -F {$g['varrun_path']}/dhcp6c_{$wanif}.pid\n"; - $rtsoldscript .= "\t/bin/sleep 1\n"; - $rtsoldscript .= "fi\n"; - $debugOption = isset($wancfg['dhcp6debug']) ? "-D" : "-d"; - $rtsoldscript .= "/usr/local/sbin/dhcp6c {$debugOption} -c {$g['varetc_path']}/dhcp6c_{$interface}.conf -p {$g['varrun_path']}/dhcp6c_{$wanif}.pid {$wanif}\n"; - $rtsoldscript .= "/usr/bin/logger -t rtsold \"Starting dhcp6 client for interface {$interface}({$wanif})\"\n"; + /* non ipoe Process */ - if (!isset($wancfg['dhcp6withoutra'])) { + if (!isset($wancfg['dhcp6withoutra'])) { $rtsoldscript .= "if [ -f {$g['varrun_path']}/dhcp6c_{$wanif}.pid ]; then\n"; $rtsoldscript .= "\t/bin/pkill -F {$g['varrun_path']}/dhcp6c_{$wanif}.pid\n"; $rtsoldscript .= "\t/bin/sleep 1\n"; $rtsoldscript .= "fi\n"; } else { - $rtsoldscript .= "\t/bin/sleep 1\n"; + $rtsoldscript .= "{$g['varetc_path']}/dhcp6c_{$interface}_script.sh\n"; + $rtsoldscript .= "/bin/sleep 1\n"; } $debugOption = isset($wancfg['dhcp6debug']) ? "-D" : "-d"; + + /* add the start of dhcp6c to the rtsold script if we are going to wait for ra */ if (!isset($wancfg['dhcp6withoutra'])) { $rtsoldscript .= "/usr/local/sbin/dhcp6c {$debugOption} -c {$g['varetc_path']}/dhcp6c_{$interface}.conf -p {$g['varrun_path']}/dhcp6c_{$wanif}.pid {$wanif}\n"; $rtsoldscript .= "/usr/bin/logger -t rtsold \"Starting dhcp6 client for interface {$interface}({$wanif})\"\n"; @@ -4013,11 +3998,13 @@ function interface_dhcpv6_configure($interface = "wan", $wancfg) { killbypid("{$g['varrun_path']}/rtsold_{$wanif}.pid"); sleep(2); } + + /* start dhcp6c here if we don't want to wait for ra */ if (isset($wancfg['dhcp6withoutra'])) { kill_dhcp6client_process($wanif); mwexec("/usr/local/sbin/dhcp6c {$debugOption} -c {$g['varetc_path']}/dhcp6c_wan.conf -p {$g['varrun_path']}/dhcp6c_{$wanif}.pid {$wanif}"); - mwexec("/usr/bin/logger -t mwtag 'Starting dhcp6 client for interface wan({$wanif} in IPoE mode)'"); + mwexec("/usr/bin/logger -t info 'Starting dhcp6 client for interface wan({$wanif} in DHCP6 without RA mode)'"); } mwexec("/usr/sbin/rtsold -1 -p {$g['varrun_path']}/rtsold_{$wanif}.pid -O {$g['varetc_path']}/rtsold_{$wanif}_script.sh {$wanif}"); @@ -4741,6 +4728,27 @@ function interface_get_wireless_clone($wlif) { } } +function interface_list_wireless() { + $portlist = explode(" ", get_single_sysctl("net.wlan.devices")); + + $result = array(); + foreach ($portlist as $port) { + if (preg_match("/^([^0-9]+)([0-9]+)/", $port, $matches) != 1) { + continue; + } + + $desc = $port . " ( " . get_single_sysctl( + "dev.{$matches[1]}.{$matches[2]}.%desc") . " )"; + + $result[] = array( + "if" => $port, + "descr" => $desc + ); + } + + return $result; +} + function get_real_interface($interface = "wan", $family = "all", $realv6iface = false, $flush = true) { global $config, $g; @@ -5655,7 +5663,7 @@ function is_altq_capable($int) { * 20150328 - removed wireless drivers - ath, awi, bwn, iwi, ipw, ral, rum, run, wi - for now. redmine #4406 */ $capable = array("ae", "age", "alc", "ale", "an", "aue", "axe", "bce", - "bfe", "bge", "bridge", "cas", "dc", "de", "ed", "em", "ep", "epair", "et", "fxp", "gem", + "bfe", "bge", "bridge", "cas", "cxl", "dc", "de", "ed", "em", "ep", "epair", "et", "fxp", "gem", "hme", "hn", "igb", "ix", "jme", "le", "lem", "msk", "mxge", "my", "nfe", "nge", "npe", "nve", "re", "rl", "sf", "sge", "sis", "sk", "ste", "stge", "ti", "txp", "udav", "ural", "vge", "vmx", "vr", "vte", "xl", @@ -5919,7 +5927,9 @@ function interfaces_staticarp_configure($if) { mwexec("/usr/sbin/arp -d -i " . escapeshellarg($ifcfg['if']) . " -a > /dev/null 2>&1 "); if (is_array($config['dhcpd'][$if]['staticmap'])) { foreach ($config['dhcpd'][$if]['staticmap'] as $arpent) { - mwexec("/usr/sbin/arp -s " . escapeshellarg($arpent['ipaddr']) . " " . escapeshellarg($arpent['mac'])); + if (!empty($arpent['ipaddr']) && !empty($arpent['mac'])) { + mwexec("/usr/sbin/arp -s " . escapeshellarg($arpent['ipaddr']) . " " . escapeshellarg($arpent['mac'])); + } } } } else { @@ -5927,7 +5937,7 @@ function interfaces_staticarp_configure($if) { mwexec("/usr/sbin/arp -d -i " . escapeshellarg($ifcfg['if']) . " -a > /dev/null 2>&1 "); if (is_array($config['dhcpd'][$if]) && is_array($config['dhcpd'][$if]['staticmap'])) { foreach ($config['dhcpd'][$if]['staticmap'] as $arpent) { - if (isset($arpent['arp_table_static_entry'])) { + if (isset($arpent['arp_table_static_entry']) && !empty($arpent['ipaddr']) && !empty($arpent['mac'])) { mwexec("/usr/sbin/arp -s " . escapeshellarg($arpent['ipaddr']) . " " . escapeshellarg($arpent['mac'])); } } diff --git a/src/etc/inc/ipsec.attributes.php b/src/etc/inc/ipsec.attributes.php index 3cf1cf6..65ab036 100644 --- a/src/etc/inc/ipsec.attributes.php +++ b/src/etc/inc/ipsec.attributes.php @@ -3,7 +3,7 @@ * ipsec.attributes.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2011-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2011-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/inc/ipsec.auth-user.php b/src/etc/inc/ipsec.auth-user.php index 5c945ac..d7d790a 100755 --- a/src/etc/inc/ipsec.auth-user.php +++ b/src/etc/inc/ipsec.auth-user.php @@ -5,7 +5,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2008 Shrew Soft Inc - * Copyright (c) 2008-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2008-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/inc/ipsec.inc b/src/etc/inc/ipsec.inc index a77e485..c16e854 100644 --- a/src/etc/inc/ipsec.inc +++ b/src/etc/inc/ipsec.inc @@ -4,7 +4,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2008 Shrew Soft Inc. - * Copyright (c) 2007-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2007-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -597,8 +597,12 @@ function ipsec_dump_sad() { * Return dump of mobile user list */ function ipsec_dump_mobile() { - global $g; + global $g, $config; + if(!isset($config['ipsec']['client']['enable'])) { + return array(); + } + $_gb = exec("/usr/local/sbin/ipsec leases 2>/dev/null", $output, $rc); if ($rc != 0) { diff --git a/src/etc/inc/itemid.inc b/src/etc/inc/itemid.inc index 6251928..1fe4809 100644 --- a/src/etc/inc/itemid.inc +++ b/src/etc/inc/itemid.inc @@ -3,7 +3,7 @@ * itemid.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2009-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2009-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2009 Janne Enberg <janne.enberg@lietu.net> * All rights reserved. * diff --git a/src/etc/inc/led.inc b/src/etc/inc/led.inc index 647f69c..17b96e2 100644 --- a/src/etc/inc/led.inc +++ b/src/etc/inc/led.inc @@ -3,7 +3,7 @@ * led.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2009-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2009-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/inc/meta.inc b/src/etc/inc/meta.inc index a58c1fe..f366072 100644 --- a/src/etc/inc/meta.inc +++ b/src/etc/inc/meta.inc @@ -4,7 +4,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2008 Shrew Soft Inc - * Copyright (c) 2008-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2008-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/inc/notices.inc b/src/etc/inc/notices.inc index 9bda4c7..2df36c3 100644 --- a/src/etc/inc/notices.inc +++ b/src/etc/inc/notices.inc @@ -4,7 +4,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2005 Colin Smith (ethethlay@gmail.com) - * Copyright (c) 2005-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2005-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/inc/openvpn.attributes.php b/src/etc/inc/openvpn.attributes.php index 95239f6..44b2a34 100644 --- a/src/etc/inc/openvpn.attributes.php +++ b/src/etc/inc/openvpn.attributes.php @@ -3,7 +3,7 @@ * openvpn.attributes.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2011-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2011-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/inc/openvpn.auth-user.php b/src/etc/inc/openvpn.auth-user.php index cbbe1f7..e2a6549 100644 --- a/src/etc/inc/openvpn.auth-user.php +++ b/src/etc/inc/openvpn.auth-user.php @@ -5,7 +5,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2008 Shrew Soft Inc - * Copyright (c) 2008-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2008-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/inc/openvpn.inc b/src/etc/inc/openvpn.inc index 117aba9..dd303c5 100644 --- a/src/etc/inc/openvpn.inc +++ b/src/etc/inc/openvpn.inc @@ -4,7 +4,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2006 Fernando Lemos - * Copyright (c) 2006-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2006-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * This file was rewritten from scratch by Fernando Lemos but @@ -368,11 +368,11 @@ function openvpn_port_next($prot, $interface = "wan") { function openvpn_get_cipherlist() { $ciphers = array(); - $cipher_out = shell_exec('/usr/local/sbin/openvpn --show-ciphers | /usr/bin/grep "default key" | /usr/bin/awk \'{print $1, "(" $2 "-" $3 ")";}\''); + $cipher_out = shell_exec('/usr/local/sbin/openvpn --show-ciphers | /usr/bin/grep \'(.*key\' | sed \'s/, TLS client\/server mode only//\''); $cipher_lines = explode("\n", trim($cipher_out)); sort($cipher_lines); foreach ($cipher_lines as $line) { - $words = explode(' ', $line); + $words = explode(' ', $line, 2); $ciphers[$words[0]] = "{$words[0]} {$words[1]}"; } $ciphers["none"] = gettext("None (No Encryption)"); diff --git a/src/etc/inc/openvpn.tls-verify.php b/src/etc/inc/openvpn.tls-verify.php index 46c8ff7..b4cfd24 100644 --- a/src/etc/inc/openvpn.tls-verify.php +++ b/src/etc/inc/openvpn.tls-verify.php @@ -4,7 +4,7 @@ * openvpn.tls-verify.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2011-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2011-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/inc/pfsense-utils.inc b/src/etc/inc/pfsense-utils.inc index 9087ff7..0cc6416 100644 --- a/src/etc/inc/pfsense-utils.inc +++ b/src/etc/inc/pfsense-utils.inc @@ -3,7 +3,7 @@ * pfsense-utils.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -380,6 +380,12 @@ function hardware_offloading_applyflags($iface) { if (isset($options['encaps']['rxcsum'])) { $flags_off |= IFCAP_RXCSUM; } + if (isset($options['encaps']['txcsum6'])) { + $flags_off |= IFCAP_TXCSUM_IPV6; + } + if (isset($options['encaps']['rxcsum6'])) { + $flags_off |= IFCAP_RXCSUM_IPV6; + } } else { if (isset($options['caps']['txcsum'])) { $flags_on |= IFCAP_TXCSUM; @@ -387,6 +393,12 @@ function hardware_offloading_applyflags($iface) { if (isset($options['caps']['rxcsum'])) { $flags_on |= IFCAP_RXCSUM; } + if (isset($options['caps']['txcsum6'])) { + $flags_on |= IFCAP_TXCSUM_IPV6; + } + if (isset($options['caps']['rxcsum6'])) { + $flags_on |= IFCAP_RXCSUM_IPV6; + } } if (isset($config['system']['disablesegmentationoffloading'])) { @@ -629,8 +641,11 @@ function get_carp_interface_status($carpid) { $interface = get_real_interface($carpiface); if ($interface == NULL) return ""; + $vip = get_configured_vip($carpid); + if ($vip == NULL || !isset($vip['vhid'])) + return ""; - $vhid = $carp['vhid']; + $vhid = $vip['vhid']; $carp_query = ''; $_gb = exec("/sbin/ifconfig $interface | /usr/bin/grep carp: | /usr/bin/grep \"vhid $vhid\"", $carp_query); foreach ($carp_query as $int) { @@ -788,7 +803,6 @@ function backup_config_section($section_name) { */ function restore_config_section($section_name, $new_contents) { global $config, $g; - conf_mount_rw(); $fout = fopen("{$g['tmp_path']}/tmpxml", "w"); fwrite($fout, $new_contents); fclose($fout); @@ -816,7 +830,6 @@ function restore_config_section($section_name, $new_contents) { } write_config(sprintf(gettext("Restored %s of config file (maybe from CARP partner)"), $section_name)); disable_security_checks(); - conf_mount_ro(); return true; } @@ -828,7 +841,6 @@ function restore_config_section($section_name, $new_contents) { */ function merge_config_section($section_name, $new_contents) { global $config; - conf_mount_rw(); $fname = get_tmp_filename(); $fout = fopen($fname, "w"); fwrite($fout, $new_contents); @@ -838,7 +850,6 @@ function merge_config_section($section_name, $new_contents) { unlink($fname); write_config(sprintf(gettext("Restored %s of config file (maybe from CARP partner)"), $section_name)); disable_security_checks(); - conf_mount_ro(); return; } @@ -932,7 +943,7 @@ function host_firmware_version($tocheck = "") { "firmware" => array("version" => $g['product_version']), "kernel" => array("version" => $os_version), "base" => array("version" => $os_version), - "platform" => trim(file_get_contents('/etc/platform', " \n")), + "platform" => $g['platform'], "config_version" => $config['version'] ); } @@ -1057,10 +1068,8 @@ function reload_all_sync() { system_ntp_configure(); /* sync pw database */ - conf_mount_rw(); unlink_if_exists("/etc/spwd.db.tmp"); mwexec("/usr/sbin/pwd_mkdb -d /etc/ /etc/master.passwd"); - conf_mount_ro(); /* restart sshd */ send_event("service restart sshd"); @@ -1071,7 +1080,6 @@ function reload_all_sync() { function setup_serial_port($when = "save", $path = "") { global $g, $config; - conf_mount_rw(); $ttys_file = "{$path}/etc/ttys"; $boot_config_file = "{$path}/boot.config"; $loader_conf_file = "{$path}/boot/loader.conf"; @@ -1083,96 +1091,99 @@ function setup_serial_port($when = "save", $path = "") { } $serialspeed = (is_numeric($config['system']['serialspeed'])) ? $config['system']['serialspeed'] : "115200"; - if ($g['platform'] != "cdrom") { - $serial_only = false; + $serial_only = false; - if (($g['platform'] == "nanobsd") && isset($g['enableserial_force'])) { - $serial_only = true; - } else { - $specific_platform = system_identify_specific_platform(); - if ($specific_platform['name'] == 'RCC-VE' || - $specific_platform['name'] == 'RCC' || - $specific_platform['name'] == 'RCC-DFF') { - $serial_only = true; - } + $specific_platform = system_identify_specific_platform(); + if ($specific_platform['name'] == 'RCC-VE' || + $specific_platform['name'] == 'RCC' || + $specific_platform['name'] == 'RCC-DFF') { + $serial_only = true; + } + + $boot_config_split = explode("\n", $boot_config); + $data = array(); + foreach ($boot_config_split as $bcs) { + /* Ignore -D and -h lines now */ + if (!empty($bcs) && !stristr($bcs, "-D") && + !stristr($bcs, "-h")) { + $data[] = $bcs; } + } + if ($serial_only === true) { + $data[] = "-S{$serialspeed} -h"; + } elseif (is_serial_enabled()) { + $data[] = "-S{$serialspeed} -D"; + } - $boot_config_split = explode("\n", $boot_config); - $fd = fopen($boot_config_file, "w"); - if ($fd) { - foreach ($boot_config_split as $bcs) { - if (stristr($bcs, "-D") || stristr($bcs, "-h")) { - /* DONT WRITE OUT, WE'LL DO IT LATER */ - } else { - if ($bcs <> "") { - fwrite($fd, "{$bcs}\n"); - } - } - } - if ($serial_only === true) { - fwrite($fd, "-S{$serialspeed} -h"); - } else if (is_serial_enabled()) { - fwrite($fd, "-S{$serialspeed} -D"); - } - fclose($fd); - } - - /* serial console - write out /boot/loader.conf */ - if ($when == "upgrade") { - system("echo \"Reading {$loader_conf_file}...\" >> /conf/upgrade_log.txt"); - } - $boot_config = file_get_contents($loader_conf_file); - $boot_config_split = explode("\n", $boot_config); - if (count($boot_config_split) > 0) { - $new_boot_config = array(); - // Loop through and only add lines that are not empty, and which - // do not contain a console directive. - foreach ($boot_config_split as $bcs) { - if (!empty($bcs) && - (stripos($bcs, "console") === false) && - (stripos($bcs, "boot_multicons") === false) && - (stripos($bcs, "boot_serial") === false) && - (stripos($bcs, "hw.usb.no_pf") === false) && - (stripos($bcs, "hint.uart.0.flags") === false) && - (stripos($bcs, "hint.uart.1.flags") === false)) { - $new_boot_config[] = $bcs; - } - } + if (empty($data)) { + @unlink($boot_conf_file); + } else { + safe_write_file($boot_config_file, $data); + } + + unset($boot_config, $boot_config_file, $boot_config_split); + + /* serial console - write out /boot/loader.conf */ + if ($when == "upgrade") { + system("echo \"Reading {$loader_conf_file}...\" >> /conf/upgrade_log.txt"); + } + + $loader_conf = file_get_contents($loader_conf_file); + $loader_conf_split = explode("\n", $loader_conf); + + $data = array(); + // Loop through and only add lines that are not empty, and which + // do not contain a console directive. + foreach ($loader_conf_split as $bcs) { + if (!empty($bcs) && + (stripos($bcs, "console") === false) && + (stripos($bcs, "boot_multicons") === false) && + (stripos($bcs, "boot_serial") === false) && + (stripos($bcs, "hw.usb.no_pf") === false) && + (stripos($bcs, "hint.uart.0.flags") === false) && + (stripos($bcs, "hint.uart.1.flags") === false)) { + $data[] = $bcs; + } + } + + if ($serial_only === true) { + $data[] = 'boot_serial="YES"'; + $data[] = 'console="comconsole"'; + } else if (is_serial_enabled()) { + $data[] = 'boot_multicons="YES"'; + $data[] = 'boot_serial="YES"'; + $primaryconsole = isset($g['primaryconsole_force']) ? + $g['primaryconsole_force'] : + $config['system']['primaryconsole']; + switch ($primaryconsole) { + case "video": + $data[] = 'console="vidconsole,comconsole"'; + break; + case "serial": + default: + $data[] = 'console="comconsole,vidconsole"'; + } + } + $data[] = 'comconsole_speed="' . $serialspeed . '"'; - if ($serial_only === true) { - $new_boot_config[] = 'boot_serial="YES"'; - $new_boot_config[] = 'console="comconsole"'; - } else if (is_serial_enabled()) { - $new_boot_config[] = 'boot_multicons="YES"'; - $new_boot_config[] = 'boot_serial="YES"'; - $primaryconsole = isset($g['primaryconsole_force']) ? $g['primaryconsole_force'] : $config['system']['primaryconsole']; - switch ($primaryconsole) { - case "video": - $new_boot_config[] = 'console="vidconsole,comconsole"'; - break; - case "serial": - default: - $new_boot_config[] = 'console="comconsole,vidconsole"'; - } - } - $new_boot_config[] = 'comconsole_speed="' . $serialspeed . '"'; + $specplatform = system_identify_specific_platform(); + if ($specplatform['name'] == 'RCC-VE' || + $specplatform['name'] == 'RCC' || + $specplatform['name'] == 'RCC-DFF') { + $data[] = 'comconsole_port="0x2F8"'; + $data[] = 'hint.uart.0.flags="0x00"'; + $data[] = 'hint.uart.1.flags="0x10"'; + } + $data[] = 'hw.usb.no_pf="1"'; - $specplatform = system_identify_specific_platform(); - if ($specplatform['name'] == 'RCC-VE' || - $specplatform['name'] == 'RCC' || - $specplatform['name'] == 'RCC-DFF') { - $new_boot_config[] = 'comconsole_port="0x2F8"'; - $new_boot_config[] = 'hint.uart.0.flags="0x00"'; - $new_boot_config[] = 'hint.uart.1.flags="0x10"'; - } - $new_boot_config[] = 'hw.usb.no_pf="1"'; + safe_write_file($loader_conf_file, $data); + + unset($loader_conf, $loader_conf_split, $loader_config_file); - file_put_contents($loader_conf_file, implode("\n", $new_boot_config) . "\n"); - } - } $ttys = file_get_contents($ttys_file); $ttys_split = explode("\n", $ttys); - $fd = fopen($ttys_file, "w"); + + $data = array(); $on_off = (is_serial_enabled() ? 'onifconsole' : 'off'); @@ -1183,23 +1194,69 @@ function setup_serial_port($when = "save", $path = "") { $console_type = 'al.Pc'; $serial_type = 'al.3wire'; } + + $console_line = "console\tnone\t\t\t\tunknown\toff\tsecure"; + $ttyv0_line = + "ttyv0\t\"/usr/libexec/getty {$console_type}\"\txterm\ton\tsecure"; + $ttyu_line = + "\"/usr/libexec/getty {$serial_type}\"\tvt100\t{$on_off}\tsecure"; + + $found = array(); + foreach ($ttys_split as $tty) { + /* Ignore blank lines */ + if (empty($tty)) { + continue; + } + if (stristr($tty, "ttyv0")) { - fwrite($fd, "ttyv0 \"/usr/libexec/getty {$console_type}\" xterm on secure\n"); - } else if (stristr($tty, "ttyu")) { + $found['ttyv0'] = 1; + $data[] = $ttyv0_line; + } elseif (stristr($tty, "ttyu")) { $ttyn = substr($tty, 0, 5); - fwrite($fd, "{$ttyn} \"/usr/libexec/getty {$serial_type}\" vt100 {$on_off} secure\n"); + $found[$ttyn] = 1; + $data[] = "{$ttyn}\t{$ttyu_line}"; + } elseif (substr($tty, 0, 7) == 'console') { + $found['console'] = 1; + $data[] = $tty; } else { - fwrite($fd, $tty . "\n"); + $data[] = $tty; } } unset($on_off, $console_type, $serial_type); - fclose($fd); + + /* Detect missing main lines on original file and try to rebuild it */ + $items = array( + 'console', + 'ttyv0', + 'ttyu0', + 'ttyu1', + 'ttyu2', + 'ttyu3' + ); + + foreach ($items as $item) { + if (isset($found[$item])) { + continue; + } + + if ($item == 'console') { + $data[] = $console_line; + } elseif ($item == 'ttyv0') { + $data[] = $ttyv0_line; + } else { + $data[] = "{$item}\t{$ttyu_line}"; + } + } + + safe_write_file($ttys_file, $data); + + unset($ttys, $ttys_file, $ttys_split, $data); + if ($when != "upgrade") { reload_ttys(); } - conf_mount_ro(); return; } @@ -1207,8 +1264,7 @@ function is_serial_enabled() { global $g, $config; if (!isset($g['enableserial_force']) && - !isset($config['system']['enableserial']) && - ($g['platform'] == $g['product_name'] || $g['platform'] == "cdrom")) { + !isset($config['system']['enableserial'])) { return false; } @@ -1777,7 +1833,7 @@ function compare_hostname_to_dnscache($hostname) { */ function load_crypto() { global $config, $g; - $crypto_modules = array('glxsb', 'aesni'); + $crypto_modules = array('aesni'); if (!in_array($config['system']['crypto_hardware'], $crypto_modules)) { return false; @@ -1816,7 +1872,7 @@ function load_thermal_hardware() { ******/ function isvm() { $virtualenvs = array("vmware", "parallels", "qemu", "bochs", "plex86", "VirtualBox"); - $_gb = exec('/bin/kenv smbios.system.product 2>/dev/null', $output, $rc); + $_gb = exec('/bin/kenv -q smbios.system.product 2>/dev/null', $output, $rc); if ($rc != 0 || !isset($output[0])) { return false; @@ -2374,7 +2430,6 @@ function process_alias_urltable($name, $type, $url, $freq, $forceupdate=false, $ $forceupdate) { // Try to fetch the URL supplied - conf_mount_rw(); unlink_if_exists($tmp_urltable_filename); $verify_ssl = isset($config['system']['checkaliasesurlcert']); if (download_file($url, $tmp_urltable_filename, $verify_ssl)) { @@ -2394,7 +2449,7 @@ function process_alias_urltable($name, $type, $url, $freq, $forceupdate=false, $ } /* If this backup is still there on a full install, but we aren't going to use ram disks, remove the archive since this is a transition. */ - if (($g['platform'] == $g['product_name']) && !isset($config['system']['use_mfs_tmpvar'])) { + if (!isset($config['system']['use_mfs_tmpvar'])) { unlink_if_exists("{$g['cf_conf_path']}/RAM_Disk_Store{$urltable_filename}.tgz"); } else { /* Update the RAM disk store with the new/updated table file. */ @@ -2405,163 +2460,14 @@ function process_alias_urltable($name, $type, $url, $freq, $forceupdate=false, $ if (!$validateonly) { touch($urltable_filename); } - conf_mount_ro(); return false; } - conf_mount_ro(); return true; } else { // File exists, and it doesn't need to be updated. return -1; } } -function get_real_slice_from_glabel($label) { - $label = escapeshellarg($label); - return trim(`/sbin/glabel list | /usr/bin/grep -B2 ufs/{$label} | /usr/bin/head -n 1 | /usr/bin/cut -f3 -d' '`); -} -function nanobsd_get_boot_slice() { - return trim(`/sbin/mount | /usr/bin/grep pfsense | /usr/bin/cut -d'/' -f4 | /usr/bin/cut -d' ' -f1`); -} -function nanobsd_get_boot_drive() { - return trim(`/sbin/glabel list | /usr/bin/grep -B2 ufs/pfsense | /usr/bin/head -n 1 | /usr/bin/cut -f3 -d' ' | /usr/bin/cut -d's' -f1`); -} -function nanobsd_get_active_slice() { - $boot_drive = nanobsd_get_boot_drive(); - $active = trim(`gpart show $boot_drive | grep '\[active\]' | awk '{print $3;}'`); - - return "{$boot_drive}s{$active}"; -} -function nanobsd_get_size() { - return strtoupper(file_get_contents("/etc/nanosize.txt")); -} -function nanobsd_switch_boot_slice() { - global $SLICE, $OLDSLICE, $TOFLASH, $COMPLETE_PATH, $COMPLETE_BOOT_PATH; - global $GLABEL_SLICE, $UFS_ID, $OLD_UFS_ID, $BOOTFLASH; - global $BOOT_DEVICE, $REAL_BOOT_DEVICE, $BOOT_DRIVE, $ACTIVE_SLICE; - nanobsd_detect_slice_info(); - - if ($BOOTFLASH == $ACTIVE_SLICE) { - $slice = $TOFLASH; - } else { - $slice = $BOOTFLASH; - } - - for ($i = 0; $i < ob_get_level(); $i++) { - ob_end_flush(); - } - ob_implicit_flush(1); - if (strstr($slice, "s2")) { - $ASLICE = "2"; - $AOLDSLICE = "1"; - $AGLABEL_SLICE = "pfsense1"; - $AUFS_ID = "1"; - $AOLD_UFS_ID = "0"; - } else { - $ASLICE = "1"; - $AOLDSLICE = "2"; - $AGLABEL_SLICE = "pfsense0"; - $AUFS_ID = "0"; - $AOLD_UFS_ID = "1"; - } - $ATOFLASH = "{$BOOT_DRIVE}s{$ASLICE}"; - $ACOMPLETE_PATH = "{$BOOT_DRIVE}s{$ASLICE}a"; - $ABOOTFLASH = "{$BOOT_DRIVE}s{$AOLDSLICE}"; - conf_mount_rw(); - set_single_sysctl("kern.geom.debugflags", "16"); - exec("/sbin/gpart set -a active -i {$ASLICE} {$BOOT_DRIVE}"); - exec("/usr/sbin/boot0cfg -s {$ASLICE} -v /dev/{$BOOT_DRIVE}"); - // We can't update these if they are mounted now. - if ($BOOTFLASH != $slice) { - exec("/sbin/tunefs -L ${AGLABEL_SLICE} /dev/$ACOMPLETE_PATH"); - nanobsd_update_fstab($AGLABEL_SLICE, $ACOMPLETE_PATH, $AOLD_UFS_ID, $AUFS_ID); - } - set_single_sysctl("kern.geom.debugflags", "0"); - conf_mount_ro(); -} -function nanobsd_clone_slice() { - global $SLICE, $OLDSLICE, $TOFLASH, $COMPLETE_PATH, $COMPLETE_BOOT_PATH; - global $GLABEL_SLICE, $UFS_ID, $OLD_UFS_ID, $BOOTFLASH; - global $BOOT_DEVICE, $REAL_BOOT_DEVICE, $BOOT_DRIVE, $ACTIVE_SLICE; - nanobsd_detect_slice_info(); - - for ($i = 0; $i < ob_get_level(); $i++) { - ob_end_flush(); - } - ob_implicit_flush(1); - set_single_sysctl("kern.geom.debugflags", "16"); - exec("/bin/dd if=/dev/zero of=/dev/{$TOFLASH} bs=1m count=1"); - exec("/bin/dd if=/dev/{$BOOTFLASH} of=/dev/{$TOFLASH} bs=64k"); - exec("/sbin/tunefs -L {$GLABEL_SLICE} /dev/{$COMPLETE_PATH}"); - $status = nanobsd_update_fstab($GLABEL_SLICE, $COMPLETE_PATH, $OLD_UFS_ID, $UFS_ID); - set_single_sysctl("kern.geom.debugflags", "0"); - if ($status) { - return false; - } else { - return true; - } -} -function nanobsd_update_fstab($gslice, $complete_path, $oldufs, $newufs) { - $tmppath = "/tmp/{$gslice}"; - $fstabpath = "/tmp/{$gslice}/etc/fstab"; - - mkdir($tmppath); - exec("/sbin/fsck_ufs -y /dev/{$complete_path}"); - exec("/sbin/mount /dev/ufs/{$gslice} {$tmppath}"); - copy("/etc/fstab", $fstabpath); - - if (!file_exists($fstabpath)) { - $fstab = <<<EOF -/dev/ufs/{$gslice} / ufs ro,noatime 1 1 -/dev/ufs/cf /cf ufs ro,noatime 1 1 -EOF; - if (file_put_contents($fstabpath, $fstab)) { - $status = true; - } else { - $status = false; - } - } else { - $status = exec("/usr/bin/sed -i \"\" \"s/pfsense{$oldufs}/pfsense{$newufs}/g\" {$fstabpath}"); - } - exec("/sbin/umount {$tmppath}"); - rmdir($tmppath); - - return $status; -} -function nanobsd_detect_slice_info() { - global $SLICE, $OLDSLICE, $TOFLASH, $COMPLETE_PATH, $COMPLETE_BOOT_PATH; - global $GLABEL_SLICE, $UFS_ID, $OLD_UFS_ID, $BOOTFLASH; - global $BOOT_DEVICE, $REAL_BOOT_DEVICE, $BOOT_DRIVE, $ACTIVE_SLICE; - - $BOOT_DEVICE=nanobsd_get_boot_slice(); - $REAL_BOOT_DEVICE=get_real_slice_from_glabel($BOOT_DEVICE); - $BOOT_DRIVE=nanobsd_get_boot_drive(); - $ACTIVE_SLICE=nanobsd_get_active_slice(); - - // Detect which slice is active and set information. - if (strstr($REAL_BOOT_DEVICE, "s1")) { - $SLICE = "2"; - $OLDSLICE = "1"; - $GLABEL_SLICE = "pfsense1"; - $UFS_ID = "1"; - $OLD_UFS_ID = "0"; - - } else { - $SLICE = "1"; - $OLDSLICE = "2"; - $GLABEL_SLICE = "pfsense0"; - $UFS_ID = "0"; - $OLD_UFS_ID = "1"; - } - $TOFLASH = "{$BOOT_DRIVE}s{$SLICE}"; - $COMPLETE_PATH = "{$BOOT_DRIVE}s{$SLICE}a"; - $COMPLETE_BOOT_PATH = "{$BOOT_DRIVE}s{$OLDSLICE}"; - $BOOTFLASH = "{$BOOT_DRIVE}s{$OLDSLICE}"; -} - -function nanobsd_friendly_slice_name($slicename) { - global $g; - return strtolower(str_ireplace('pfsense', $g['product_name'], $slicename)); -} function get_include_contents($filename) { if (is_file($filename)) { @@ -3320,7 +3226,7 @@ function restore_aliastables() { } } /* If this backup is still there on a full install, but we aren't going to use ram disks, remove the archive since this is a transition. */ - if (($g['platform'] == $g['product_name']) && !isset($config['system']['use_mfs_tmpvar'])) { + if (!isset($config['system']['use_mfs_tmpvar'])) { unlink_if_exists("{$file}"); } } @@ -3330,4 +3236,12 @@ function restore_aliastables() { return false; } +// Convert IPv6 addresses to lower case +function addrtolower($ip) { + if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) { + return(strtolower($ip)); + } else { + return($ip); + } +} ?> diff --git a/src/etc/inc/pkg-utils.inc b/src/etc/inc/pkg-utils.inc index 4699f68..4ab9c4c 100644 --- a/src/etc/inc/pkg-utils.inc +++ b/src/etc/inc/pkg-utils.inc @@ -4,7 +4,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2005-2006 Colin Smith (ethethlay@gmail.com) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -93,8 +93,7 @@ function pkg_env($extra_env = array()) { $pkg_env_vars['HTTP_PROXY'] = $http_proxy; } - if ($g['platform'] == "nanobsd" || - isset($config['system']['use_mfs_tmpvar'])) { + if (isset($config['system']['use_mfs_tmpvar'])) { $pkg_env_vars['PKG_DBDIR'] = '/root/var/db/pkg'; $pkg_env_vars['PKG_CACHEDIR'] = '/root/var/cache/pkg'; } @@ -124,14 +123,12 @@ function pkg_call($params, $mute = false, $extra_env = array()) { 2 => array("pipe", "w") /* stderr */ ); - conf_mount_rw(); pkg_debug("pkg_call(): {$params}\n"); $process = proc_open("/usr/sbin/pkg {$params}", $descriptorspec, $pipes, '/', pkg_env($extra_env)); if (!is_resource($process)) { - conf_mount_ro(); return false; } @@ -172,7 +169,6 @@ function pkg_call($params, $mute = false, $extra_env = array()) { fclose($pipes[2]); proc_close($process); - conf_mount_ro(); $rc = $status['exitcode']; @@ -209,14 +205,12 @@ function pkg_exec($params, &$stdout, &$stderr, $extra_env = array()) { 2 => array("pipe", "w") /* stderr */ ); - conf_mount_rw(); pkg_debug("pkg_exec(): {$params}\n"); $process = proc_open("/usr/sbin/pkg {$params}", $descriptorspec, $pipes, '/', pkg_env($extra_env)); if (!is_resource($process)) { - conf_mount_ro(); return -1; } @@ -232,7 +226,6 @@ function pkg_exec($params, &$stdout, &$stderr, $extra_env = array()) { } fclose($pipes[2]); - conf_mount_ro(); return proc_close($process); } @@ -340,7 +333,7 @@ function get_package_internal_name($package_data) { } // Get information about packages. -function get_pkg_info($pkgs = 'all', $info = 'all', $only_local = false) { +function get_pkg_info($pkgs = 'all', $only_local = false) { global $g, $input_errors; $out = ''; @@ -456,7 +449,7 @@ function get_pkg_info($pkgs = 'all', $info = 'all', $only_local = false) { function register_all_installed_packages() { global $g, $config, $pkg_interface; - $pkg_info = get_pkg_info('all', 'all', true); + $pkg_info = get_pkg_info('all', true); foreach ($pkg_info as $pkg) { if (!isset($pkg['installed'])) { @@ -493,7 +486,6 @@ function resync_all_package_configs($show_message = false) { echo "Syncing packages:"; } - conf_mount_rw(); foreach ($config['installedpackages']['package'] as $idx => $package) { if (empty($package['name'])) { @@ -514,7 +506,6 @@ function resync_all_package_configs($show_message = false) { } @unlink("/conf/needs_package_sync"); - conf_mount_ro(); } function uninstall_package($package_name) { @@ -673,7 +664,6 @@ function install_package_xml($package_name) { } /* safe side. Write config below will send to ro again. */ - conf_mount_rw(); pkg_debug(gettext("Beginning package installation.") . "\n"); log_error(sprintf(gettext('Beginning package installation for %s .'), $pkg_info['name'])); @@ -692,7 +682,6 @@ function install_package_xml($package_name) { } unlink_if_exists('/conf/needs_package_sync'); write_config(sprintf(gettext("Intermediate config write during package install for %s."), $pkg_info['name'])); - conf_mount_ro(); update_status($to_output); if (($pkgid = get_package_id($package_name)) == -1) { @@ -822,14 +811,12 @@ function install_package_xml($package_name) { function delete_package_xml($package_name, $when = "post-deinstall") { global $g, $config, $pkg_interface; - conf_mount_rw(); $pkgid = get_package_id($package_name); if ($pkgid == -1) { update_status(sprintf(gettext("The %s package is not installed.%sDeletion aborted."), $package_name, "\n\n")); ob_flush(); sleep(1); - conf_mount_ro(); return; } pkg_debug(sprintf(gettext("Removing %s package... "), $package_name)); @@ -952,7 +939,6 @@ function delete_package_xml($package_name, $when = "post-deinstall") { system_syslogd_start(); } - conf_mount_ro(); } /* @@ -1199,6 +1185,21 @@ function pkg_switch_repo($path) { @unlink("/usr/local/etc/pkg/repos/{$g['product_name']}.conf"); @symlink($path, "/usr/local/etc/pkg/repos/{$g['product_name']}.conf"); + $abi_file = str_replace('.conf', '.abi', $path); + $altabi_file = str_replace('.conf', '.altabi', $path); + + if (file_exists($abi_file) && file_exists($altabi_file)) { + $abi = file_get_contents($abi_file); + $altabi = file_get_contents($altabi_file); + + $pkg_conf = array( + "ABI={$abi}", + "ALTABI={$altabi}" + ); + + file_put_contents("/usr/local/etc/pkg.conf", $pkg_conf); + } + return pkg_update(true); } diff --git a/src/etc/inc/priv.defs.inc b/src/etc/inc/priv.defs.inc index 8deb4d7..5d68b2b 100644 --- a/src/etc/inc/priv.defs.inc +++ b/src/etc/inc/priv.defs.inc @@ -105,12 +105,6 @@ $priv_list['page-diagnostics-limiter-info']['descr'] = gettext("Allows access to $priv_list['page-diagnostics-limiter-info']['match'] = array(); $priv_list['page-diagnostics-limiter-info']['match'][] = "diag_limiter_info.php*"; -$priv_list['page-diagnostics-nanobsd'] = array(); -$priv_list['page-diagnostics-nanobsd']['name'] = gettext("WebCfg - Diagnostics: NanoBSD"); -$priv_list['page-diagnostics-nanobsd']['descr'] = gettext("Allow access to the 'Diagnostics: NanoBSD' page."); -$priv_list['page-diagnostics-nanobsd']['match'] = array(); -$priv_list['page-diagnostics-nanobsd']['match'][] = "diag_nanobsd.php*"; - $priv_list['page-diagnostics-ndptable'] = array(); $priv_list['page-diagnostics-ndptable']['name'] = gettext("WebCfg - Diagnostics: NDP Table"); $priv_list['page-diagnostics-ndptable']['descr'] = gettext("Allow access to the 'Diagnostics: NDP Table' page."); @@ -568,12 +562,6 @@ $priv_list['page-system-packagemanager-installed']['descr'] = gettext("Allow acc $priv_list['page-system-packagemanager-installed']['match'] = array(); $priv_list['page-system-packagemanager-installed']['match'][] = "pkg_mgr_installed.php*"; -$priv_list['page-diagnostics-restart-httpd'] = array(); -$priv_list['page-diagnostics-restart-httpd']['name'] = gettext("WebCfg - Diagnostics: Restart Web Server Daemon"); -$priv_list['page-diagnostics-restart-httpd']['descr'] = gettext("Allow access to the 'Diagnostics: Restart Web Server Daemon' page."); -$priv_list['page-diagnostics-restart-httpd']['match'] = array(); -$priv_list['page-diagnostics-restart-httpd']['match'][] = "restart_httpd.php*"; - $priv_list['page-services-captiveportal'] = array(); $priv_list['page-services-captiveportal']['name'] = gettext("WebCfg - Services: Captive portal"); $priv_list['page-services-captiveportal']['descr'] = gettext("Allow access to the 'Services: Captive portal' page."); diff --git a/src/etc/inc/priv.inc b/src/etc/inc/priv.inc index 3ce857d..c430ced 100644 --- a/src/etc/inc/priv.inc +++ b/src/etc/inc/priv.inc @@ -3,7 +3,7 @@ * priv.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005-2006 Bill Marquette <bill.marquette@gmail.com> * Copyright (c) 2006 Paul Taylor <paultaylor@winn-dixie.com>. * Copyright (c) 2008 Shrew Soft Inc @@ -267,12 +267,14 @@ function getAllowedPages($username, &$attributes = array()) { $allowed_pages = array(); $allowed_groups = array(); - $authcfg = auth_get_authserver($config['system']['webgui']['authmode']); - // obtain ldap groups if we are in ldap mode - if ($authcfg['type'] == "ldap") { - $allowed_groups = @ldap_get_groups($username, $authcfg); - } elseif ($authcfg['type'] == "radius") { - $allowed_groups = @radius_get_groups($attributes); + if ($_SESSION['remoteauth']) { + $authcfg = auth_get_authserver($config['system']['webgui']['authmode']); + // obtain ldap groups if we are in ldap mode + if ($authcfg['type'] == "ldap") { + $allowed_groups = @ldap_get_groups($username, $authcfg); + } elseif ($authcfg['type'] == "radius") { + $allowed_groups = @radius_get_groups($attributes); + } } if (!$allowed_groups) { // search for a local user by name diff --git a/src/etc/inc/rrd.inc b/src/etc/inc/rrd.inc index b324d8c..183f84a 100644 --- a/src/etc/inc/rrd.inc +++ b/src/etc/inc/rrd.inc @@ -4,7 +4,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2010 Seth Mos <seth.mos@dds.nl> - * Copyright (c) 2010-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2010-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -42,7 +42,7 @@ function restore_rrd() { $rrdrestore = ""; $rrdreturn = ""; - if (file_exists("{$g['cf_conf_path']}/rrd.tgz") && (isset($config['system']['use_mfs_tmpvar']) || $g['platform'] != $g['product_name'])) { + if (file_exists("{$g['cf_conf_path']}/rrd.tgz") && isset($config['system']['use_mfs_tmpvar'])) { foreach (glob("{$rrddbpath}/*.xml") as $xml_file) { @unlink($xml_file); } @@ -74,7 +74,7 @@ function restore_rrd() { unset($rrdrestore); @unlink("{$g['tmp_path']}/rrd_restore"); /* If this backup is still there on a full install, but we aren't going to use ram disks, remove the archive since this is a transition. */ - if (($g['platform'] == $g['product_name']) && !isset($config['system']['use_mfs_tmpvar'])) { + if (!isset($config['system']['use_mfs_tmpvar'])) { unlink_if_exists("{$g['cf_conf_path']}/rrd.tgz"); } return true; diff --git a/src/etc/inc/service-utils.inc b/src/etc/inc/service-utils.inc index 654d4c8..94064e9 100644 --- a/src/etc/inc/service-utils.inc +++ b/src/etc/inc/service-utils.inc @@ -3,7 +3,7 @@ * service-utils.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2005-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2005-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005-2006 Colin Smith (ethethlay@gmail.com) * All rights reserved. * @@ -454,27 +454,50 @@ function get_service_status($service) { return $running; } -function get_service_status_icon($service, $withtext = true, $smallicon = false) { - global $g; +function get_service_status_icon($service, $withtext = true, $smallicon = false, $withthumbs = false, $title = "service_state") { $output = ""; + if (get_service_status($service)) { $statustext = gettext("Running"); - $output .= "<a title=\"" . sprintf(gettext("%s Service is"), $service["name"]) . " {$statustext}\" ><i class=\""; - $output .= ($smallicon) ? "fa fa-play" : "fa fa-lg fa-play"; - $output .= "\" ></i></a>"; - if ($withtext) { - $output .= " " . $statustext; - } + $text_class = "text-success"; + $fa_class = "fa fa-check-circle"; + $fa_class_thumbs = "fa fa-thumbs-o-up"; + $Thumbs_UpDown = "Thumbs up"; } else { - $service_enabled = is_service_enabled($service['name']); - $statustext = ($service_enabled) ? gettext("Stopped") : gettext("Disabled"); - $output .= "<a title=\"" . sprintf(gettext("%s Service is"), $service["name"]) . " {$statustext}\" ><i class=\""; - $output .= ($smallicon) ? "fa fa-times" : "fa fa-lg fa-times"; - $output .= "\" ></i></a>"; - if ($withtext) { - $output .= " " . $statustext; + if (is_service_enabled($service['name'])) { + $statustext = gettext("Stopped"); + $text_class = "text-danger"; + $fa_class = "fa fa-times-circle"; + } else { + $statustext = gettext("Disabled"); + $text_class = "text-warning"; + $fa_class = "fa fa-ban"; } + $fa_class_thumbs = "fa fa-thumbs-o-down"; + $Thumbs_UpDown = "Thumbs down"; + } + $fa_size = ($smallicon) ? "fa-1x" : "fa-lg"; + + $spacer = ($withthumbs || $withtext) ? " " : ""; + if ($title == "state") { + $output = "<i class=\"{$text_class} {$fa_class} {$fa_size}\" title=\"{$statustext}\"></i>{$spacer}"; + } elseif ($title == "service_state") { + $output = "<i class=\"{$text_class} {$fa_class} {$fa_size}\" title=\"" . sprintf(gettext("%s Service is %s"), $service["name"], $statustext) . "\"></i>{$spacer}"; + } elseif ($title == "description_state") { + $output = "<i class=\"{$text_class} {$fa_class} {$fa_size}\" title=\"" . sprintf(gettext("%s, %s Service is %s"), $service["description"], $statustext) . "\"></i>{$spacer}"; + } elseif ($title == "description_service_state") { + $output = "<i class=\"{$text_class} {$fa_class} {$fa_size}\" title=\"" . sprintf(gettext("%s, %s Service is %s"), $service["description"], $service["name"], $statustext) . "\"></i>{$spacer}"; } + + $spacer = ($withtext) ? " " : ""; + if ($withthumbs) { + $output .= "<i class=\"{$text_class} {$fa_class_thumbs} {$fa_size}\" title=\"{$Thumbs_UpDown}\"></i>{$spacer}"; + } + + if ($withtext) { + $output .= "<span class=\"" . $text_class . "\">" . $statustext . "</span>"; + } + return $output; } diff --git a/src/etc/inc/services.inc b/src/etc/inc/services.inc index a9e1773..b70792a 100644 --- a/src/etc/inc/services.inc +++ b/src/etc/inc/services.inc @@ -3,7 +3,7 @@ * services.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) @@ -23,8 +23,8 @@ * limitations under the License. */ -define('DYNDNS_PROVIDER_VALUES', 'citynetwork cloudflare cloudflare-v6 custom custom-v6 dnsexit dnsimple dnsmadeeasy dnsomatic dyndns dyndns-custom dyndns-static dyns easydns eurodns freedns freedns-v6 glesys googledomains gratisdns he-net he-net-v6 he-net-tunnelbroker loopia namecheap noip noip-free ods opendns ovh-dynhost route53 selfhost spdyn spdyn-v6 zoneedit'); -define('DYNDNS_PROVIDER_DESCRIPTIONS', 'City Network,CloudFlare,CloudFlare (v6),Custom,Custom (v6),DNSexit,DNSimple,DNS Made Easy,DNS-O-Matic,DynDNS (dynamic),DynDNS (custom),DynDNS (static),DyNS,easyDNS,Euro Dns,freeDNS,freeDNS (v6),GleSYS,Google Domains,GratisDNS,HE.net,HE.net (v6),HE.net Tunnelbroker,Loopia,Namecheap,No-IP,No-IP (free),ODS.org,OpenDNS,OVH DynHOST,Route 53,SelfHost,SPDYN,SPDYN (v6),ZoneEdit'); +define('DYNDNS_PROVIDER_VALUES', 'all-inkl citynetwork cloudflare cloudflare-v6 custom custom-v6 dnsexit dnsimple dnsmadeeasy dnsomatic duiadns duiadns-v6 dyndns dyndns-custom dyndns-static dyns easydns eurodns freedns freedns-v6 glesys googledomains gratisdns he-net he-net-v6 he-net-tunnelbroker loopia namecheap noip noip-free ods opendns ovh-dynhost route53 selfhost spdyn spdyn-v6 zoneedit'); +define('DYNDNS_PROVIDER_DESCRIPTIONS', 'All-Inkl.com,City Network,CloudFlare,CloudFlare (v6),Custom,Custom (v6),DNSexit,DNSimple,DNS Made Easy,DNS-O-Matic,DuiaDns.net,DuiaDns.net (v6),DynDNS (dynamic),DynDNS (custom),DynDNS (static),DyNS,easyDNS,Euro Dns,freeDNS,freeDNS (v6),GleSYS,Google Domains,GratisDNS,HE.net,HE.net (v6),HE.net Tunnelbroker,Loopia,Namecheap,No-IP,No-IP (free),ODS.org,OpenDNS,OVH DynHOST,Route 53,SelfHost,SPDYN,SPDYN (v6),ZoneEdit'); /* implement ipv6 route advertising daemon */ function services_radvd_configure($blacklist = array()) { @@ -395,6 +395,8 @@ function services_radvd_configure($blacklist = array()) { function services_dhcpd_configure($family = "all", $blacklist = array()) { global $config, $g; + $dhcpdconfigurelck = lock("dhcpdconfigure", LOCK_EX); + /* configure DHCPD chroot once */ $fd = fopen("{$g['tmp_path']}/dhcpd.sh", "w"); fwrite($fd, "/bin/mkdir -p {$g['dhcpd_chroot_path']}\n"); @@ -425,6 +427,8 @@ function services_dhcpd_configure($family = "all", $blacklist = array()) { services_dhcpdv6_configure($blacklist); services_radvd_configure($blacklist); } + + unlock($dhcpdconfigurelck); } function services_dhcpdv4_configure() { @@ -476,7 +480,7 @@ function services_dhcpdv4_configure() { } } /* If this backup is still there on a full install, but we aren't going to use ram disks, remove the archive since this is a transition. */ - if (($g['platform'] == $g['product_name']) && !isset($config['system']['use_mfs_tmpvar'])) { + if (!isset($config['system']['use_mfs_tmpvar'])) { unlink_if_exists("{$g['cf_conf_path']}/dhcpleases.tgz"); } } @@ -546,7 +550,6 @@ one-lease-per-client true; deny duplicates; ping-check true; update-conflict-detection false; -dhcp-cache-threshold 0; EOD; @@ -1049,6 +1052,9 @@ EOD; $dhhostname = str_replace(" ", "_", $sm['hostname']); $dhhostname = str_replace(".", "_", $dhhostname); $dhcpdconf .= " option host-name \"{$dhhostname}\";\n"; + if ((isset($dhcpifconf['ddnsupdate']) || isset($sm['ddnsupdate'])) && (isset($dhcpifconf['ddnsforcehostname']) || isset($sm['ddnsforcehostname']))) { + $dhcpdconf .= " ddns-hostname \"{$dhhostname}\";\n"; + } } if ($sm['filename']) { $dhcpdconf .= " filename \"{$sm['filename']}\";\n"; @@ -1254,18 +1260,19 @@ function services_dhcpdv6_configure($blacklist = array()) { return 0; } - if (platform_booting()) { - if ($g['platform'] != $g['product_name']) { - /* restore the leases, if we have them */ - if (file_exists("{$g['cf_conf_path']}/dhcp6leases.tgz")) { - $dhcprestore = ""; - $dhcpreturn = ""; - exec("cd /;LANG=C /usr/bin/tar -xzf {$g['cf_conf_path']}/dhcp6leases.tgz 2>&1", $dhcprestore, $dhcpreturn); - $dhcprestore = implode(" ", $dhcprestore); - if ($dhcpreturn <> 0) { - log_error(sprintf(gettext('DHCP leases v6 restore failed exited with %1$s, the error is: %2$s'), $dhcpreturn, $dhcprestore)); - } - } + /* restore the leases, if we have them */ + if (platform_booting() && + isset($config['system']['use_mfs_tmpvar']) && + file_exists("{$g['cf_conf_path']}/dhcp6leases.tgz")) { + $dhcprestore = ""; + $dhcpreturn = ""; + exec("cd /;LANG=C /usr/bin/tar -xzf {$g['cf_conf_path']}/dhcp6leases.tgz 2>&1", + $dhcprestore, $dhcpreturn); + $dhcprestore = implode(" ", $dhcprestore); + if ($dhcpreturn <> 0) { + log_error(sprintf(gettext( + 'DHCP leases v6 restore failed exited with %1$s, the error is: %2$s'), + $dhcpreturn, $dhcprestore)); } } @@ -1310,7 +1317,6 @@ one-lease-per-client true; deny duplicates; ping-check true; update-conflict-detection false; -dhcp-cache-threshold 0; EOD; @@ -1342,12 +1348,11 @@ EOD; } $ifcfgsnv6 = get_interface_subnetv6($dhcpv6if); $subnetv6 = gen_subnetv6($ifcfgipv6, $ifcfgsnv6); - - if ($ifcfgv6['ipaddrv6'] == 'track6') { - $trackifname = $config['interfaces'][$ifname]['track6-interface']; - $trackcfg = $config['interfaces'][$trackifname]; - $pdlen = 64 - $trackcfg['dhcp6-ia-pd-len']; - } + // We might have some prefix-delegation on WAN (e.g. /48), + // but then it is split and given out to individual interfaces + // (LAN, OPT1, OPT2...) as multiple /64 subnets. So the size + // of each subnet here is always /64. + $pdlen = 64; if ($is_olsr_enabled == true) { if ($dhcpv6ifconf['netmask']) { @@ -2094,7 +2099,7 @@ function services_dnsmasq_configure($restart_dhcp = true) { $args = ""; if (isset($config['dnsmasq']['regdhcp'])) { - $args .= " --dhcp-hostsfile={$g['varetc_path']}/hosts "; + $args .= " --dhcp-hostsfile={$g['etc_path']}/hosts "; } /* Setup listen port, if non-default */ @@ -2295,6 +2300,11 @@ function services_snmpd_configure() { echo gettext("Starting SNMP daemon... "); } + /* Make sure a printcap file exists or else bsnmpd will log errors. See https://redmine.pfsense.org/issues/6838 */ + if (!file_exists('/etc/printcap')) { + @file_put_contents('/etc/printcap', "# Empty file to prevent bsnmpd from logging errors.\n"); + } + /* generate snmpd.conf */ $fd = fopen("{$g['varetc_path']}/snmpd.conf", "w"); if (!$fd) { @@ -2332,12 +2342,8 @@ trap := "{$config['snmpd']['trapstring']}" EOD; } - $platform = trim(file_get_contents('/etc/platform')); - if (($platform == "pfSense") && ($g['product_name'] != "pfSense")) { - $platform = $g['product_name']; - } $sysDescr = "{$g['product_name']} " . php_uname("n") . - " {$g['product_version']} {$platform} " . php_uname("s") . + " {$g['product_version']} {$g['platform']} " . php_uname("s") . " " . php_uname("r") . " " . php_uname("m"); $snmpdconf .= <<<EOD @@ -2375,24 +2381,34 @@ begemotSnmpdCommunityDisable = 1 EOD; - $bind_to_ip = "0.0.0.0"; + $bind_to_ips = array(); if (isset($config['snmpd']['bindip'])) { - if (is_ipaddr($config['snmpd']['bindip'])) { - $bind_to_ip = $config['snmpd']['bindip']; - } else { - $if = get_real_interface($config['snmpd']['bindip']); - if (does_interface_exist($if)) { - $bind_to_ip = get_interface_ip($config['snmpd']['bindip']); + foreach (explode(",", $config['snmpd']['bindip']) as $bind_to_ip) { + if (is_ipaddr($bind_to_ip)) { + $bind_to_ips[] = $bind_to_ip; + } else { + $if = get_real_interface($bind_to_ip); + if (does_interface_exist($if)) { + $bindip = get_interface_ip($bind_to_ip); + if (is_ipaddr($bindip)) { + $bind_to_ips[] = $bindip; + } + } } } } + if (!count($bind_to_ips)) { + $bind_to_ips = array("0.0.0.0"); + } if (is_port($config['snmpd']['pollport'])) { - $snmpdconf .= <<<EOD + foreach ($bind_to_ips as $bind_to_ip) { + $snmpdconf .= <<<EOD begemotSnmpdPortStatus.{$bind_to_ip}.{$config['snmpd']['pollport']} = 1 EOD; + } } $snmpdconf .= <<<EOD @@ -2582,7 +2598,6 @@ EOD; $maxCacheAgeSecs = 25 * 24 * 60 * 60; $need_update = false; - conf_mount_rw(); /* Update IPv4 if we have it. */ if (is_ipaddrv4($wanip) && $dnsupdate['recordtype'] != "AAAA") { if (($wanip != $cachedipv4) || (($currentTime - $cacheTimev4) > $maxCacheAgeSecs) || $forced) { @@ -2614,7 +2629,6 @@ EOD; } else { @unlink("{$cacheFile}.ipv6"); } - conf_mount_ro(); $upinst .= "\n"; /* mind that trailing newline! */ @@ -2644,7 +2658,6 @@ EOD; function configure_cron() { global $g, $config; - conf_mount_rw(); /* preserve existing crontab entries */ $crontab_contents = file("/etc/crontab", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); @@ -2700,7 +2713,6 @@ function configure_cron() { sigkillbypid("{$g['varrun_path']}/cron.pid", "HUP"); } - conf_mount_ro(); } function upnp_action ($action) { diff --git a/src/etc/inc/shaper.inc b/src/etc/inc/shaper.inc index 6cba885..317ed95 100644 --- a/src/etc/inc/shaper.inc +++ b/src/etc/inc/shaper.inc @@ -3,7 +3,7 @@ * shaper.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -1455,28 +1455,28 @@ class priq_queue { null, null, !empty($this->GetRed()) - ))->setHelp('<a target="_new" href="http://www.openbsd.org/faq/pf/queueing.html#red">' . gettext('Random Early Detection') . '</a>'); + ))->setHelp('<a target="_new" href="https://web.archive.org/web/20160404153707/http://www.openbsd.org/faq/pf/queueing.html#red">' . gettext('Random Early Detection') . '</a>'); $group->add(new Form_Checkbox( 'rio', null, null, !empty($this->GetRio()) - ))->setHelp('<a target="_new" href="http://www.openbsd.org/faq/pf/queueing.html#rio">' . gettext('Random Early Detection In and Out') . '</a>'); + ))->setHelp('<a target="_new" href="https://web.archive.org/web/20160404153707/http://www.openbsd.org/faq/pf/queueing.html#rio">' . gettext('Random Early Detection In and Out') . '</a>'); $group->add(new Form_Checkbox( 'ecn', null, null, !empty($this->GetEcn()) - ))->setHelp('<a target="_new" href="http://www.openbsd.org/faq/pf/queueing.html#ecn">' . gettext('Explicit Congestion Notification') . '</a>'); + ))->setHelp('<a target="_new" href="https://web.archive.org/web/20160404153707/http://www.openbsd.org/faq/pf/queueing.html#ecn">' . gettext('Explicit Congestion Notification') . '</a>'); $group->add(new Form_Checkbox( 'codel', null, null, !empty($this->GetCodel()) - ))->setHelp('<a target="_new" href="http://www.openbsd.org/faq/pf/queueing.html#ecn">' . gettext('Codel Active Queue') . '</a>'); + ))->setHelp('<a target="_new" href="https://web.archive.org/web/20160404153707/http://www.openbsd.org/faq/pf/queueing.html#ecn">' . gettext('Codel Active Queue') . '</a>'); $group->setHelp('Select options for this queue'); @@ -2267,7 +2267,8 @@ EOJS; 'bandwidth', null, 'number', - $this->GetBandwidth() + $this->GetBandwidth(), + ['step' => 'any', 'min' => '0.000'] )); $group->add(new Form_Select( @@ -3373,7 +3374,7 @@ class dnpipe_class extends dummynet_class { $q->delete_queue(); } unset_dn_object_by_reference($this->GetLink()); - @pfSense_pipe_action("pipe delete " . $this->GetNumber()); + @pfSense_ipfw_pipe("pipe delete " . $this->GetNumber()); } function GetBandwidth() { return $this->qbandwidth; @@ -3987,7 +3988,7 @@ class dnqueue_class extends dummynet_class { function delete_queue() { cleanup_dnqueue_from_rules($this->GetQname()); unset_dn_object_by_reference($this->GetLink()); - @pfSense_pipe_action("queue delete " . $this->GetNumber()); + @pfSense_ipfw_pipe("queue delete " . $this->GetNumber()); } function validate_input($data, &$input_errors) { diff --git a/src/etc/inc/system.inc b/src/etc/inc/system.inc index 7635182..95205ff 100644 --- a/src/etc/inc/system.inc +++ b/src/etc/inc/system.inc @@ -3,7 +3,7 @@ * system.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) @@ -30,10 +30,6 @@ function activate_powerd() { exec("/usr/bin/killall powerd"); } if (isset($config['system']['powerd_enable'])) { - if ($g["platform"] == "nanobsd") { - exec("/sbin/kldload cpufreq"); - } - $ac_mode = "hadp"; if (!empty($config['system']['powerd_ac_mode'])) { $ac_mode = $config['system']['powerd_ac_mode']; @@ -175,7 +171,7 @@ function system_resolvconf_generate($dynupdate = false) { $dnslock = lock('resolvconf', LOCK_EX); - $fd = fopen("{$g['varetc_path']}/resolv.conf", "w"); + $fd = fopen("{$g['etc_path']}/resolv.conf", "w"); if (!$fd) { printf("Error: cannot open resolv.conf in system_resolvconf_generate().\n"); unlock($dnslock); @@ -186,7 +182,7 @@ function system_resolvconf_generate($dynupdate = false) { fclose($fd); // Prevent resolvconf(8) from rewriting our resolv.conf - $fd = fopen("{$g['varetc_path']}/resolvconf.conf", "w"); + $fd = fopen("{$g['etc_path']}/resolvconf.conf", "w"); if (!$fd) { printf("Error: cannot open resolvconf.conf in system_resolvconf_generate().\n"); return 1; @@ -217,17 +213,14 @@ function system_resolvconf_generate($dynupdate = false) { $dnsserver = $syscfg['dnsserver'][$dnscounter - 1]; if (is_ipaddr($gatewayip)) { - $cmd = 'change'; + route_add_or_change("-host {$inet6}{$dnsserver} {$gatewayip}"); } else { /* Remove old route when disable gw */ - $cmd = 'delete'; - $gatewayip = ''; - } - - mwexec("/sbin/route {$cmd} -host {$inet6}{$dnsserver} {$gatewayip}"); - if (isset($config['system']['route-debug'])) { - $mt = microtime(); - log_error("ROUTING debug: $mt - route {$cmd} -host {$inet6}{$dnsserver} {$gatewayip}"); + mwexec("/sbin/route delete -host {$inet6}{$dnsserver}"); + if (isset($config['system']['route-debug'])) { + $mt = microtime(); + log_error("ROUTING debug: $mt - route delete -host {$inet6}{$dnsserver}"); + } } } } @@ -393,10 +386,8 @@ function system_hosts_generate() { $ipaddrv6 = $host['ipaddrv6']; if ($ipaddrv6 && $host['hostname']) { if ($isdelegated) { - $trackifname = $config['interfaces'][$dhcpif]['track6-interface']; - $trackcfg = $config['interfaces'][$trackifname]; - $pdlen = 64 - $trackcfg['dhcp6-ia-pd-len']; - $ipaddrv6 = merge_ipv6_delegated_prefix(get_interface_ipv6($dhcpif), $ipaddrv6, $pdlen); + // We are always in an "end-user" subnet here, which all are /64 for IPv6. + $ipaddrv6 = merge_ipv6_delegated_prefix(get_interface_ipv6($dhcpif), $ipaddrv6, 64); } if ($host['domain']) { $dhosts .= "{$ipaddrv6} {$host['hostname']}.{$host['domain']}\n"; @@ -426,7 +417,8 @@ function system_hosts_generate() { sigkillbypid("{$g['varrun_path']}/dhcpleases.pid", "TERM"); @unlink("{$g['varrun_path']}/dhcpleases.pid"); } - $fd = fopen("{$g['varetc_path']}/hosts", "w"); + + $fd = fopen("{$g['etc_path']}/hosts", "w"); if (!$fd) { log_error(gettext("Error: cannot open hosts file in system_hosts_generate().")); return 1; @@ -439,6 +431,11 @@ function system_hosts_generate() { unbound_hosts_generate(); } + /* restart dhcpleases */ + if (!platform_booting()) { + system_dhcpleases_configure(); + } + return 0; } @@ -480,7 +477,7 @@ function system_dhcpleases_configure() { sigkillbyname('dhcpleases', "TERM"); } @unlink($pidfile); - mwexec("/usr/local/sbin/dhcpleases -l {$g['dhcpd_chroot_path']}/var/db/dhcpd.leases -d {$config['system']['domain']} -p {$g['varrun_path']}/{$dns_pid} {$unbound_conf} -h {$g['varetc_path']}/hosts"); + mwexec("/usr/local/sbin/dhcpleases -l {$g['dhcpd_chroot_path']}/var/db/dhcpd.leases -d {$config['system']['domain']} -p {$g['varrun_path']}/{$dns_pid} {$unbound_conf} -h {$g['etc_path']}/hosts"); } elseif (isvalidpid($pidfile)) { sigkillbypid($pidfile, "TERM"); @unlink($pidfile); @@ -593,12 +590,8 @@ function system_routing_configure($interface = "") { $srinterfacegw = $gateway['interface']; if (is_ipaddr($srgatewayip) && !empty($srinterfacegw)) { $inet = (!is_ipaddrv4($srgatewayip) ? "-inet6" : "-inet"); - $cmd = "/sbin/route change {$inet} " . escapeshellarg($srgatewayip) . " "; - mwexec($cmd . "-iface " . escapeshellarg($srinterfacegw)); - if (isset($config['system']['route-debug'])) { - $mt = microtime(); - log_error("ROUTING debug: $mt - $cmd -iface $srinterfacegw "); - } + route_add_or_change("{$inet} {$srgatewayip} " . + "-iface {$srinterfacegw}"); } } } @@ -608,7 +601,7 @@ function system_routing_configure($interface = "") { ; } else if (is_ipaddrv4($gatewayip)) { log_error(sprintf(gettext("ROUTING: setting default route to %s"), $gatewayip)); - mwexec("/sbin/route change -inet default " . escapeshellarg($gatewayip)); + route_add_or_change("-inet default {$gatewayip}"); } if (!empty($interface) && $interface != $interfacegwv6) { @@ -619,7 +612,7 @@ function system_routing_configure($interface = "") { $ifscope = "%{$defaultifv6}"; } log_error(sprintf(gettext("ROUTING: setting IPv6 default route to %s"), $gatewayipv6 . $ifscope)); - mwexec("/sbin/route change -inet6 default " . escapeshellarg("{$gatewayipv6}{$ifscope}")); + route_add_or_change("-inet6 default {$gatewayipv6}{$ifscope}"); } } @@ -651,7 +644,7 @@ function system_staticroutes_configure($interface = "", $update_dns = false) { $interfacegw = $gateway['interface']; $blackhole = ""; - if (!strcasecmp("Null", substr($rtent['gateway'], 0, 3))) { + if (!strcasecmp("Null", substr($rtent['gateway'], 0, 4))) { $blackhole = "-blackhole"; } @@ -710,7 +703,7 @@ function system_staticroutes_configure($interface = "", $update_dns = false) { $inet = (is_subnetv6($ip) ? "-inet6" : "-inet"); - $cmd = "/sbin/route change {$inet} {$blackhole} " . escapeshellarg($ip) . " "; + $cmd = "{$inet} {$blackhole} {$ip} "; if (is_subnet($ip)) { if (is_ipaddr($gatewayip)) { @@ -718,17 +711,9 @@ function system_staticroutes_configure($interface = "", $update_dns = false) { // add interface scope for link local v6 routes $gatewayip .= "%$interfacegw"; } - mwexec($cmd . escapeshellarg($gatewayip)); - if (isset($config['system']['route-debug'])) { - $mt = microtime(); - log_error("ROUTING debug: $mt - $cmd $gatewayip"); - } + route_add_or_change($cmd . $gatewayip); } else if (!empty($interfacegw)) { - mwexec($cmd . "-iface " . escapeshellarg($interfacegw)); - if (isset($config['system']['route-debug'])) { - $mt = microtime(); - log_error("ROUTING debug: $mt - $cmd -iface $interfacegw "); - } + route_add_or_change($cmd . "-iface {$interfacegw}"); } } } @@ -829,7 +814,7 @@ function clear_all_log_files($restart = false) { global $g; exec("/usr/bin/killall syslogd"); - $log_files = array("system", "filter", "dhcpd", "vpn", "pptps", "poes", "l2tps", "openvpn", "portalauth", "ipsec", "ppp", "relayd", "wireless", "nginx", "ntpd", "gateways", "resolver", "routing"); + $log_files = array("system", "filter", "dhcpd", "vpn", "poes", "l2tps", "openvpn", "portalauth", "ipsec", "ppp", "relayd", "wireless", "nginx", "ntpd", "gateways", "resolver", "routing"); foreach ($log_files as $lfile) { clear_log_file("{$g['varlog_path']}/{$lfile}.log", false); } @@ -870,11 +855,11 @@ function system_syslogd_start() { $syslogd_extra = ""; if (isset($syslogcfg)) { - $separatelogfacilities = array('ntp', 'ntpd', 'ntpdate', 'charon', 'ipsec_starter', 'openvpn', 'pptps', 'poes', 'l2tps', 'relayd', 'hostapd', 'dnsmasq', 'filterdns', 'unbound', 'dhcpd', 'dhcrelay', 'dhclient', 'dhcp6c', 'dpinger', 'radvd', 'routed', 'olsrd', 'zebra', 'ospfd', 'bgpd', 'miniupnpd', 'filterlog'); + $separatelogfacilities = array('ntp', 'ntpd', 'ntpdate', 'charon', 'ipsec_starter', 'openvpn', 'poes', 'l2tps', 'relayd', 'hostapd', 'dnsmasq', 'filterdns', 'unbound', 'dhcpd', 'dhcrelay', 'dhclient', 'dhcp6c', 'dpinger', 'radvd', 'routed', 'olsrd', 'zebra', 'ospfd', 'bgpd', 'miniupnpd', 'filterlog'); $syslogconf = ""; if ($config['installedpackages']['package']) { foreach ($config['installedpackages']['package'] as $package) { - if ($package['logging']) { + if (isset($package['logging']['facilityname']) && isset($package['logging']['logfilename'])) { array_push($separatelogfacilities, $package['logging']['facilityname']); if (!is_file($g['varlog_path'].'/'.$package['logging']['logfilename'])) { mwexec("{$log_create_directive} {$log_size} {$g['varlog_path']}/{$package['logging']['logfilename']}"); @@ -888,31 +873,41 @@ function system_syslogd_start() { if (!isset($syslogcfg['disablelocallogging'])) { $syslogconf .= "*.* {$log_directive}{$g['varlog_path']}/routing.log\n"; } + if (isset($syslogcfg['routing'])) { + $syslogconf .= system_syslogd_get_remote_servers($syslogcfg, "*.*"); + } $syslogconf .= "!ntp,ntpd,ntpdate\n"; if (!isset($syslogcfg['disablelocallogging'])) { $syslogconf .= "*.* {$log_directive}{$g['varlog_path']}/ntpd.log\n"; } + if (isset($syslogcfg['ntpd'])) { + $syslogconf .= system_syslogd_get_remote_servers($syslogcfg, "*.*"); + } $syslogconf .= "!ppp\n"; if (!isset($syslogcfg['disablelocallogging'])) { $syslogconf .= "*.* {$log_directive}{$g['varlog_path']}/ppp.log\n"; } - - $syslogconf .= "!pptps\n"; - if (!isset($syslogcfg['disablelocallogging'])) { - $syslogconf .= "*.* {$log_directive}{$g['varlog_path']}/pptps.log\n"; + if (isset($syslogcfg['ppp'])) { + $syslogconf .= system_syslogd_get_remote_servers($syslogcfg, "*.*"); } $syslogconf .= "!poes\n"; if (!isset($syslogcfg['disablelocallogging'])) { $syslogconf .= "*.* {$log_directive}{$g['varlog_path']}/poes.log\n"; } + if (isset($syslogcfg['vpn'])) { + $syslogconf .= system_syslogd_get_remote_servers($syslogcfg, "*.*"); + } $syslogconf .= "!l2tps\n"; if (!isset($syslogcfg['disablelocallogging'])) { $syslogconf .= "*.* {$log_directive}{$g['varlog_path']}/l2tps.log\n"; } + if (isset($syslogcfg['vpn'])) { + $syslogconf .= system_syslogd_get_remote_servers($syslogcfg, "*.*"); + } $syslogconf .= "!charon,ipsec_starter\n"; if (!isset($syslogcfg['disablelocallogging'])) { @@ -942,6 +937,9 @@ function system_syslogd_start() { if (!isset($syslogcfg['disablelocallogging'])) { $syslogconf .= "*.* {$log_directive}{$g['varlog_path']}/resolver.log\n"; } + if (isset($syslogcfg['resolver'])) { + $syslogconf .= system_syslogd_get_remote_servers($syslogcfg, "*.*"); + } $syslogconf .= "!dhcpd,dhcrelay,dhclient,dhcp6c,dhcpleases,dhcpleases6\n"; if (!isset($syslogcfg['disablelocallogging'])) { @@ -971,7 +969,6 @@ function system_syslogd_start() { if (!isset($syslogcfg['disablelocallogging'])) { $syslogconf .= "*.* {$log_directive}{$g['varlog_path']}/filter.log\n"; } - if (isset($syslogcfg['filter'])) { $syslogconf .= system_syslogd_get_remote_servers($syslogcfg, "*.*"); } @@ -1014,18 +1011,13 @@ EOD; EOD; } /* write syslog.conf */ - if (!@file_put_contents("{$g['varetc_path']}/syslog.conf", $syslogconf)) { + if (!@file_put_contents("{$g['etc_path']}/syslog.conf", $syslogconf)) { printf(gettext("Error: cannot open syslog.conf in system_syslogd_start().%s"), "\n"); unset($syslogconf); return 1; } unset($syslogconf); - // Ensure that the log directory exists - if (!is_dir("{$g['dhcpd_chroot_path']}/var/run")) { - exec("/bin/mkdir -p {$g['dhcpd_chroot_path']}/var/run"); - } - $sourceip = ""; if (!empty($syslogcfg['sourceip'])) { if ($syslogcfg['ipproto'] == "ipv6") { @@ -1044,7 +1036,26 @@ EOD; } } - $syslogd_extra = "-f {$g['varetc_path']}/syslog.conf {$sourceip}"; + $syslogd_extra = "-f {$g['etc_path']}/syslog.conf {$sourceip}"; + } + + $log_sockets = array("{$g['dhcpd_chroot_path']}/var/run/log"); + + if (isset($config['installedpackages']['package'])) { + foreach ($config['installedpackages']['package'] as $package) { + if (isset($package['logging']['logsocket']) && $package['logging']['logsocket'] != '' && + !in_array($package['logging']['logsocket'], $log_sockets)) { + $log_sockets[] = $package['logging']['logsocket']; + } + } + } + + $syslogd_sockets = ""; + foreach ($log_sockets as $log_socket) { + // Ensure that the log directory exists + $logpath = dirname($log_socket); + safe_mkdir($logpath); + $syslogd_sockets .= " -l {$log_socket}"; } if (isvalidpid("{$g['varrun_path']}/syslog.pid")) { @@ -1058,8 +1069,7 @@ EOD; usleep(100000); } - - $retval = mwexec_bg("/usr/sbin/syslogd -s -c -c -l {$g['dhcpd_chroot_path']}/var/run/log -P {$g['varrun_path']}/syslog.pid {$syslogd_extra}"); + $retval = mwexec_bg("/usr/sbin/syslogd -s -c -c {$syslogd_sockets} -P {$g['varrun_path']}/syslog.pid {$syslogd_extra}"); if (platform_booting()) { echo gettext("done.") . "\n"; @@ -1458,11 +1468,9 @@ function system_timezone_configure() { /* extract appropriate timezone file */ $timezone = (isset($syscfg['timezone']) ? $syscfg['timezone'] : $g['default_timezone']); - conf_mount_rw(); /* DO NOT remove \n otherwise tzsetup will fail */ @file_put_contents("/var/db/zoneinfo", $timezone . "\n"); mwexec("/usr/sbin/tzsetup -r"); - conf_mount_ro(); if (platform_booting()) { echo gettext("done.") . "\n"; @@ -1478,7 +1486,6 @@ function system_ntp_setup_gps($serialport) { return false; } - conf_mount_rw(); // Create symlink that ntpd requires unlink_if_exists($gps_device); @symlink($serialport, $gps_device); @@ -1523,7 +1530,6 @@ function system_ntp_setup_gps($serialport) { @file_put_contents("/etc/remote", "gps0:dv={$serialport}:br#{$gpsbaud}:pa=none:\n", FILE_APPEND); } - conf_mount_ro(); return true; } @@ -1538,12 +1544,10 @@ function system_ntp_setup_pps($serialport) { return false; } - conf_mount_rw(); // Create symlink that ntpd requires unlink_if_exists($pps_device); @symlink($serialport, $pps_device); - conf_mount_ro(); return true; } @@ -1691,11 +1695,20 @@ function system_ntp_configure() { $ntpcfg .= "fudge 127.127.1.0 stratum 12\n"; } /* End GPS configuration */ - + $auto_pool_suffix = "pool.ntp.org"; + $have_pools = false; $ntpcfg .= "\n\n# Upstream Servers\n"; /* foreach through ntp servers and write out to ntpd.conf */ foreach (explode(' ', $config['system']['timeservers']) as $ts) { - $ntpcfg .= "server {$ts} iburst maxpoll 9"; + if ((substr_compare($ts, $auto_pool_suffix, strlen($ts) - strlen($auto_pool_suffix), strlen($auto_pool_suffix)) === 0) + || substr_count($config['ntpd']['ispool'], $ts)) { + $ntpcfg .= 'pool '; + $have_pools = true; + } else { + $ntpcfg .= 'server '; + } + + $ntpcfg .= "{$ts} iburst maxpoll 9"; if (substr_count($config['ntpd']['prefer'], $ts)) { $ntpcfg .= ' prefer'; } @@ -1771,13 +1784,34 @@ function system_ntp_configure() { if (empty($config['ntpd']['notrap'])) { /*note: this one works backwards */ $ntpcfg .= ' notrap'; } + + /* Pools require "restrict source" and cannot contain "nopeer". */ + if ($have_pools) { + $ntpcfg .= "\nrestrict source"; + if (empty($config['ntpd']['kod'])) { /*note: this one works backwards */ + $ntpcfg .= ' kod limited'; + } + if (empty($config['ntpd']['nomodify'])) { /*note: this one works backwards */ + $ntpcfg .= ' nomodify'; + } + if (!empty($config['ntpd']['noquery'])) { + $ntpcfg .= ' noquery'; + } + if (!empty($config['ntpd']['noserve'])) { + $ntpcfg .= ' noserve'; + } + if (empty($config['ntpd']['notrap'])) { /*note: this one works backwards */ + $ntpcfg .= ' notrap'; + } + } + /* Custom Access Restrictions */ if (is_array($config['ntpd']['restrictions']) && is_array($config['ntpd']['restrictions']['row'])) { $networkacl = $config['ntpd']['restrictions']['row']; foreach ($networkacl as $acl) { $ntpcfg .= "\nrestrict "; if (is_ipaddrv6($acl['acl_network'])) { - $ntpcfg .= "-6 {$acl['acl_network']} mask " . gen_subnet_mask_v6($acl['mask']) . " "; + $ntpcfg .= "{$acl['acl_network']} mask " . gen_subnet_mask_v6($acl['mask']) . " "; } elseif (is_ipaddrv4($acl['acl_network'])) { $ntpcfg .= "{$acl['acl_network']} mask " . gen_subnet_mask($acl['mask']) . " "; } else { @@ -2111,7 +2145,7 @@ EOD; function system_get_serial() { unset($output); - $_gb = exec('/bin/kenv smbios.system.serial 2>/dev/null', $output); + $_gb = exec('/bin/kenv -q smbios.system.serial 2>/dev/null', $output); $serial = $output[0]; $vm_guest = get_single_sysctl('kern.vm_guest'); @@ -2138,8 +2172,8 @@ function system_identify_specific_platform() { /* Try to guess from smbios strings */ unset($product); unset($maker); - $_gb = exec('/bin/kenv smbios.system.product 2>/dev/null', $product); - $_gb = exec('/bin/kenv smbios.system.maker 2>/dev/null', $maker); + $_gb = exec('/bin/kenv -q smbios.system.product 2>/dev/null', $product); + $_gb = exec('/bin/kenv -q smbios.system.maker 2>/dev/null', $maker); switch ($product[0]) { case 'FW7541': return (array('name' => 'FW7541', 'descr' => 'Netgate FW7541')); @@ -2187,11 +2221,6 @@ function system_identify_specific_platform() { break; } - /* the rest of the code only deals with 'embedded' platforms */ - if ($g['platform'] != 'nanobsd') { - return array('name' => $g['platform'], 'descr' => $g['platform']); - } - if (strpos($hw_model, "PC Engines WRAP") !== false) { return array('name' => 'wrap', 'descr' => gettext('PC Engines WRAP')); } @@ -2220,8 +2249,7 @@ function system_identify_specific_platform() { } unset($dmesg_boot); - /* unknown embedded platform */ - return array('name' => 'embedded', 'descr' => gettext('embedded (unknown)')); + return array('name' => $g['platform'], 'descr' => $g['platform']); } function system_get_dmesg_boot() { diff --git a/src/etc/inc/unbound.inc b/src/etc/inc/unbound.inc index f7198f8..02b2901 100644 --- a/src/etc/inc/unbound.inc +++ b/src/etc/inc/unbound.inc @@ -4,7 +4,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2015 Warren Baker <warren@percol8.co.za> - * Copyright (c) 2015-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2015-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/etc/inc/upgrade_config.inc b/src/etc/inc/upgrade_config.inc index ffb21af..842ec0e 100644 --- a/src/etc/inc/upgrade_config.inc +++ b/src/etc/inc/upgrade_config.inc @@ -3,7 +3,7 @@ * upgrade_config.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -2064,7 +2064,7 @@ function upgrade_054_to_055() { $rrddbpath = "/var/db/rrd/"; $rrdtool = "/usr/bin/nice -n20 /usr/local/bin/rrdtool"; - if ($g['platform'] != $g['product_name']) { + if (isset($config['system']['use_mfs_tmpvar'])) { /* restore the databases, if we have one */ if (restore_rrd()) { /* Make sure to move the rrd backup out of the way. We will make a new one after converting. */ @@ -2193,7 +2193,7 @@ function upgrade_054_to_055() { } /* Let's save the RRD graphs after we run enable RRD graphing */ /* The function will restore the rrd.tgz so we will save it after */ - exec("cd /; LANG=C NO_REMOUNT=1 RRDDBPATH='{$rrddbpath}' CF_CONF_PATH='{$g['cf_conf_path']}' /etc/rc.backup_rrd.sh"); + exec("cd /; LANG=C RRDDBPATH='{$rrddbpath}' CF_CONF_PATH='{$g['cf_conf_path']}' /etc/rc.backup_rrd.sh"); unlink_if_exists("{$g['vardb_path']}/rrd/*.xml"); if (platform_booting()) { echo "Updating configuration..."; @@ -2783,7 +2783,7 @@ function upgrade_080_to_081() { $rrddbpath = "/var/db/rrd/"; $rrdtool = "/usr/bin/nice -n20 /usr/local/bin/rrdtool"; - if ($g['platform'] != $g['product_name']) { + if (isset($config['system']['use_mfs_tmpvar'])) { /* restore the databases, if we have one */ if (restore_rrd()) { /* Make sure to move the rrd backup out of the way. We will make a new one after converting. */ @@ -2927,7 +2927,7 @@ function upgrade_080_to_081() { } /* Let's save the RRD graphs after we run enable RRD graphing */ /* The function will restore the rrd.tgz so we will save it after */ - exec("cd /; LANG=C NO_REMOUNT=1 RRDDBPATH='{$rrddbpath}' CF_CONF_PATH='{$g['cf_conf_path']}' /etc/rc.backup_rrd.sh"); + exec("cd /; LANG=C RRDDBPATH='{$rrddbpath}' CF_CONF_PATH='{$g['cf_conf_path']}' /etc/rc.backup_rrd.sh"); if (platform_booting()) { echo "Updating configuration..."; } @@ -3255,7 +3255,7 @@ function upgrade_095_to_096() { $rrddbpath = "/var/db/rrd"; $rrdtool = "/usr/local/bin/rrdtool"; - if ($g['platform'] != $g['product_name']) { + if (isset($config['system']['use_mfs_tmpvar'])) { /* restore the databases, if we have one */ if (restore_rrd()) { /* Make sure to move the rrd backup out of the way. We will make a new one after converting. */ @@ -3286,7 +3286,7 @@ function upgrade_095_to_096() { } /* Let's save the RRD graphs after we run enable RRD graphing */ /* The function will restore the rrd.tgz so we will save it after */ - exec("cd /; LANG=C NO_REMOUNT=1 RRDDBPATH='{$rrddbpath}' CF_CONF_PATH='{$g['cf_conf_path']}' /etc/rc.backup_rrd.sh"); + exec("cd /; LANG=C RRDDBPATH='{$rrddbpath}' CF_CONF_PATH='{$g['cf_conf_path']}' /etc/rc.backup_rrd.sh"); } function upgrade_096_to_097() { @@ -4647,7 +4647,7 @@ function upgrade_145_to_146() { $awkcmd .= " print;\n"; $awkcmd .= "}'"; - if ($g['platform'] != $g['product_name']) { + if (isset($config['system']['use_mfs_tmpvar'])) { /* restore the databases, if we have one */ if (restore_rrd()) { /* Make sure to move the rrd backup out of the way. We will make a new one after converting. */ @@ -4673,7 +4673,7 @@ function upgrade_145_to_146() { } /* Let's save the RRD graphs after we run enable RRD graphing */ /* The function will restore the rrd.tgz so we will save it after */ - exec("cd /; LANG=C NO_REMOUNT=1 RRDDBPATH='{$rrddbpath}' CF_CONF_PATH='{$g['cf_conf_path']}' /etc/rc.backup_rrd.sh"); + exec("cd /; LANG=C RRDDBPATH='{$rrddbpath}' CF_CONF_PATH='{$g['cf_conf_path']}' /etc/rc.backup_rrd.sh"); } function upgrade_bgpd_146_to_147() { @@ -4866,7 +4866,7 @@ function upgrade_151_to_152() { require_once("/etc/inc/services.inc"); // Remove these cron jobs on full install if not using ramdisk. - if (($g['platform'] == $g['product_name']) && !isset($config['system']['use_mfs_tmpvar'])) { + if (!isset($config['system']['use_mfs_tmpvar'])) { install_cron_job("/etc/rc.backup_rrd.sh", false); install_cron_job("/etc/rc.backup_dhcpleases.sh", false); } @@ -4970,4 +4970,62 @@ function upgrade_154_to_155() { } } } + +/* Unset references to glxsb in the config. See #6755 */ +function upgrade_155_to_156() { + if ($config['system']['crypto_hardware'] == "glxsb") { + unset($config['system']['crypto_hardware']); + } +} + +function upgrade_156_to_157() { + global $config; + /* Convert Cloudflare and GratisDNS type DynDNS entries to the new split hostname and domain format */ + + if (!is_array($config['dyndnses'])) { + $config['dyndnses'] = array(); + } + if (!is_array($config['dyndnses']['dyndns'])) { + $config['dyndnses']['dyndns'] = array(); + } + $a_dyndns = &$config['dyndnses']['dyndns']; + + foreach ($a_dyndns as &$dyndns) { + if (($dyndns['type'] == "cloudflare") || ($dyndns['type'] == "cloudflare-v6") || ($dyndns['type'] == "gratisdns")) { + /* Use the old style logic to split the host and domain one last time. */ + $dparts = explode(".", trim($dyndns['host'])); + $domain_part_count = ($dparts[count($dparts)-1] == "uk") ? 3 : 2; + $domain_offset = count($dparts) - $domain_part_count; + $dyndns['host'] = implode(".", array_slice($dparts, 0, $domain_offset)); + $dyndns['domainname'] = implode(".", array_slice($dparts, $domain_offset)); + } + } + + /* unset old pppoerestart cron job if it exists. redmine 1905 */ + if (is_array($config['cron']['item'])) { + foreach ($config['cron']['item'] as $idx => $cronitem) { + if ($cronitem['command'] == "/etc/pppoerestart") { + unset($config['cron']['item'][$idx]); + } + } + } +} + +function upgrade_157_to_158() { + global $config; + /* Convert Dynamic DNS passwords to base64 encoding. Redmine #6688 */ + + if (!is_array($config['dyndnses'])) { + $config['dyndnses'] = array(); + } + if (!is_array($config['dyndnses']['dyndns'])) { + $config['dyndnses']['dyndns'] = array(); + } + $a_dyndns = &$config['dyndnses']['dyndns']; + + foreach ($a_dyndns as &$dyndns) { + $dyndns['password'] = base64_encode($dyndns['password']); + } +} + ?> diff --git a/src/etc/inc/util.inc b/src/etc/inc/util.inc index 0eafc3c..5081322 100644 --- a/src/etc/inc/util.inc +++ b/src/etc/inc/util.inc @@ -3,7 +3,7 @@ * util.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) @@ -55,8 +55,9 @@ function isvalidproc($proc) { /* sigkill a process by pid file */ /* return 1 for success and 0 for a failure */ function sigkillbypid($pidfile, $sig) { - if (file_exists($pidfile)) { - return mwexec("/bin/pkill " . escapeshellarg("-{$sig}") . " -F {$pidfile}", true); + if (isvalidpid($pidfile)) { + return mwexec("/bin/pkill " . escapeshellarg("-{$sig}") . + " -F {$pidfile}", true); } return 0; @@ -228,82 +229,6 @@ function send_multiple_events($cmds) { } } -function refcount_init($reference) { - $shmid = @shmop_open($reference, "c", 0644, 10); - @shmop_write($shmid, str_pad("0", 10, "\x0", STR_PAD_RIGHT), 0); - @shmop_close($shmid); -} - -function refcount_reference($reference) { - /* Take out a lock across the shared memory read, increment, write sequence to make it atomic. */ - $shm_lck = lock("shm{$reference}", LOCK_EX); - try { - /* NOTE: A warning is generated when shared memory does not exist */ - $shmid = @shmop_open($reference, "w", 0, 0); - if (!$shmid) { - refcount_init($reference); - $shmid = @shmop_open($reference, "w", 0, 0); - if (!$shmid) { - log_error(sprintf(gettext("Could not open shared memory %s"), $reference)); - unlock($shm_lck); - return; - } - } - $shm_data = @shmop_read($shmid, 0, 10); - $shm_data = intval($shm_data) + 1; - @shmop_write($shmid, str_pad($shm_data, 10, "\x0", STR_PAD_RIGHT), 0); - @shmop_close($shmid); - unlock($shm_lck); - } catch (Exception $e) { - log_error($e->getMessage()); - unlock($shm_lck); - } - - return $shm_data; -} - -function refcount_unreference($reference) { - /* Take out a lock across the shared memory read, decrement, write sequence to make it atomic. */ - $shm_lck = lock("shm{$reference}", LOCK_EX); - try { - $shmid = @shmop_open($reference, "w", 0, 0); - if (!$shmid) { - refcount_init($reference); - log_error(sprintf(gettext("Could not open shared memory %s"), $reference)); - unlock($shm_lck); - return; - } - $shm_data = @shmop_read($shmid, 0, 10); - $shm_data = intval($shm_data) - 1; - if ($shm_data < 0) { - //debug_backtrace(); - log_error(sprintf(gettext("Reference %s is going negative, not doing unreference."), $reference)); - } else { - @shmop_write($shmid, str_pad($shm_data, 10, "\x0", STR_PAD_RIGHT), 0); - } - @shmop_close($shmid); - unlock($shm_lck); - } catch (Exception $e) { - log_error($e->getMessage()); - unlock($shm_lck); - } - - return $shm_data; -} - -function refcount_read($reference) { - /* This function just reads the current value of the refcount for information. */ - /* There is no need for locking. */ - $shmid = @shmop_open($reference, "a", 0, 0); - if (!$shmid) { - log_error(sprintf(gettext("Could not open shared memory for read %s"), $reference)); - return -1; - } - $shm_data = @shmop_read($shmid, 0, 10); - @shmop_close($shmid); - return $shm_data; -} - function is_module_loaded($module_name) { $module_name = str_replace(".ko", "", $module_name); $running = 0; @@ -371,8 +296,8 @@ function gen_subnetv4_max($ipaddr, $bits) { /* same as gen_subnet_max() but validates IPv6 only */ function gen_subnetv6_max($ipaddr, $bits) { if (is_ipaddrv6($ipaddr) && is_numericint($bits) && $bits <= 128) { - $endip_bin = substr(Net_IPv6::_ip2Bin($ipaddr), 0, $bits) . str_repeat('1', 128 - $bits); - return Net_IPv6::compress(Net_IPv6::_bin2Ip($endip_bin)); + $endip_bin = substr(ip6_to_bin($ipaddr), 0, $bits) . str_repeat('1', 128 - $bits); + return bin_to_compressed_ip6($endip_bin); } return ""; } @@ -399,7 +324,7 @@ function gen_subnet_mask_v6($bits) { /* Pad right with zeroes to reach the full address length */ $bin = str_pad($bin, 128, '0', STR_PAD_RIGHT); /* Convert back to an IPv6 address style notation */ - return Net_IPv6::_bin2Ip($bin); + return bin_to_ip6($bin); } /* Convert long int to IPv4 address @@ -420,6 +345,60 @@ function ip2ulong($ip) { return sprintf("%u", ip2long32($ip)); } +/* + * Convert IPv6 address to binary + * + * Obtained from: pear-Net_IPv6 + */ +function ip6_to_bin($ip) { + $binstr = ''; + + $ip = Net_IPv6::removeNetmaskSpec($ip); + $ip = Net_IPv6::Uncompress($ip); + + $parts = explode(':', $ip); + + foreach ( $parts as $v ) { + + $str = base_convert($v, 16, 2); + $binstr .= str_pad($str, 16, '0', STR_PAD_LEFT); + + } + + return $binstr; +} + +/* + * Convert IPv6 binary to uncompressed address + * + * Obtained from: pear-Net_IPv6 + */ +function bin_to_ip6($bin) { + $ip = ""; + + if (strlen($bin) < 128) { + $bin = str_pad($bin, 128, '0', STR_PAD_LEFT); + } + + $parts = str_split($bin, "16"); + + foreach ( $parts as $v ) { + $str = base_convert($v, 2, 16); + $ip .= $str.":"; + } + + $ip = substr($ip, 0, -1); + + return $ip; +} + +/* + * Convert IPv6 binary to compressed address + */ +function bin_to_compressed_ip6($bin) { + return Net_IPv6::compress(bin_to_ip6($bin)); +} + /* Find out how many IPs are contained within a given IP range * e.g. 192.168.0.0 to 192.168.0.255 returns 256 */ @@ -542,8 +521,8 @@ function ip_range_to_subnet_array($ip1, $ip2) { } elseif (is_ipaddrv6($ip1) && is_ipaddrv6($ip2)) { $proto = 'ipv6'; $bits = 128; - $ip1bin = Net_IPv6::_ip2Bin($ip1); - $ip2bin = Net_IPv6::_ip2Bin($ip2); + $ip1bin = ip6_to_bin($ip1); + $ip2bin = ip6_to_bin($ip2); } else { return array(); } @@ -622,7 +601,7 @@ function ip_range_to_subnet_array($ip1, $ip2) { $i = str_split($ip, 8); $out[] = implode('.', array(bindec($i[0]), bindec($i[1]), bindec($i[2]), bindec($i[3]))) . '/' . $netmask; } else { - $out[] = Net_IPv6::compress(Net_IPv6::_bin2Ip($ip)) . '/' . $netmask; + $out[] = bin_to_compressed_ip6($ip) . '/' . $netmask; } } @@ -828,10 +807,10 @@ function subnet_size_by_netmask($iptype, $bits, $exact=false) { return 0; } - // 2**N returns an exact result as an INT if possible, and a float/double if not. + // 2**N returns an exact result as an INT if possible, and a float/double if not. // Detect this switch, rather than comparing $result<=PHP_MAX_INT or $bits >=8*PHP_INT_SIZE as it's (probably) easier to get completely reliable $result = 2 ** $snsize; - + if ($exact && !is_int($result)) { //exact required but can't represent result exactly as an INT return 0; @@ -871,7 +850,7 @@ function check_subnetsv4_overlap($subnet1, $bits1, $subnet2, $bits2) { $largest_sn = min($bits1, $bits2); $subnetv4_start1 = gen_subnetv4($subnet1, $largest_sn); $subnetv4_start2 = gen_subnetv4($subnet2, $largest_sn); - + if ($subnetv4_start1 == '' || $subnetv4_start2 == '') { // One or both args is not a valid IPv4 subnet //FIXME: needs to return "bad data" not true/false if bad. For now return false, best we can do until fixed @@ -886,7 +865,7 @@ function check_subnetsv6_overlap($subnet1, $bits1, $subnet2, $bits2) { $largest_sn = min($bits1, $bits2); $subnetv6_start1 = gen_subnetv6($subnet1, $largest_sn); $subnetv6_start2 = gen_subnetv6($subnet2, $largest_sn); - + if ($subnetv6_start1 == '' || $subnetv6_start2 == '') { // One or both args is not a valid IPv6 subnet //FIXME: needs to return "bad data" not true/false if bad. For now return false, best we can do until fixed @@ -1007,9 +986,19 @@ function is_domain($domain, $allow_wildcard=false) { } /* returns true if $macaddr is a valid MAC address */ -function is_macaddr($macaddr, $partial=false) { - $repeat = ($partial) ? '1,5' : '5'; - return preg_match('/^[0-9A-F]{2}(?:[:][0-9A-F]{2}){'.$repeat.'}$/i', $macaddr) == 1 ? true : false; +function is_macaddr($macaddr) { + $values = explode(":", $macaddr); + if (count($values) != 6) { + return false; + } + for ($i = 0; $i < 6; $i++) { + if (ctype_xdigit($values[$i]) == false) + return false; + if (hexdec($values[$i]) < 0 || hexdec($values[$i]) > 255) + return false; + } + + return true; } /* @@ -1168,20 +1157,30 @@ function is_valid_shaperbw($val) { /* returns true if $test is in the range between $start and $end */ function is_inrange_v4($test, $start, $end) { - if ((ip2ulong($test) <= ip2ulong($end)) && (ip2ulong($test) >= ip2ulong($start))) { - return true; - } else { + if (!is_ipaddrv4($test) || !is_ipaddrv4($start) || !is_ipaddrv4($end)) { return false; } + + if (ip2ulong($test) <= ip2ulong($end) && + ip2ulong($test) >= ip2ulong($start)) { + return true; + } + + return false; } /* returns true if $test is in the range between $start and $end */ function is_inrange_v6($test, $start, $end) { - if ((inet_pton($test) <= inet_pton($end)) && (inet_pton($test) >= inet_pton($start))) { - return true; - } else { + if (!is_ipaddrv6($test) || !is_ipaddrv6($start) || !is_ipaddrv6($end)) { return false; } + + if (inet_pton($test) <= inet_pton($end) && + inet_pton($test) >= inet_pton($start)) { + return true; + } + + return false; } /* returns true if $test is in the range between $start and $end */ @@ -1654,16 +1653,24 @@ function mwexec_bg($command, $clearsigmask = false) { return mwexec($command, false, $clearsigmask, true); } -/* unlink a file, or pattern-match of a file, if it exists - if the file/path contains glob() compatible wildcards, all matching files will be unlinked - if no matches, no error occurs */ +/* unlink a file, or pattern-match of a file, if it exists + if the file/path contains glob() compatible wildcards, all matching files will be unlinked + any warning/errors are suppressed (e.g. no matching files to delete) + If there are matching file(s) and they were all unlinked OK, then return true. + Otherwise return false (the requested file(s) did not exist, or could not be deleted) + This allows the caller to know if they were the one to successfully delete the file(s). +*/ function unlink_if_exists($fn) { $to_do = glob($fn); if (is_array($to_do) && count($to_do) > 0) { - @array_map("unlink", $to_do); + // Returns an array of true/false indicating if each unlink worked + $results = @array_map("unlink", $to_do); + // If there is no false in the array, then all went well + $result = !in_array(false, $results, true); } else { - @unlink($fn); + $result = @unlink($fn); } + return $result; } /* make a global alias table (for faster lookups) */ function alias_make_table($config) { @@ -1851,15 +1858,19 @@ function format_number($num, $precision = 3) { $num /= 1000; $i++; } - round($num, $precision); + $num = round($num, $precision); return ("$num {$units[$i]}"); } -function update_filter_reload_status($text) { +function update_filter_reload_status($text, $new=false) { global $g; - file_put_contents("{$g['varrun_path']}/filter_reload_status", $text); + if ($new) { + file_put_contents("{$g['varrun_path']}/filter_reload_status", $text . PHP_EOL); + } else { + file_put_contents("{$g['varrun_path']}/filter_reload_status", $text . PHP_EOL, FILE_APPEND); + } } /****** util/return_dir_as_array @@ -2039,11 +2050,7 @@ function get_memory() { function mute_kernel_msgs() { global $g, $config; - // Do not mute serial console. The kernel gets very very cranky - // and will start dishing you cannot control tty errors. - if ($g['platform'] == 'nanobsd') { - return; - } + if ($config['system']['enableserial']) { return; } @@ -2052,11 +2059,7 @@ function mute_kernel_msgs() { function unmute_kernel_msgs() { global $g; - // Do not mute serial console. The kernel gets very very cranky - // and will start dishing you cannot control tty errors. - if ($g['platform'] == 'nanobsd') { - return; - } + exec("/sbin/conscontrol mute off"); } @@ -2310,6 +2313,36 @@ function explode_assoc($delimiter, $string) { return $result; } +/* Try to change a static route, if it doesn't exist, add it */ +function route_add_or_change($args) { + global $config; + + if (empty($args)) { + return false; + } + + /* First, try to add it */ + $_gb = exec(escapeshellcmd("/sbin/route add " . $args), $output, $rc); + + if (isset($config['system']['route-debug'])) { + $mt = microtime(); + log_error("ROUTING debug: $mt - ADD RC={$rc} - $args"); + } + + if ($rc != 0) { + /* If it fails, try to change it */ + $_gb = exec(escapeshellcmd("/sbin/route change " . $args), + $output, $rc); + + if (isset($config['system']['route-debug'])) { + $mt = microtime(); + log_error("ROUTING debug: $mt - CHG RC={$rc} - $args"); + } + } + + return ($rc == 0); +} + function get_staticroutes($returnsubnetsonly = false, $returnhostnames = false) { global $config, $aliastable; diff --git a/src/etc/inc/voucher.inc b/src/etc/inc/voucher.inc index 1ed3845..4ceec0a 100644 --- a/src/etc/inc/voucher.inc +++ b/src/etc/inc/voucher.inc @@ -3,7 +3,7 @@ * voucher.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2007-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2007-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2007 Marcel Wiget <mwiget@mac.com> * All rights reserved. * @@ -30,22 +30,9 @@ if (!function_exists('captiveportal_syslog')) { } function xmlrpc_sync_voucher_expire($vouchers, $syncip, $port, $password, $username) { - global $g, $config, $cpzone; - require_once("XML/RPC2/Client.php"); - - $protocol = "http"; - if (is_array($config['system']) && - is_array($config['system']['webgui']) && - !empty($config['system']['webgui']['protocol']) && - $config['system']['webgui']['protocol'] == "https") { - $protocol = "https"; - } - if ($protocol == "https" || $port == "443") { - $url = "https://{$syncip}:{$port}"; - } else { - $url = "http://{$syncip}:{$port}"; - } - + global $cpzone; + require_once("xmlrpc_client.inc"); + /* Construct code that is run on remote machine */ $execcmd = <<<EOF global \$cpzone; @@ -55,67 +42,20 @@ function xmlrpc_sync_voucher_expire($vouchers, $syncip, $port, $password, $usern voucher_expire("$vouchers"); EOF; - - $options = array( - 'prefix' => 'pfsense.', - 'sslverify' => false, - 'connectionTimeout' => 240 - ); - - log_error(sprintf(gettext("Captive Portal Voucher XMLRPC sync data %s."), $url)); - $cli = XML_RPC2_Client::create($url, $options); - if (!is_object($cli)) { - $error = sprintf(gettext("A communications error occurred while attempting CaptivePortalVoucherSync XMLRPC sync with %s (pfsense.exec_php)."), $url); - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); - return false; - } - - try { - $resp = $cli->exec_php($username, $password, $execcmd); - } catch (XML_RPC2_FaultException $e) { - // The XMLRPC server returns a XMLRPC error - $error = 'Exception calling XMLRPC method exec_php #' . $e->getFaultCode() . ' : ' . $e->getFaultString(); - log_error($error); - file_notice("CaptivePortalVoucherSync", $error, "Communications error occurred", ""); - return false; - } catch (Exception $e) { - // Other errors (HTTP or networking problems...) - $error = 'Exception calling XMLRPC method exec_php #' . $e->getMessage(); - log_error($error); - file_notice("CaptivePortalVoucherSync", $error, gettext("Error code received"), ""); - return false; - } - - if (!is_array($resp) && trim($resp) == "Authentication failed") { - $error = "An authentication failure occurred while trying to access {$url} (exec_php)."; - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); + $rpc_client = new pfsense_xmlrpc_client(); + $rpc_client->setConnectionData($syncip, $port, $username, $password); + $resp = $rpc_client->xmlrpc_exec_php($execcmd); + if (empty($resp)) { return false; } - - log_error(sprintf(gettext("CaptivePortalVoucherSync XMLRPC reload data success with %s (pfsense.exec_php)."), $url)); - return $resp; } function xmlrpc_sync_voucher_disconnect($dbent, $syncip, $port, $password, $username, $term_cause = 1, $stop_time = null) { - global $g, $config, $cpzone; - require_once("XML/RPC2/Client.php"); - - $protocol = "http"; - if (is_array($config['system']) && is_array($config['system']['webgui']) && !empty($config['system']['webgui']['protocol']) && - $config['system']['webgui']['protocol'] == "https") { - $protocol = "https"; - } - if ($protocol == "https" || $port == "443") { - $url = "https://{$syncip}:{$port}"; - } else { - $url = "http://{$syncip}:{$port}"; - } - + global $cpzone; + require_once("xmlrpc_client.inc"); /* Construct code that is run on remote machine */ - $dbent_str = serialize($dbent); + $dbent_str = addslashes(serialize($dbent)); $tmp_stop_time = (isset($stop_time)) ? $stop_time : "null"; $execcmd = <<<EOF global \$cpzone; @@ -127,64 +67,18 @@ function xmlrpc_sync_voucher_disconnect($dbent, $syncip, $port, $password, $user captiveportal_disconnect(\$dbent, \$radiusservers, $term_cause, $tmp_stop_time); EOF; - - $options = array( - 'prefix' => 'pfsense.', - 'sslverify' => false, - 'connectionTimeout' => 240 - ); - - log_error(sprintf(gettext("Captive Portal Voucher XMLRPC sync data %s."), $url)); - $cli = XML_RPC2_Client::create($url, $options); - if (!is_object($cli)) { - $error = sprintf(gettext("A communications error occurred while attempting CaptivePortalVoucherSync XMLRPC sync with %s (pfsense.exec_php)."), $url); - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); + $rpc_client = new pfsense_xmlrpc_client(); + $rpc_client->setConnectionData($syncip, $port, $username, $password); + $resp = $rpc_client->xmlrpc_exec_php($execcmd); + if (empty($resp)) { return false; } - - try { - $resp = $cli->exec_php($username, $password, $execcmd); - } catch (XML_RPC2_FaultException $e) { - // The XMLRPC server returns a XMLRPC error - $error = 'Exception calling XMLRPC method exec_php #' . $e->getFaultCode() . ' : ' . $e->getFaultString(); - log_error($error); - file_notice("CaptivePortalVoucherSync", $error, "Communications error occurred", ""); - return false; - } catch (Exception $e) { - // Other errors (HTTP or networking problems...) - $error = 'Exception calling XMLRPC method exec_php #' . $e->getMessage(); - log_error($error); - file_notice("CaptivePortalVoucherSync", $error, gettext("Error code received"), ""); - return false; - } - - if (!is_array($resp) && trim($resp) == "Authentication failed") { - $error = "An authentication failure occurred while trying to access {$url} (exec_php)."; - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); - return false; - } - - log_error(sprintf(gettext("CaptivePortalVoucherSync XMLRPC reload data success with %s (pfsense.exec_php)."), $url)); - return $resp; } function xmlrpc_sync_used_voucher($voucher_received, $syncip, $port, $password, $username) { - global $g, $config, $cpzone; - require_once("XML/RPC2/Client.php"); - - $protocol = "http"; - if (is_array($config['system']) && is_array($config['system']['webgui']) && !empty($config['system']['webgui']['protocol']) && - $config['system']['webgui']['protocol'] == "https") { - $protocol = "https"; - } - if ($protocol == "https" || $port == "443") { - $url = "https://{$syncip}:{$port}"; - } else { - $url = "http://{$syncip}:{$port}"; - } + global $config, $cpzone; + require_once("xmlrpc_client.inc"); /* Construct code that is run on remote machine */ $execcmd = <<<EOF @@ -198,52 +92,17 @@ function xmlrpc_sync_used_voucher($voucher_received, $syncip, $port, $password, \$toreturn['voucher']['roll'] = \$config['voucher'][\$cpzone]['roll']; EOF; - - $options = array( - 'prefix' => 'pfsense.', - 'sslverify' => false, - 'connectionTimeout' => 240 - ); - - log_error(sprintf(gettext("Captive Portal Voucher XMLRPC sync data %s."), $url)); - $cli = XML_RPC2_Client::create($url, $options); - if (!is_object($cli)) { - $error = sprintf(gettext("A communications error occurred while attempting CaptivePortalVoucherSync XMLRPC sync with %s (pfsense.exec_php)."), $url); - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); - return null; - } - - try { - $resp = $cli->exec_php($username, $password, $execcmd); - } catch (XML_RPC2_FaultException $e) { - // The XMLRPC server returns a XMLRPC error - $error = 'Exception calling XMLRPC method exec_php #' . $e->getFaultCode() . ' : ' . $e->getFaultString(); - log_error($error); - file_notice("CaptivePortalVoucherSync", $error, "Communications error occurred", ""); - return null; - } catch (Exception $e) { - // Other errors (HTTP or networking problems...) - $error = 'Exception calling XMLRPC method exec_php #' . $e->getMessage(); - log_error($error); - file_notice("CaptivePortalVoucherSync", $error, gettext("Error code received"), ""); - return null; - } - - if (!is_array($resp) && trim($resp) == "Authentication failed") { - $error = "An authentication failure occurred while trying to access {$url} (exec_php)."; - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); - return null; - } - + $rpc_client = new pfsense_xmlrpc_client(); + $rpc_client->setConnectionData($syncip, $port, $username, $password); + $resp = $rpc_client->xmlrpc_exec_php($execcmd); + if (!is_array($config['voucher'])) { $config['voucher'] = array(); } if (is_array($resp['voucher']['roll'])) { $config['voucher'][$cpzone]['roll'] = $resp['voucher']['roll']; - write_config(sprintf(gettext("Captive Portal Voucher database synchronized with %s"), $url)); + write_config(sprintf(gettext("Captive Portal Voucher database synchronized with %s:%s"), $syncip, $port)); voucher_configure_zone(true); unset($resp['voucher']); } else if (!isset($resp['timeleft'])) { diff --git a/src/etc/inc/vpn.inc b/src/etc/inc/vpn.inc index 46a1dad..f4fa23d 100644 --- a/src/etc/inc/vpn.inc +++ b/src/etc/inc/vpn.inc @@ -3,7 +3,7 @@ * vpn.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc * All rights reserved. * @@ -199,17 +199,14 @@ function vpn_ipsec_configure($restart = false) { if (!file_exists("/usr/local/etc/ipsec.d") || !is_link("/usr/local/etc/ipsec.d")) { - conf_mount_rw(); if (file_exists("/usr/local/etc/ipsec.d")) { rmdir_recursive("/usr/local/etc/ipsec.d"); } @symlink("{$g['varetc_path']}/ipsec/ipsec.d", "/usr/local/etc/ipsec.d"); - conf_mount_ro(); } if (!file_exists("{$g['varetc_path']}/etc/strongswan.d") || !is_link("{$g['varetc_path']}/etc/strongswan.d")) { - conf_mount_rw(); if (is_link("{$g['varetc_path']}/etc/strongswan.d")) { @unlink("{$g['varetc_path']}/etc/strongswan.d"); } else { @@ -217,23 +214,18 @@ function vpn_ipsec_configure($restart = false) { } @symlink("/usr/local/etc/strongswan.d", "{$g['varetc_path']}/ipsec/strongswan.d"); - conf_mount_ro(); } if (!file_exists("/usr/local/etc/strongswan.conf") || !is_link("/usr/local/etc/strongswan.conf")) { - conf_mount_rw(); @unlink("/usr/local/etc/strongswan.conf"); @symlink("{$g['varetc_path']}/ipsec/strongswan.conf", "/usr/local/etc/strongswan.conf"); - conf_mount_ro(); } if (!file_exists("/usr/local/etc/ipsec.conf") || !is_link("/usr/local/etc/ipsec.conf")) { - conf_mount_rw(); @unlink("/usr/local/etc/ipsec.conf"); @symlink("{$g['varetc_path']}/ipsec/ipsec.conf", "/usr/local/etc/ipsec.conf"); - conf_mount_ro(); } if (platform_booting()) { @@ -865,20 +857,23 @@ EOD; $sourcehost = $rgmap['remote-gateway']; } - if ($ph1ent['protocol'] == 'inet') { - if (substr($ph1ent['interface'], 0, 4) == "_vip") { - $vpninterface = get_configured_vip_interface($ph1ent['interface']); + if (substr($ph1ent['interface'], 0, 4) == "_vip") { + $vpninterface = get_configured_vip_interface($ph1ent['interface']); + if (substr($vpninterface, 0, 4) == "_vip") { + // vips are nested if its a ipalias with a carp parent + $vpninterface = get_configured_vip_interface($vpninterface); + } + $ifacesuse = get_real_interface($vpninterface); + } else { + $ifacesuse = get_failover_interface($ph1ent['interface']); + if (substr($ifacesuse, 0, 4) == "_vip") { + $vpninterface = get_configured_vip_interface($ifacesuse); $ifacesuse = get_real_interface($vpninterface); } else { - $ifacesuse = get_failover_interface($ph1ent['interface']); - if (substr($ifacesuse, 0, 4) == "_vip") { - $vpninterface = get_configured_vip_interface($ifacesuse); - $ifacesuse = get_real_interface($vpninterface); - } else { - $vpninterface = convert_real_interface_to_friendly_interface_name($ifacesuse); - } + $vpninterface = convert_real_interface_to_friendly_interface_name($ifacesuse); } - + } + if ($ph1ent['protocol'] == 'inet') { if (!empty($ifacesuse) && interface_has_gateway($vpninterface)) { $gatewayip = get_interface_gateway($vpninterface); $interfaceip = get_interface_ip($vpninterface); @@ -888,25 +883,12 @@ EOD; if (!ip_in_subnet($sourcehost, "{$subnet_ip}/{$subnet_bits}")) { if (is_ipaddrv4($gatewayip)) { // log_error("IPSEC interface is not WAN but {$ifacesuse}, adding static route for VPN endpoint {$rgip} via {$gatewayip}"); - mwexec("/sbin/route change -host {$sourcehost} {$gatewayip}", true); + route_add_or_change("-host {$sourcehost} {$gatewayip}"); } } } } else if ($ph1ent['protocol'] == 'inet6') { - if (substr($ph1ent['interface'], 0, 4) == "_vip") { - $vpninterface = get_configured_vip_interface($ph1ent['interface']); - $ifacesuse = get_real_interface($vpninterface); - } else { - $ifacesuse = get_failover_interface($ph1ent['interface']); - if (substr($ifacesuse, 0, 4) == "_vip") { - $vpninterface = get_configured_vip_interface($ifacesuse); - $ifacesuse = get_real_interface($vpninterface); - } else { - $vpninterface = convert_real_interface_to_friendly_interface_name($ifacesuse); - } - } - - if (!empty($ifacesuse) && interface_has_gateway($vpninterface)) { + if (!empty($ifacesuse) && interface_has_gatewayv6($vpninterface)) { $gatewayip = get_interface_gateway_v6($vpninterface); $interfaceip = get_interface_ipv6($vpninterface); $subnet_bits = get_interface_subnetv6($vpninterface); @@ -915,7 +897,7 @@ EOD; if (!ip_in_subnet($sourcehost, "{$subnet_ip}/{$subnet_bits}")) { if (is_ipaddrv6($gatewayip)) { // log_error("IPSEC interface is not WAN but {$ifacesuse}, adding static route for VPN endpoint {$rgip} via {$gatewayip}"); - mwexec("/sbin/route change -inet6 -host {$sourcehost} {$gatewayip}", true); + route_add_or_change("-inet6 -host {$sourcehost} {$gatewayip}"); } } } @@ -1580,44 +1562,54 @@ function vpn_pppoe_configure(&$pppoecfg) { printf(gettext("Error: cannot open mpd.conf in vpn_pppoe_configure().") . "\n"); return 1; } - $mpdconf = "\n\n"; - $mpdconf .= "poes:\n"; - for ($i = 0; $i < $pppoecfg['n_pppoe_units']; $i++) { - $mpdconf .= " load poes{$pppoecfg['pppoeid']}{$i}\n"; + $issue_ip_type = "set ipcp ranges {$pppoecfg['localip']}/32 "; + if (isset($pppoecfg['radius']['radiusissueips']) && isset($pppoecfg['radius']['server']['enable'])) { + $issue_ip_type .= "0.0.0.0/0"; + } else { + $issue_ip_type .= "ippool p0"; } - for ($i = 0; $i < $pppoecfg['n_pppoe_units']; $i++) { + $ippool_p0 = ip_after($pppoecfg['remoteip'], $pppoecfg['n_pppoe_units'] - 1); - $clientip = ip_after($pppoecfg['remoteip'], $i); - - if (isset($pppoecfg['radius']['radiusissueips']) && isset($pppoecfg['radius']['server']['enable'])) { - $issue_ip_type = "set ipcp ranges {$pppoecfg['localip']}/32 0.0.0.0/0"; - } else { - $issue_ip_type = "set ipcp ranges {$pppoecfg['localip']}/32 {$clientip}/32"; - } - - $mpdconf .=<<<EOD - -poes{$pppoecfg['pppoeid']}{$i}: - new -i poes{$pppoecfg['pppoeid']}{$i} poes{$pppoecfg['pppoeid']}{$i} poes{$pppoecfg['pppoeid']}{$i} - {$issue_ip_type} - load pppoe_standard - -EOD; - } if (is_numeric($pppoecfg['n_pppoe_maxlogin']) && ($pppoecfg['n_pppoe_maxlogin'] > 0)) { $pppoemaxlogins = $pppoecfg['n_pppoe_maxlogin']; } else { $pppoemaxlogins = 1; } - $mpdconf .=<<<EOD + $ipcp_dns = ''; + if (!empty($pppoecfg['dns1'])) { + $ipcp_dns = "set ipcp dns " . $pppoecfg['dns1']; + if (!empty($pppoecfg['dns2'])) { + $ipcp_dns .= " " . $pppoecfg['dns2']; + } + } elseif (isset($config['dnsmasq']['enable']) || + isset ($config['unbound']['enable'])) { + $ipcp_dns = "set ipcp dns " . get_interface_ip("lan"); + if ($syscfg['dnsserver'][0]) { + $ipcp_dns .= " " . $syscfg['dnsserver'][0]; + } + } elseif (is_array($syscfg['dnsserver']) && + ($syscfg['dnsserver'][0])) { + $ipcp_dns = "set ipcp dns " . join(" ", $syscfg['dnsserver']); + } -pppoe_standard: - set bundle no multilink + $mpdconf = <<<EOD +startup: + +poes: + set ippool add p0 {$pppoecfg['remoteip']} {$ippool_p0} + + create bundle template poes_b set bundle enable compression - set auth max-logins {$pppoemaxlogins} + + set ccp yes mppc + set mppc yes e40 + set mppc yes e128 + set mppc yes stateless + + set iface group pppoe set iface up-script /usr/local/sbin/vpn-linkup set iface down-script /usr/local/sbin/vpn-linkdown set iface idle 0 @@ -1625,45 +1617,29 @@ pppoe_standard: set iface disable proxy-arp set iface enable tcpmssfix set iface mtu 1500 + + set ipcp no vjcomp + {$issue_ip_type} + {$ipcp_dns} + + create link template poes_l pppoe + set link action bundle poes_b + + set auth max-logins {$pppoemaxlogins} + + set pppoe iface {$pppoe_interface} + + set link no multilink set link no pap chap {$paporchap} set link keep-alive 60 180 - set ipcp yes vjcomp - set ipcp no vjcomp set link max-redial -1 - set link mtu 1492 set link mru 1492 - set ccp yes mpp-e40 - set ccp yes mpp-e128 - set ccp yes mpp-stateless set link latency 1 - #set ipcp dns 10.10.1.3 - #set bundle accept encryption + set link enable incoming EOD; - if (!empty($pppoecfg['dns1'])) { - $mpdconf .= " set ipcp dns " . $pppoecfg['dns1']; - if (!empty($pppoecfg['dns2'])) { - $mpdconf .= " " . $pppoecfg['dns2']; - } - $mpdconf .= "\n"; - } elseif (isset ($config['dnsmasq']['enable'])) { - $mpdconf .= " set ipcp dns " . get_interface_ip("lan"); - if ($syscfg['dnsserver'][0]) { - $mpdconf .= " " . $syscfg['dnsserver'][0]; - } - $mpdconf .= "\n"; - } elseif (isset ($config['unbound']['enable'])) { - $mpdconf .= " set ipcp dns " . get_interface_ip("lan"); - if ($syscfg['dnsserver'][0]) { - $mpdconf .= " " . $syscfg['dnsserver'][0]; - } - $mpdconf .= "\n"; - } elseif (is_array($syscfg['dnsserver']) && ($syscfg['dnsserver'][0])) { - $mpdconf .= " set ipcp dns " . join(" ", $syscfg['dnsserver']) . "\n"; - } - if (isset ($pppoecfg['radius']['server']['enable'])) { $radiusport = ""; $radiusacctport = ""; @@ -1687,7 +1663,7 @@ EOD; EOD; } - if (isset($pppoecfg['radius']['nasip'])) { + if (!empty($pppoecfg['radius']['nasip'])) { $mpdconf .= "\tset radius me {$pppoecfg['radius']['nasip']}\n"; } } @@ -1696,32 +1672,6 @@ EOD; fclose($fd); unset($mpdconf); - /* write mpd.links */ - $fd = fopen("{$g['varetc_path']}/pppoe{$pppoecfg['pppoeid']}-vpn/mpd.links", "w"); - if (!$fd) { - printf(gettext("Error: cannot open mpd.links in vpn_pppoe_configure().") . "\n"); - return 1; - } - - $mpdlinks = ""; - - for ($i = 0; $i < $pppoecfg['n_pppoe_units']; $i++) { - $mpdlinks .=<<<EOD - -poes{$pppoecfg['pppoeid']}{$i}: - set phys type pppoe - set pppoe iface {$pppoe_interface} - set pppoe service "*" - set pppoe disable originate - set pppoe enable incoming - -EOD; - } - - fwrite($fd, $mpdlinks); - fclose($fd); - unset($mpdlinks); - if ($pppoecfg['username']) { /* write mpd.secret */ $fd = fopen("{$g['varetc_path']}/pppoe{$pppoecfg['pppoeid']}-vpn/mpd.secret", "w"); @@ -1754,7 +1704,7 @@ EOD; /* Get support for netgraph(4) from the nic */ pfSense_ngctl_attach(".", $pppoe_interface); /* fire up mpd */ - mwexec("/usr/local/sbin/mpd4 -b -d {$g['varetc_path']}/pppoe{$pppoecfg['pppoeid']}-vpn -p {$g['varrun_path']}/pppoe{$pppoecfg['pppoeid']}-vpn.pid -s poes poes"); + mwexec("/usr/local/sbin/mpd5 -b -d {$g['varetc_path']}/pppoe{$pppoecfg['pppoeid']}-vpn -p {$g['varrun_path']}/pppoe{$pppoecfg['pppoeid']}-vpn.pid -s poes poes"); break; } @@ -1824,81 +1774,75 @@ function vpn_l2tp_configure() { printf(gettext("Error: cannot open mpd.conf in vpn_l2tp_configure().") . "\n"); return 1; } - $mpdconf = "\n\n"; - $mpdconf .=<<<EOD -l2tps: -EOD; + $ippool_p0 = ip_after($l2tpcfg['remoteip'], $l2tpcfg['n_l2tp_units'] - 1); - for ($i = 0; $i < $l2tpcfg['n_l2tp_units']; $i++) { - $mpdconf .= " load l2tp{$i}\n"; + $issue_ip_type = "set ipcp ranges {$l2tpcfg['localip']}/32 "; + if (isset($l2tpcfg['radius']['radiusissueips']) && isset($l2tpcfg['radius']['server']['enable'])) { + $issue_ip_type .= "0.0.0.0/0"; + } else { + $issue_ip_type .= "ippool p0"; } - for ($i = 0; $i < $l2tpcfg['n_l2tp_units']; $i++) { - - $clientip = ip_after($l2tpcfg['remoteip'], $i); + $ipcp_nbns = ''; + if (is_ipaddr($l2tpcfg['wins'])) { + $ipcp_nbns = "set ipcp nbns {$l2tpcfg['wins']}"; + } - if (isset ($l2tpcfg['radius']['radiusissueips']) && isset ($l2tpcfg['radius']['enable'])) { - $issue_ip_type = "set ipcp ranges {$l2tpcfg['localip']}/32 0.0.0.0/0"; - } else { - $issue_ip_type = "set ipcp ranges {$l2tpcfg['localip']}/32 {$clientip}/32"; + $ipcp_dns = ''; + if (is_ipaddr($l2tpcfg['dns1'])) { + $ipcp_dns = "set ipcp dns " . $l2tpcfg['dns1']; + if (is_ipaddr($l2tpcfg['dns2'])) { + $ipcp_dns .= " " . $l2tpcfg['dns2']; + } + } elseif (isset ($config['dnsmasq']['enable']) || + isset ($config['unbound']['enable'])) { + $ipcp_dns = "set ipcp dns " . get_interface_ip("lan"); + if ($syscfg['dnsserver'][0]) { + $ipcp_dns .= " " . $syscfg['dnsserver'][0]; } + } elseif (is_array($syscfg['dnsserver']) && + ($syscfg['dnsserver'][0])) { + $ipcp_dns = "set ipcp dns " . join(" ", $syscfg['dnsserver']); + } - $mpdconf .=<<<EOD + $mpdconf =<<<EOD -l2tp{$i}: - new -i l2tp{$i} l2tp{$i} l2tp{$i} - {$issue_ip_type} - load l2tp_standard +startup: -EOD; - } - - $mpdconf .=<<<EOD +l2tps: + set ippool add p0 {$l2tpcfg['remoteip']} {$ippool_p0} -l2tp_standard: - set bundle disable multilink + create bundle template l2tp_b set bundle enable compression set bundle yes crypt-reqd - set ipcp yes vjcomp - # set ipcp ranges 131.188.69.161/32 131.188.69.170/28 + set ccp yes mppc - set iface disable on-demand - set iface enable proxy-arp + + set iface group l2tp set iface up-script /usr/local/sbin/vpn-linkup set iface down-script /usr/local/sbin/vpn-linkdown + set iface disable on-demand + set iface enable proxy-arp + + set ipcp yes vjcomp + {$issue_ip_type} + {$ipcp_nbns} + {$ipcp_dns} + + create link template l2tp_l l2tp + set link action bundle l2tp_b + set link yes acfcomp protocomp - set link no pap chap + set link enable multilink + set link no pap chap chap-msv2 {$paporchap} {$l2tp_listen} set link keep-alive 10 180 + set link enable incoming EOD; - if (is_ipaddr($l2tpcfg['wins'])) { - $mpdconf .= " set ipcp nbns {$l2tpcfg['wins']}\n"; - } - if (is_ipaddr($l2tpcfg['dns1'])) { - $mpdconf .= " set ipcp dns " . $l2tpcfg['dns1']; - if (is_ipaddr($l2tpcfg['dns2'])) { - $mpdconf .= " " . $l2tpcfg['dns2']; - } - $mpdconf .= "\n"; - } elseif (isset ($config['dnsmasq']['enable'])) { - $mpdconf .= " set ipcp dns " . get_interface_ip("lan"); - if ($syscfg['dnsserver'][0]) { - $mpdconf .= " " . $syscfg['dnsserver'][0]; - } - $mpdconf .= "\n"; - } elseif (isset ($config['unbound']['enable'])) { - $mpdconf .= " set ipcp dns " . get_interface_ip("lan"); - if ($syscfg['dnsserver'][0]) { - $mpdconf .= " " . $syscfg['dnsserver'][0]; - } - $mpdconf .= "\n"; - } elseif (is_array($syscfg['dnsserver']) && ($syscfg['dnsserver'][0])) { - $mpdconf .= " set ipcp dns " . join(" ", $syscfg['dnsserver']) . "\n"; - } if (isset ($l2tpcfg['radius']['enable'])) { $mpdconf .=<<<EOD @@ -1921,33 +1865,6 @@ EOD; fclose($fd); unset($mpdconf); - /* write mpd.links */ - $fd = fopen("{$g['varetc_path']}/l2tp-vpn/mpd.links", "w"); - if (!$fd) { - printf(gettext("Error: cannot open mpd.links in vpn_l2tp_configure().") . "\n"); - return 1; - } - - $mpdlinks = ""; - - for ($i = 0; $i < $l2tpcfg['n_l2tp_units']; $i++) { - $mpdlinks .=<<<EOD - -l2tp{$i}: - set link type l2tp - set l2tp enable incoming - set l2tp disable originate - -EOD; - if (!empty($l2tpcfg['secret'])) { - $mpdlinks .= "set l2tp secret {$l2tpcfg['secret']}\n"; - } - } - - fwrite($fd, $mpdlinks); - fclose($fd); - unset($mpdlinks); - /* write mpd.secret */ $fd = fopen("{$g['varetc_path']}/l2tp-vpn/mpd.secret", "w"); if (!$fd) { @@ -1971,7 +1888,7 @@ EOD; vpn_netgraph_support(); /* fire up mpd */ - mwexec("/usr/local/sbin/mpd4 -b -d {$g['varetc_path']}/l2tp-vpn -p {$g['varrun_path']}/l2tp-vpn.pid -s l2tps l2tps"); + mwexec("/usr/local/sbin/mpd5 -b -d {$g['varetc_path']}/l2tp-vpn -p {$g['varrun_path']}/l2tp-vpn.pid -s l2tps l2tps"); break; diff --git a/src/etc/inc/vslb.inc b/src/etc/inc/vslb.inc index 1d6900f..7d59cb1 100644 --- a/src/etc/inc/vslb.inc +++ b/src/etc/inc/vslb.inc @@ -4,7 +4,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2005-2008 Bill Marquette - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/inc/wizardapp.inc b/src/etc/inc/wizardapp.inc index c8b3f5c..88143b5 100644 --- a/src/etc/inc/wizardapp.inc +++ b/src/etc/inc/wizardapp.inc @@ -3,7 +3,7 @@ * wizardapp.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2006 Bill Marquette - bill.marquette@gmail.com. * All rights reserved. * diff --git a/src/etc/inc/xmlparse.inc b/src/etc/inc/xmlparse.inc index 7aec616..5632e98 100644 --- a/src/etc/inc/xmlparse.inc +++ b/src/etc/inc/xmlparse.inc @@ -3,7 +3,7 @@ * xmlparse.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) @@ -226,7 +226,7 @@ function dump_xml_config_sub($arr, $indent) { if (is_array($cval)) { if (empty($cval)) { $xmlconfig .= str_repeat("\t", $indent); - $xmlconfig .= "<$ent/>\n"; + $xmlconfig .= "<$ent></$ent>\n"; } else { $xmlconfig .= str_repeat("\t", $indent); $xmlconfig .= "<$ent>\n"; @@ -240,7 +240,7 @@ function dump_xml_config_sub($arr, $indent) { } $xmlconfig .= str_repeat("\t", $indent); if ((is_bool($cval) && $cval == true) || ($cval === "")) { - $xmlconfig .= "<$ent/>\n"; + $xmlconfig .= "<$ent></$ent>\n"; } else if ((substr($ent, 0, 5) == "descr") || (substr($ent, 0, 6) == "detail") || (substr($ent, 0, 12) == "login_banner") || @@ -257,7 +257,7 @@ function dump_xml_config_sub($arr, $indent) { } } else if (empty($val)) { $xmlconfig .= str_repeat("\t", $indent); - $xmlconfig .= "<$ent/>\n"; + $xmlconfig .= "<$ent></$ent>\n"; } else { /* it's an array */ $xmlconfig .= str_repeat("\t", $indent); @@ -269,7 +269,7 @@ function dump_xml_config_sub($arr, $indent) { } else { if ((is_bool($val) && ($val == true)) || ($val === "")) { $xmlconfig .= str_repeat("\t", $indent); - $xmlconfig .= "<$ent/>\n"; + $xmlconfig .= "<$ent></$ent>\n"; } else if (!is_bool($val)) { $xmlconfig .= str_repeat("\t", $indent); if ((substr($ent, 0, 5) == "descr") || diff --git a/src/etc/inc/xmlparse_attr.inc b/src/etc/inc/xmlparse_attr.inc index 4f2779b..cd859c8 100644 --- a/src/etc/inc/xmlparse_attr.inc +++ b/src/etc/inc/xmlparse_attr.inc @@ -3,7 +3,7 @@ * xmlparse_attr.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2010-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2010-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Erik Fonnesbeck * All rights reserved. * diff --git a/src/etc/inc/xmlreader.inc b/src/etc/inc/xmlreader.inc index ac19a25..ee41796 100644 --- a/src/etc/inc/xmlreader.inc +++ b/src/etc/inc/xmlreader.inc @@ -3,7 +3,7 @@ * xmlreader.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) @@ -187,7 +187,8 @@ function dump_xml_config_sub(& $writer, $arr) { foreach ($val as $cval) { if (is_array($cval)) { if (empty($cval)) { - $writer->writeElement($ent); + $writer->startElement($ent); + $writer->endElement(); } else { $writer->startElement($ent); dump_xml_config_sub($writer, $cval); @@ -198,14 +199,16 @@ function dump_xml_config_sub(& $writer, $arr) { continue; } if ((is_bool($val) && ($val == true)) || ($val === "")) { - $writer->writeElement($ent); + $writer->startElement($ent); + $writer->endElement(); } else if (!is_bool($val)) { $writer->writeElement($ent, $cval); } } } } else if (empty($val)) { - $writer->writeElement($ent); + $writer->startElement($ent); + $writer->endElement(); } else { /* it's an array */ $writer->startElement($ent); @@ -214,7 +217,8 @@ function dump_xml_config_sub(& $writer, $arr) { } } else { if ((is_bool($val) && ($val == true)) || ($val === "")) { - $writer->writeElement($ent); + $writer->startElement($ent); + $writer->endElement(); } else if (!is_bool($val)) { $writer->writeElement($ent, $val); } @@ -231,6 +235,8 @@ function dump_xml_config($arr, $rootobj) { $listtags[$tag] = $tag; } } + + return dump_xml_config_raw($arr, $rootobj); } diff --git a/src/etc/inc/xmlrpc_client.inc b/src/etc/inc/xmlrpc_client.inc new file mode 100644 index 0000000..26a93be --- /dev/null +++ b/src/etc/inc/xmlrpc_client.inc @@ -0,0 +1,163 @@ +<?php +/* + * xmlrpc_client.php + * + * part of pfSense (https://www.pfsense.org) + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +require_once("XML/RPC2/Client.php"); + +class pfsense_xmlrpc_client { + + private $username, $password, $url, $logurl, $filenotice, $error; + + public function __construct() { + global $config; + $hasync = $config['hasync']; + + if (empty($hasync['username'])) { + $username = "admin"; + } else { + $username = $hasync['username']; + } + /* if port is empty lets rely on the protocol selection */ + $port = $config['system']['webgui']['port']; + if (empty($port)) { + if ($config['system']['webgui']['protocol'] == "http") { + $port = "80"; + } else { + $port = "443"; + } + } + $this->setConnectionData($hasync['synchronizetoip'], $port, $username, $hasync['password']); + } + + public function setConnectionData($syncip, $port, $username, $password, $scheme = "") { + global $config; + $this->username = $username; + $this->password = $password; + $this->filenotice = "sync_settings"; + if (empty($scheme)) { + $scheme = "http"; + if ($port == "443") { + $scheme = "https"; + } else if (is_array($config['system']) && + is_array($config['system']['webgui']) && + !empty($config['system']['webgui']['protocol']) && + $config['system']['webgui']['protocol'] == "https") { + $scheme = "https"; + } + } + if (is_ipaddrv6($syncip)) { + $syncip = "[{$syncip}]"; + } + $user = urlencode($this->username); + $pass = urlencode($this->password); + + $this->logurl = "{$scheme}://{$syncip}:{$port}/xmlrpc.php"; + $this->url = "{$scheme}://{$user}:{$pass}@{$syncip}:{$port}/xmlrpc.php"; + } + + public function set_noticefile($noticefile) { + $this->filenotice = $noticefile; + } + + private function xmlrpc_internal($method, $parameter, $timeout = 240) { + $this->error = null; + $options = array( + 'prefix' => 'pfsense.', + 'sslverify' => false, + 'connectionTimeout' => $timeout + ); + + $numberofruns = 0; + while ($numberofruns < 2) { + $numberofruns++; + + log_error(sprintf(gettext("Beginning XMLRPC sync data to %s."), $this->logurl)); + $cli = XML_RPC2_Client::create($this->url, $options); + if (!is_object($cli)) { + $this->error = sprintf(gettext("A communications error occurred while attempting XMLRPC sync with %s (pfsense.%s)."), $this->log, $method); + log_error($this->error); + file_notice($this->filenotice, $this->error, "Settings Sync", ""); + continue; + } + try {//restore_config_section + $REQUEST_URI = $_SERVER['REQUEST_URI']; + unset($_SERVER['REQUEST_URI']); // force use of 'toText()' when setting XML_RPC2_CurlException message + $resp = $cli->$method($parameter); + } catch (XML_RPC2_FaultException $e) { + // The XMLRPC server returns a XMLRPC error + $this->error = "Exception calling XMLRPC method {$method} #" . $e->getFaultCode() . ' : ' . $e->getFaultString(); + log_error($this->error); + file_notice($this->filenotice, $this->error, "Communications error occurred", ""); + continue; + } catch (XML_RPC2_CurlException $e) { + $previouserror = $e->getPrevious();// HTTP_Request2_ConnectionException + if ($previouserror == null) { + // CurlException doesnt get filled with PreviousError, + // however we dont want to show the stacktrace included in the 'message' to non sysadmin users + $this->error = "CurlException calling XMLRPC method {$method} #" . $e->getMessage(); + } else { + $this->error = "CurlException calling XMLRPC method {$method} #" . $previouserror->getMessage(); + } + log_error($this->error); + file_notice($this->filenotice, $this->error, "Communications error occurred", ""); + continue; + } catch (Exception $e) { + // Other errors (HTTP or networking problems...) + $this->error = "Exception calling XMLRPC method {$method} # " . $e->getMessage(); + log_error($this->error); + file_notice($this->filenotice, $this->error, gettext("Error code received"), ""); + continue; + } finally { + if (isset($REQUEST_URI)) { + // restore the unset variable to its previous state. + $_SERVER['REQUEST_URI'] = $REQUEST_URI; + } + } + + if (!is_array($resp) && trim($resp) == "Authentication failed") { + $this->error = "An authentication failure occurred while trying to access {$this->logurl} ({$method})."; + log_error($this->error); + file_notice($this->filenotice, $this->error, "Settings Sync", ""); + continue; + } + log_error(sprintf(gettext("XMLRPC reload data success with %s (pfsense.{$method})."), $this->logurl)); + return $resp; + } + return null; + } + + public function xmlrpc_exec_php($execcmd, $timeout = 240) { + $resp = $this->xmlrpc_internal("exec_php", $execcmd, $timeout); + return $resp; + } + + public function xmlrpc_method($method, $parameter = "", $timeout = 240) { + $resp = $this->xmlrpc_internal($method, $parameter, $timeout); + return $resp; + } + + public function get_error() { + return $this->error; + } + + public function getUrl() { + return $this->logurl; + } +}
\ No newline at end of file diff --git a/src/etc/pfSense-ddb.conf b/src/etc/pfSense-ddb.conf new file mode 100644 index 0000000..9a6aafd --- /dev/null +++ b/src/etc/pfSense-ddb.conf @@ -0,0 +1,15 @@ +# $FreeBSD$ +# +# This file is read when going to multi-user and its contents piped thru +# ``ddb'' to define debugging scripts. +# +# see ``man 4 ddb'' and ``man 8 ddb'' for details. +# + +script lockinfo=show locks; show alllocks; show lockedvnods + +# kdb.enter.panic panic(9) was called. +script kdb.enter.default=textdump set; capture on; run lockinfo; show pcpu; bt; ps; alltrace; capture off; textdump dump; reset + +# kdb.enter.witness witness(4) detected a locking error. +script kdb.enter.witness=run lockinfo diff --git a/src/etc/pfSense-devd.conf b/src/etc/pfSense-devd.conf index a24a963..7c575b1 100644 --- a/src/etc/pfSense-devd.conf +++ b/src/etc/pfSense-devd.conf @@ -2,7 +2,7 @@ # pfSense-devd.conf # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/pfSense-rc b/src/etc/pfSense-rc index c01dc50..e46ed23 100755 --- a/src/etc/pfSense-rc +++ b/src/etc/pfSense-rc @@ -3,7 +3,7 @@ # pfSense-rc # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # originally based on m0n0wall (http://neon1.net/m0n0wall) @@ -32,9 +32,6 @@ HOME=/ PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin export HOME PATH -# Set our operating platform -PLATFORM=`/bin/cat /etc/platform` - # Set our current version version=`/bin/cat /etc/version` @@ -56,100 +53,93 @@ product=$(/usr/local/bin/php -n /usr/local/sbin/read_global_var product_name pfS # Setup dumpdev/ddb/savecore" echo "Configuring crash dumps..." -if [ "$PLATFORM" = "${product}" ]; then - /etc/rc.dumpon -fi +/etc/rc.dumpon -# Setup ddb on all platforms. On full install it will save the dump, on NanoBSD it will print to console and auto-reboot. +# Setup ddb on all platforms. if [ ! -z "`sysctl -Nq debug.ddb.scripting.scripts`" ]; then - /sbin/ddb /etc/ddb.conf + /sbin/ddb /etc/${product}-ddb.conf fi -if [ -e /root/force_fsck ]; then - echo "Forcing filesystem(s) check..." - /sbin/fsck -y -F -t ufs +fsck_forced_iterations=`/bin/kenv -q pfsense.fsck.force` +if [ ! -z "${fsck_forced_iterations}" ]; then + echo "Forcing filesystem check (${fsck_forced_iterations} times)..." + while [ ${fsck_forced_iterations} -gt 0 ]; do + /sbin/fsck -y -F -t ufs + fsck_forced_iterations=$((fsck_forced_iterations - 1)) + done fi -if [ "${PLATFORM}" != "cdrom" ]; then - FSCK_ACTION_NEEDED=0 - /sbin/fsck -p -F - case $? in - 0) - echo "Filesystems are clean, continuing..." - echo "Mounting filesystems..." - ;; - 8) - echo "Preen mode recommended running a check that will be performed now." - FSCK_ACTION_NEEDED=1 - ;; - *) - echo "Stopping boot is recommended because filesystem manual action is needed, nevertheless automated repair of the filesystem will be attempted." - FSCK_ACTION_NEEDED=1 - ;; - esac - - if [ ${FSCK_ACTION_NEEDED} = 1 ]; then - echo "WARNING: Trying to recover filesystem from inconsistency..." - /sbin/fsck -yF - fi - +if [ -e /root/force_growfs ]; then + /etc/rc.d/growfs onestart +fi + +FSCK_ACTION_NEEDED=0 +/sbin/fsck -p -F +case $? in +0) + echo "Filesystems are clean, continuing..." + echo "Mounting filesystems..." + ;; +8) + echo "Preen mode recommended running a check that will be performed now." + FSCK_ACTION_NEEDED=1 + ;; +*) + echo "Stopping boot is recommended because filesystem manual action is needed, nevertheless automated repair of the filesystem will be attempted." + FSCK_ACTION_NEEDED=1 + ;; +esac + +if [ ${FSCK_ACTION_NEEDED} = 1 ]; then + echo "WARNING: Trying to recover filesystem from inconsistency..." + /sbin/fsck -yF +fi + +/sbin/mount -a 2>/dev/null +mount_rc=$? +attempts=0 +while [ ${mount_rc} -ne 0 -a ${attempts} -lt 3 ]; do + /sbin/fsck -yF /sbin/mount -a 2>/dev/null mount_rc=$? - attempts=0 - while [ ${mount_rc} -ne 0 -a ${attempts} -lt 3 ]; do - /sbin/fsck -yF - /sbin/mount -a 2>/dev/null - mount_rc=$? - attempts=$((attempts+1)) - done - - if [ "${PLATFORM}" = "nanobsd" ]; then - # XXX This script does need all filesystems rw!!!! - # Put this workaround for now until better ways are found. - /sbin/mount -u -w -o sync,noatime / - /sbin/mount -u -w -o sync,noatime /cf - fi + attempts=$((attempts+1)) +done - # If /conf is a directory, convert it to a symlink to /cf/conf - if [ -d "/conf" ]; then - # If item is not a symlink then rm and recreate - CONFPOINTSTO=`readlink /conf` - if ! test "x$CONFPOINTSTO" = "x/cf/conf"; then - /bin/rm -rf /conf - /bin/ln -s /cf/conf /conf - fi +# If /conf is a directory, convert it to a symlink to /cf/conf +if [ -d "/conf" ]; then + # If item is not a symlink then rm and recreate + CONFPOINTSTO=`readlink /conf` + if ! test "x$CONFPOINTSTO" = "x/cf/conf"; then + /bin/rm -rf /conf + /bin/ln -s /cf/conf /conf fi +fi - USE_MFS_TMPVAR=$(/usr/local/sbin/read_xml_tag.sh boolean system/use_mfs_tmpvar) - unset MOVE_PKG_DATA - if [ "$PLATFORM" = "${product}" ]; then - # If use MFS var is disabled, move files back to place - if [ "${USE_MFS_TMPVAR}" != "true" -a -f /root/var/db/pkg/local.sqlite ]; then - MOVE_PKG_DATA=1 - rm -rf /var/db/pkg 2>/dev/null - rm -rf /var/cache/pkg 2>/dev/null - mv /root/var/db/pkg /var/db - mv /root/var/cache/pkg /var/cache - # If use MFS var is enabled, move files to a safe place - elif [ "${USE_MFS_TMPVAR}" = "true" -a -f /var/db/pkg/local.sqlite ]; then - MOVE_PKG_DATA=1 - /bin/mkdir -p /root/var/db /root/var/cache - mv /var/db/pkg /root/var/db - mv /var/cache/pkg /root/var/cache - fi - elif [ "${PLATFORM}" = "nanobsd" ]; then - MOVE_PKG_DATA=1 - fi +USE_MFS_TMPVAR=$(/usr/local/sbin/read_xml_tag.sh boolean system/use_mfs_tmpvar) +unset MOVE_PKG_DATA +# If use MFS var is disabled, move files back to place +if [ "${USE_MFS_TMPVAR}" != "true" -a -f /root/var/db/pkg/local.sqlite ]; then + MOVE_PKG_DATA=1 + rm -rf /var/db/pkg 2>/dev/null + rm -rf /var/cache/pkg 2>/dev/null + mv /root/var/db/pkg /var/db + mv /root/var/cache/pkg /var/cache +# If use MFS var is enabled, move files to a safe place +elif [ "${USE_MFS_TMPVAR}" = "true" -a -f /var/db/pkg/local.sqlite ]; then + MOVE_PKG_DATA=1 + /bin/mkdir -p /root/var/db /root/var/cache + mv /var/db/pkg /root/var/db + mv /var/cache/pkg /root/var/cache +fi - if [ "${PLATFORM}" = "nanobsd" ] || [ "${USE_MFS_TMPVAR}" = "true" ]; then - /etc/rc.embedded - fi +if [ "${USE_MFS_TMPVAR}" = "true" ]; then + /etc/rc.embedded +fi - if [ -n "${MOVE_PKG_DATA}" -o "${USE_MFS_TMPVAR}" = "true" ]; then - /bin/mkdir -p /var/db /var/cache - ln -sf ../../root/var/db/pkg /var/db/pkg - ln -sf ../../root/var/cache/pkg /var/cache/pkg - fi +if [ -n "${MOVE_PKG_DATA}" -o "${USE_MFS_TMPVAR}" = "true" ]; then + /bin/mkdir -p /var/db /var/cache + ln -sf ../../root/var/db/pkg /var/db/pkg + ln -sf ../../root/var/cache/pkg /var/cache/pkg fi # Make sure /home exists @@ -160,27 +150,18 @@ fi /bin/rm -f /root/TRIM_set /bin/rm -f /root/TRIM_unset -if [ "${PLATFORM}" = "nanobsd" ]; then - /sbin/kldstat -qm zfs - if [ $? -eq 0 ]; then +# Handle ZFS read-only case +/sbin/kldstat -qm zfs +if [ $? -eq 0 ]; then + ZFSFSAVAILABLE=$(/sbin/zfs mount 2>/dev/null | wc -l) + if [ $ZFSFSAVAILABLE -eq 0 ]; then /sbin/kldunload zfs - fi -elif [ "$PLATFORM" = "${product}" ]; then - # Handle ZFS read-only case - /sbin/kldstat -qm zfs - if [ $? -eq 0 ]; then - ZFSFSAVAILABLE=$(/sbin/zfs mount 2>/dev/null | wc -l) - if [ $ZFSFSAVAILABLE -eq 0 ]; then - /sbin/kldunload zfs - elif [ -f /usr/bin/grep ]; then - ZFSROOT=`/sbin/zfs mount | /usr/bin/grep ' /$' | /usr/bin/cut -d ' ' -f 1` - if [ "$ZFSROOT" != "" ]; then - /sbin/zfs set readonly=off $ZFSROOT - fi + elif [ -f /usr/bin/grep ]; then + ZFSROOT=`/sbin/zfs mount | /usr/bin/grep ' /$' | /usr/bin/cut -d ' ' -f 1` + if [ "$ZFSROOT" != "" ]; then + /sbin/zfs set readonly=off $ZFSROOT fi fi -elif [ "${PLATFORM}" = "cdrom" ]; then - /etc/rc.cdrom fi # Disable APM on ATA drives. Leaving this on will kill drives long-term, especially laptop drives, by generating excessive Load Cycles. @@ -198,57 +179,26 @@ fi # Use php -n here because we are not ready to load extensions yet varrunpath=$(/usr/local/bin/php -n /usr/local/sbin/read_global_var varrun_path "/var/run") -if [ "$PLATFORM" = "${product}" ] && [ "${USE_MFS_TMPVAR}" != "true" ]; then +if [ "${USE_MFS_TMPVAR}" != "true" ]; then /sbin/mdmfs -S -M -s 4m md $varrunpath fi -# Use php -n here because we are not ready to load extensions yet -hideplatform=$(/usr/local/bin/php -n /usr/local/sbin/read_global_var hideplatform) -if [ "$hideplatform" = "true" ]; then - platformbanner="" # hide the platform -else - platformbanner=" on the '${PLATFORM}' platform" -fi - echo cat /usr/local/share/pfSense/ascii-art/pfsense-logo-small.txt echo echo -echo "Welcome to ${product} ${version}${version_patch}${platformbanner}..." +echo "Welcome to ${product} ${version}${version_patch}..." echo /sbin/conscontrol mute off >/dev/null -if [ "$PLATFORM" = "${product}" ]; then - SWAPDEVICE=`/bin/cat /etc/fstab | /usr/bin/grep swap | /usr/bin/cut -f1` - /sbin/swapon -a 2>/dev/null >/dev/null - /etc/rc.savecore -fi - -if [ "$PLATFORM" = "cdrom" ] ; then - echo -n "Mounting unionfs directories..." - /bin/mkdir /tmp/unionfs - /bin/mkdir /tmp/unionfs/usr - /bin/mkdir /tmp/unionfs/root - /bin/mkdir /tmp/unionfs/sbin - /bin/mkdir /tmp/unionfs/bin - /bin/mkdir /tmp/unionfs/boot - /bin/mkdir /tmp/unionfs/confdefault - /sbin/mount_unionfs /tmp/unionfs/usr /usr/ - /sbin/mount_unionfs /tmp/unionfs/root /root/ - /sbin/mount_unionfs /tmp/unionfs/bin /bin/ - /sbin/mount_unionfs /tmp/unionfs/sbin /sbin/ - /sbin/mount_unionfs /tmp/unionfs/boot /boot/ - /sbin/mount_unionfs /tmp/unionfs/confdefault /conf.default/ - echo "done." -fi +SWAPDEVICE=`/bin/cat /etc/fstab | /usr/bin/grep swap | /usr/bin/cut -f1` +/sbin/swapon -a 2>/dev/null >/dev/null +/etc/rc.savecore # make some directories in /var -/bin/mkdir -p $varrunpath /var/log /var/etc /var/db/entropy /var/db/rrd /var/at/jobs/ /var/empty 2>/dev/null +/bin/mkdir -p $varrunpath /var/log /var/etc /var/db/entropy /var/db/rrd /var/at/jobs/ /var/empty /var/log/nginx 2>/dev/null /bin/rm -rf $varrunpath/* -if [ "$PLATFORM" != "${product}" ]; then - /bin/rm /var/log/* 2>/dev/null -fi # Cleanup configuration files from previous instance /bin/rm -rf /var/etc/* @@ -269,58 +219,19 @@ if [ -L /usr/local/etc/strongswan.conf ]; then rm -f /usr/local/etc/strongswan.conf fi -echo -n "Creating symlinks..." -# Repair symlinks if they are broken -if [ -f /etc/newsyslog.conf ]; then - /bin/rm -f /etc/newsyslog.conf -fi -if [ ! -L /etc/syslog.conf ]; then - /bin/rm -rf /etc/syslog.conf - if [ ! -f /var/etc/syslog.conf ]; then - touch /var/etc/syslog.conf +# Remove deprecated symlinks - #5538 +for f in /etc/hosts \ + /etc/resolv.conf \ + /etc/resolvconf.conf \ + /etc/syslog.conf; do + if [ -L "${f}" ]; then + rm -f ${f} fi - /bin/ln -s /var/etc/syslog.conf /etc/syslog.conf -fi - -# Repair symlinks if they are broken -if [ ! -L /etc/hosts ]; then - /bin/rm -rf /etc/hosts - /bin/ln -s /var/etc/hosts /etc/hosts -fi - -if [ ! -L /etc/resolv.conf ]; then - /bin/rm -rf /etc/resolv.conf - /bin/ln -s /var/etc/resolv.conf /etc/resolv.conf -fi - -if [ ! -L /etc/resolvconf.conf ]; then - /bin/rm -rf /etc/resolvconf.conf - /bin/ln -s /var/etc/resolvconf.conf /etc/resolvconf.conf -fi - -# Setup compatibility link for packages that -# have trouble overriding the PREFIX configure -# argument since we build our packages in a -# separated PREFIX area -# Only create if symlink does not exist. -if [ ! -h /tmp/tmp ]; then - /bin/ln -hfs / /tmp/tmp -fi +done # Make sure our /tmp is 777 + Sticky -if [ ! "$PLATFORM" = "cdrom" ] ; then - /bin/rm -rf /tmp/* -fi /bin/chmod 1777 /tmp -if [ ! "$PLATFORM" = "cdrom" ] ; then - # Malloc debugging check - if [ -L /etc/malloc.conf ]; then - #ln -s aj /etc/malloc.conf - /bin/rm /etc/malloc.conf - fi -fi - if [ ! -L /etc/dhclient.conf ]; then /bin/rm -rf /etc/dhclient.conf fi @@ -332,12 +243,9 @@ fi set -T trap "echo 'Reboot interrupted'; exit 1" 3 -# Remove old nameserver resolution files -/bin/rm -f /var/etc/nameserver* - echo -n "." DISABLESYSLOGCLOG=$(/usr/local/sbin/read_xml_tag.sh boolean system/disablesyslogclog) -LOG_FILES="system filter dhcpd vpn pptps poes l2tps openvpn portalauth ipsec ppp relayd wireless nginx ntpd gateways resolver routing" +LOG_FILES="system filter dhcpd vpn poes l2tps openvpn portalauth ipsec ppp relayd wireless nginx ntpd gateways resolver routing" DEFAULT_LOG_FILE_SIZE=$(/usr/local/sbin/read_xml_tag.sh string syslog/logfilesize) DEFAULT_LOG_FILE_SIZE=${DEFAULT_LOG_FILE_SIZE:-"511488"} @@ -404,15 +312,8 @@ ln -sf /etc/ssl/openssl.cnf \ /etc/rc.php_ini_setup 2>/tmp/php_errors.txt /usr/local/sbin/php-fpm -c /usr/local/etc/php.ini -y /usr/local/lib/php-fpm.conf -RD 2>&1 >/dev/null -# Launch external configuration loader for supported platforms -if [ "$PLATFORM" = "nanobsd" ]; then - /usr/local/sbin/fcgicli -f /etc/ecl.php -fi - -# Launch external configuration loader for supported platforms -if [ "$PLATFORM" = "${product}" ]; then - /usr/local/sbin/fcgicli -f /etc/ecl.php -fi +# Launch external configuration loader +/usr/local/sbin/fcgicli -f /etc/ecl.php if [ -f /etc/rc.custom_boot_early ]; then /bin/echo -n "Launching /etc/rc.custom_boot_early..."; @@ -428,13 +329,6 @@ echo -n "Launching the init system..." /bin/rm -f /cf/conf/backup/backup.cache /usr/bin/touch $varrunpath/booting -if [ "${PLATFORM}" = "nanobsd" ]; then - # XXX This script does need all filesystems rw!!!! - # Put this workaround for now until better ways are found. - /sbin/mount -u -f -r -o sync,noatime / - /sbin/mount -u -f -r -o sync,noatime /cf -fi - # Copy custom logo over if it's present if [ -d /usr/local/share/${product}/custom_logos ]; then cp -f /usr/local/share/${product}/custom_logos/*png \ @@ -483,7 +377,7 @@ fi # Log product version to syslog BUILDTIME=`cat /etc/version.buildtime` ARCH=`uname -m` -echo "$product ($PLATFORM) ${version}${version_patch} $ARCH $BUILDTIME" +echo "$product ${version}${version_patch} $ARCH $BUILDTIME" echo "Bootup complete" diff --git a/src/etc/pfSense-rc.shutdown b/src/etc/pfSense-rc.shutdown index 3c72106..dc6221f 100755 --- a/src/etc/pfSense-rc.shutdown +++ b/src/etc/pfSense-rc.shutdown @@ -3,7 +3,7 @@ # pfSense-rc.shutdown # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -39,18 +39,14 @@ HOME=/; export HOME PATH=/sbin:/bin:/usr/sbin:/usr/bin export PATH -# If PLATFORM is $product then remove -# temporary files on shutdown from /tmp/ -PLATFORM=`cat /etc/platform` -if [ "$PLATFORM" = "${product}" ]; then - find -x /tmp/* -type f -exec rm -f {} \; >/dev/null 2>&1 -fi +# Remove temporary files on shutdown from /tmp/ +find -x /tmp/* -type f -exec rm -f {} \; >/dev/null 2>&1 USE_MFS_TMPVAR=$(/usr/local/sbin/read_xml_tag.sh boolean system/use_mfs_tmpvar) DISK_NAME=`/bin/df /var/db/rrd | /usr/bin/tail -1 | /usr/bin/awk '{print $1;}'` DISK_TYPE=`/usr/bin/basename ${DISK_NAME} | /usr/bin/cut -c1-2` # If we are not on a full install, or if the full install wants RAM disks, or if the full install _was_ using RAM disks, but isn't for the next boot... -if [ "${PLATFORM}" != "${product}" ] || [ "${USE_MFS_TMPVAR}" = "true" ] || [ "${DISK_TYPE}" = "md" ]; then +if [ "${USE_MFS_TMPVAR}" = "true" ] || [ "${DISK_TYPE}" = "md" ]; then /etc/rc.backup_aliastables.sh /etc/rc.backup_rrd.sh /etc/rc.backup_dhcpleases.sh diff --git a/src/etc/pfSense.obsoletedfiles b/src/etc/pfSense.obsoletedfiles index ff07481..aaf596b 100644 --- a/src/etc/pfSense.obsoletedfiles +++ b/src/etc/pfSense.obsoletedfiles @@ -35,7 +35,6 @@ /etc/inc/sysctl.inc /etc/inc/uuid.php /etc/inc/xmlrpc.inc -/etc/inc/xmlrpc_client.inc /etc/inc/xmlrpc_server.inc /etc/inc/zeromq.inc /etc/inetd.conf @@ -466,7 +465,6 @@ /usr/local/bin/spawn-fcgi /usr/local/bin/tickadj /usr/local/bin/verifysig -/usr/local/etc/php/extensions.ini /usr/local/etc/pkg.conf /usr/local/info /usr/local/lib/engines @@ -765,6 +763,9 @@ /usr/local/share/nls /usr/local/share/pbi-keys /usr/local/share/pfSense/pfSense-repo-devel.conf +/usr/local/share/pfSense/post_upgrade_command +/usr/local/share/pfSense/post_upgrade_command.php +/usr/local/share/pfSense/pre_upgrade_command /usr/local/share/protocols /usr/local/share/sgml /usr/local/share/skel @@ -1092,7 +1093,11 @@ /var/db/rrd/71 /var/db/rrd/index.html /var/dhcpd/lib/libc.so.6 +/var/etc/hosts /var/etc/pppoe-vpn +/var/etc/resolv.conf +/var/etc/resolvconf.conf +/var/etc/syslog.conf /var/mail/_relayd /var/mail/unbound /usr/local/www/d3pie diff --git a/src/etc/phpshellsessions/changepassword b/src/etc/phpshellsessions/changepassword index f8ed4f0..287444a 100644 --- a/src/etc/phpshellsessions/changepassword +++ b/src/etc/phpshellsessions/changepassword @@ -2,7 +2,7 @@ * changepassword * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/disablecarp b/src/etc/phpshellsessions/disablecarp index 76991f6..d42181a 100644 --- a/src/etc/phpshellsessions/disablecarp +++ b/src/etc/phpshellsessions/disablecarp @@ -2,7 +2,7 @@ * disablecarp * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/disablecarpmaint b/src/etc/phpshellsessions/disablecarpmaint index ae01818..b14cfe0 100644 --- a/src/etc/phpshellsessions/disablecarpmaint +++ b/src/etc/phpshellsessions/disablecarpmaint @@ -2,7 +2,7 @@ * disablecarpmaint * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/disabledhcpd b/src/etc/phpshellsessions/disabledhcpd index 89aadf2..769c58c 100644 --- a/src/etc/phpshellsessions/disabledhcpd +++ b/src/etc/phpshellsessions/disabledhcpd @@ -2,7 +2,7 @@ * disabledhcpd * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/disablereferercheck b/src/etc/phpshellsessions/disablereferercheck index 8c740cb..0940e10 100644 --- a/src/etc/phpshellsessions/disablereferercheck +++ b/src/etc/phpshellsessions/disablereferercheck @@ -2,7 +2,7 @@ * disablereferercheck * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/enableallowallwan b/src/etc/phpshellsessions/enableallowallwan index 8965db7..5547ea2 100644 --- a/src/etc/phpshellsessions/enableallowallwan +++ b/src/etc/phpshellsessions/enableallowallwan @@ -2,7 +2,7 @@ * enableallowallwan * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/enablecarp b/src/etc/phpshellsessions/enablecarp index e98ca23..274bd41 100644 --- a/src/etc/phpshellsessions/enablecarp +++ b/src/etc/phpshellsessions/enablecarp @@ -2,7 +2,7 @@ * enablecarp * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/enablecarpmaint b/src/etc/phpshellsessions/enablecarpmaint index c0063ca..6f265cb 100644 --- a/src/etc/phpshellsessions/enablecarpmaint +++ b/src/etc/phpshellsessions/enablecarpmaint @@ -2,7 +2,7 @@ * enablecarpmaint * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/enablesshd b/src/etc/phpshellsessions/enablesshd index 65c12eb..5147eaa 100644 --- a/src/etc/phpshellsessions/enablesshd +++ b/src/etc/phpshellsessions/enablesshd @@ -2,7 +2,7 @@ * enablesshd * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/externalconfiglocator b/src/etc/phpshellsessions/externalconfiglocator index 8dccaa6..f6b856a 100644 --- a/src/etc/phpshellsessions/externalconfiglocator +++ b/src/etc/phpshellsessions/externalconfiglocator @@ -2,7 +2,7 @@ * externalconfiglocator * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/generateguicert b/src/etc/phpshellsessions/generateguicert index cc1030e..114c93d 100644 --- a/src/etc/phpshellsessions/generateguicert +++ b/src/etc/phpshellsessions/generateguicert @@ -2,7 +2,7 @@ * generateguicert * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/gitsync b/src/etc/phpshellsessions/gitsync index 2a8fdf2..26874c7 100644 --- a/src/etc/phpshellsessions/gitsync +++ b/src/etc/phpshellsessions/gitsync @@ -3,7 +3,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2010-2012 Erik Fonnesbeck - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -49,14 +49,15 @@ if (is_array($command_split)) { } $valid_args = array( - "--minimal" => "\tPerform a minimal copy of only the updated files.\n" . + "--minimal" => "\tPerform a copy of only the updated files.\n" . "\tNot recommended if the system has files modified by any method other\n" . "\tthan gitsync.\n", - "--diff" => "\tPerform a copy of only the files that are different or missing.\n" . + "--diff" => "\tPerform a copy of only the different and missing files.\n" . "\tRecommended for SSD if system has files modified by any method other\n" . "\tthan gitsync.\n", - "--verbose" => "\tDisplay constructed command. In combination with the --diff\n" . - "\toption, display the array of different and missing files.\n", + "--show-files" => "\tShow the updated, different and missing files.\n" . + "\t(when used with --minimal and --diff options)\n", + "--show-command" => "\tShow the constructed command.\n", "--dry-run" => "\tDry-run only. No files copied.\n", "--help" => "\tDisplay this help list.\n" ); @@ -152,7 +153,6 @@ function run_cmds($cmds) { } unlink_if_exists("/tmp/config.cache"); -conf_mount_rw(); if (!file_exists($GIT_BIN)) { require_once("pkg-utils.inc"); @@ -257,7 +257,6 @@ if (!$found) { } if (!$found) { echo "\nNo valid branch found. Exiting.\n\n"; - conf_mount_ro(); exit; } } @@ -301,16 +300,14 @@ if (!$args[0] && !$upgrading) { } while (!empty($merge_repo)); } -if ($branch == "RESTORE" && $g['platform'] == $g['product_name']) { +if ($branch == "RESTORE") { if (!file_exists("/root/cvssync_backup.tgz")) { echo "Sorry, we could not find a previous CVSSync backup file.\n"; - conf_mount_ro(); exit(); } echo "===> Restoring previous CVSSync backup... Please wait...\n"; exec("tar Uxpf /root/cvssync_backup.tgz -C /"); post_cvssync_commands(); - conf_mount_ro(); exit(); } else { $nobackup = true; // do not backup embedded @@ -369,26 +366,34 @@ foreach ($merge_repos as $merge_repo) { if ($ret <> 0) { echo "\nMerge failed. Aborting sync.\n\n"; run_cmds($git_cmd); - conf_mount_ro(); exit; } } +$updated_files_array[1] = array(); if (isset($args["--minimal"])) { if (file_exists("/etc/version.gitsync")) { $old_revision = trim(file_get_contents("/etc/version.gitsync")); } else if (file_exists("/etc/version.lastcommit")) { $old_revision = trim(file_get_contents("/etc/version.lastcommit")); } - $files_to_copy = strtr(shell_exec("cd $CODIR/pfSenseGITREPO/pfSenseGITREPO && {$GIT_BIN} diff --name-only --relative=src " . escapeshellarg($old_revision)), "\n", " "); - $tar_options = '-C ./src'; -} else { - $files_to_copy = '.'; - $tar_options = '-C ./src'; + + # Find updated files. + $updated_files = shell_exec("cd $CODIR/pfSenseGITREPO/pfSenseGITREPO && {$GIT_BIN} diff --name-only --relative=src " . escapeshellarg($old_revision)); + + # Get the path of each updated file. + preg_match_all('@(?:^(.+?)$)@sim', $updated_files, $updated_files_array, PREG_PATTERN_ORDER); + + if(isset($args["--show-files"])) { + echo "===> Updated Files: \n"; + print_r($updated_files_array[1]); + } } // Save new commit ID for later minimal file copies -exec("cd $CODIR/pfSenseGITREPO/pfSenseGITREPO && {$GIT_BIN} rev-parse -q --verify HEAD > /etc/version.gitsync"); +if(!isset($args["--dry-run"])) { + exec("cd $CODIR/pfSenseGITREPO/pfSenseGITREPO && {$GIT_BIN} rev-parse -q --verify HEAD > /etc/version.gitsync"); +} // Remove files that we do not want to overwrite the system with @unlink("{$CODIR}/pfSenseGITREPO/pfSenseGITREPO/src/etc/crontab"); @@ -409,13 +414,15 @@ exec("rm -rf {$CODIR}/pfSenseGITREPO/pfSenseGITREPO/src/conf*"); exec("rm -rf {$CODIR}/pfSenseGITREPO/pfSenseGITREPO/src/cf 2>/dev/null"); @chmod("{$CODIR}/pfSenseGITREPO/pfSenseGITREPO/src/tmp", 01777); +$different_files_array[1] = array(); +$missing_files_array[1] = array(); if(isset($args["--diff"])) { # Find different and missing files. $different_missing_files = shell_exec("/usr/bin/diff -qr / $CODIR/pfSenseGITREPO/pfSenseGITREPO/src/ | /usr/bin/grep -E '^(Files .*? and $CODIR/pfSenseGITREPO/pfSenseGITREPO/src/.*? differ)|(Only in $CODIR/pfSenseGITREPO/pfSenseGITREPO/src/)'"); # Get the path of each different or missing file. - preg_match_all('@(?:^Files .*? and '.$CODIR.'/pfSenseGITREPO/pfSenseGITREPO/src/(.*?) differ.*?$)@sim', $different_missing_files, $different_files_array, PREG_PATTERN_ORDER); - preg_match_all('@(?:^Only in '.$CODIR.'/pfSenseGITREPO/pfSenseGITREPO/src/(.*?)$)@sim', $different_missing_files, $missing_files_array, PREG_PATTERN_ORDER); + preg_match_all('@(?:^Files .*? and '.$CODIR.'/pfSenseGITREPO/pfSenseGITREPO/src/(.+?) differ.*?$)@sim', $different_missing_files, $different_files_array, PREG_PATTERN_ORDER); + preg_match_all('@(?:^Only in '.$CODIR.'/pfSenseGITREPO/pfSenseGITREPO/src/(.+?)$)@sim', $different_missing_files, $missing_files_array, PREG_PATTERN_ORDER); # Deal with diff's output format of missing files (path: missing_file). foreach ($missing_files_array[1] as $key => $file) { @@ -443,18 +450,7 @@ if(isset($args["--diff"])) { $missing_files_array[1][$key] = $file; } - # Convert the list from array to space separated quoted strings. Quoted for white space file name support. - $different_files = $missing_files = ''; - if (count($different_files_array[1]) > 0) - $different_files .= '"' . implode('" "', $different_files_array[1]) . '"'; - if (count($missing_files_array[1]) > 0) - $missing_files .= '"' . implode('" "', $missing_files_array[1]) . '"'; - - # Files to be copied. - $files_to_copy = trim($different_files . " " . $missing_files); - $tar_options = '-C ./src'; - - if(isset($args["--verbose"])) { + if(isset($args["--show-files"])) { echo "===> Different Files: \n"; print_r($different_files_array[1]); echo "===> Missing Files: \n"; @@ -462,16 +458,32 @@ if(isset($args["--diff"])) { } } -echo "===> Installing new files...\n"; +# Files to be copied. +if(isset($args["--minimal"]) || isset($args["--diff"])) { + $files_to_copy_array = array_merge($updated_files_array[1], $different_files_array[1], $missing_files_array[1]); + $files_to_copy_array = array_unique($files_to_copy_array); + + unset($updated_files_array, $different_files_array, $missing_files_array); -if ($g['platform'] == $g['product_name']) { - $command = "cd $CODIR/pfSenseGITREPO/pfSenseGITREPO ; tar -cpf - {$tar_options} {$files_to_copy} | (cd / ; tar -Uxpf -)"; + # Convert the list from an array to a space separated quoted string. Quoted for white space file name support. + if (count($files_to_copy_array) > 0) { # Leave the string empty/unset if there is nothing to copy. + $files_to_copy = '"' . implode('" "', $files_to_copy_array) . '"'; + } + $qty_files_to_copy = count($files_to_copy_array); + unset($files_to_copy_array); } else { - $command = "cd $CODIR/pfSenseGITREPO/pfSenseGITREPO ; tar -cpf - {$tar_options} {$files_to_copy} | (cd / ; tar -xpf -) 2>/dev/null"; + $files_to_copy = '.'; + $qty_files_to_copy = chr(8); } +$tar_options = '-C ./src'; + +echo "===> Installing $qty_files_to_copy new files...\n"; + +$command = "cd $CODIR/pfSenseGITREPO/pfSenseGITREPO ; tar -cpf - {$tar_options} {$files_to_copy} | (cd / ; tar -Uxpf -)"; + if (!empty($files_to_copy)) { - if(isset($args["--verbose"])) { + if(isset($args["--show-command"])) { echo "===> Command: \n$command\n"; } if(!isset($args["--dry-run"])) { @@ -505,4 +517,3 @@ if (!$upgrading) { echo "Your system is now sync'd.\n\n"; } -conf_mount_ro(); diff --git a/src/etc/phpshellsessions/installpkg b/src/etc/phpshellsessions/installpkg index ceea196..e7fabcf 100644 --- a/src/etc/phpshellsessions/installpkg +++ b/src/etc/phpshellsessions/installpkg @@ -2,7 +2,7 @@ * installpkg * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/listpkg b/src/etc/phpshellsessions/listpkg index cfea22f..55f2255 100644 --- a/src/etc/phpshellsessions/listpkg +++ b/src/etc/phpshellsessions/listpkg @@ -2,7 +2,7 @@ * listpkg * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/removepkgconfig b/src/etc/phpshellsessions/removepkgconfig index 12ae4cb..6bda04f 100644 --- a/src/etc/phpshellsessions/removepkgconfig +++ b/src/etc/phpshellsessions/removepkgconfig @@ -2,7 +2,7 @@ * removepkgconfig * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/removeshaper b/src/etc/phpshellsessions/removeshaper index 365a562..ab35e8e 100644 --- a/src/etc/phpshellsessions/removeshaper +++ b/src/etc/phpshellsessions/removeshaper @@ -2,7 +2,7 @@ * removeshaper * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/resetwebgui b/src/etc/phpshellsessions/resetwebgui index b29b1a3f..15d8044 100644 --- a/src/etc/phpshellsessions/resetwebgui +++ b/src/etc/phpshellsessions/resetwebgui @@ -2,7 +2,7 @@ * resetwebgui * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/restartdhcpd b/src/etc/phpshellsessions/restartdhcpd index b1740fa..0202020 100644 --- a/src/etc/phpshellsessions/restartdhcpd +++ b/src/etc/phpshellsessions/restartdhcpd @@ -2,7 +2,7 @@ * restartdhcpd * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/restartipsec b/src/etc/phpshellsessions/restartipsec index 33cd971..334b95d 100644 --- a/src/etc/phpshellsessions/restartipsec +++ b/src/etc/phpshellsessions/restartipsec @@ -2,7 +2,7 @@ * restartipsec * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/svc b/src/etc/phpshellsessions/svc index ab757a1..c5df36d 100644 --- a/src/etc/phpshellsessions/svc +++ b/src/etc/phpshellsessions/svc @@ -2,7 +2,7 @@ * svc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/phpshellsessions/uninstallpkg b/src/etc/phpshellsessions/uninstallpkg index b484194..f54927a 100644 --- a/src/etc/phpshellsessions/uninstallpkg +++ b/src/etc/phpshellsessions/uninstallpkg @@ -2,7 +2,7 @@ * uninstallpkg * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.backup_aliastables.sh b/src/etc/rc.backup_aliastables.sh index dfc8b72..7999b0a 100755 --- a/src/etc/rc.backup_aliastables.sh +++ b/src/etc/rc.backup_aliastables.sh @@ -7,8 +7,6 @@ # Save the alias tables database to the RAM disk store. if [ -d "${DBPATH}" ]; then - [ -z "$NO_REMOUNT" ] && /etc/rc.conf_mount_rw - if [ ! -d "${RAM_Disk_Store}" ]; then mkdir -p "${RAM_Disk_Store}" fi @@ -19,6 +17,4 @@ if [ -d "${DBPATH}" ]; then cd / && /usr/bin/tar -czf "${RAM_Disk_Store}/${filename}.tgz" -C / "${DBPATH}/${filename}" fi done - - [ -z "$NO_REMOUNT" ] && /etc/rc.conf_mount_ro fi diff --git a/src/etc/rc.backup_dhcpleases.sh b/src/etc/rc.backup_dhcpleases.sh index 73f83a8..7a8e741 100755 --- a/src/etc/rc.backup_dhcpleases.sh +++ b/src/etc/rc.backup_dhcpleases.sh @@ -2,7 +2,5 @@ # Save the DHCP lease database to the config path. if [ -d "/var/dhcpd/var/db" ]; then - /etc/rc.conf_mount_rw cd / && tar -czf /cf/conf/dhcpleases.tgz -C / var/dhcpd/var/db/ - /etc/rc.conf_mount_ro fi diff --git a/src/etc/rc.backup_rrd.sh b/src/etc/rc.backup_rrd.sh index c14ffc7..7914bd1 100755 --- a/src/etc/rc.backup_rrd.sh +++ b/src/etc/rc.backup_rrd.sh @@ -5,7 +5,6 @@ # Save the rrd databases to the config path. if [ -d "${RRDDBPATH}" ]; then - [ -z "$NO_REMOUNT" ] && /etc/rc.conf_mount_rw [ -f "${CF_CONF_PATH}/rrd.tgz" ] && /bin/rm -f "${CF_CONF_PATH}"/rrd.tgz tgzlist="" @@ -22,6 +21,5 @@ if [ -d "${RRDDBPATH}" ]; then cd / && /usr/bin/tar -czf "${CF_CONF_PATH}/rrd.tgz" ${tgzlist} /bin/rm -f "${RRDDBPATH}"/*.tgz fi - [ -z "$NO_REMOUNT" ] && /etc/rc.conf_mount_ro fi diff --git a/src/etc/rc.banner b/src/etc/rc.banner index 4b741bc..92d9e12 100755 --- a/src/etc/rc.banner +++ b/src/etc/rc.banner @@ -5,7 +5,7 @@ * * part of pfSense * Copyright (c) 2005 Colin Smith - * Copyright (c) 2005-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2005-2016 Rubicon Communications, LLC (Netgate) * All rights reserved * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -29,18 +29,8 @@ require_once("interfaces.inc"); $hostname = $config['system']['hostname']; $product = $g['product_name']; $machine = trim(`uname -m`); -$hideplatform = $g['hideplatform']; -if (!$hideplatform) { - if ($g['platform'] == $g['product_name']) { - $platform = "full-install"; - } else { - $platform = $g['platform']; - } - $platformbanner = " {$platform}"; -} - -print "*** Welcome to {$product} {$g['product_version_string']} ({$machine}{$platformbanner}) on {$hostname} ***\n"; +print "*** Welcome to {$product} {$g['product_version_string']} ({$machine}) on {$hostname} ***\n"; $iflist = get_configured_interface_with_descr(false, true); foreach ($iflist as $ifname => $friendly) { diff --git a/src/etc/rc.bootup b/src/etc/rc.bootup index 438bf68..83ca627 100755 --- a/src/etc/rc.bootup +++ b/src/etc/rc.bootup @@ -6,7 +6,7 @@ * originally based on m0n0wall (http://m0n0.ch/wall) * Copyright (c) 2003-2004 Manuel Kasper <mk@neon1.net>. * Copyright (c) 2009 Erik Kristensen - * Copyright (c) 2005-2016 Electric Sheep Fencing, LLC. All rights reserved. + * Copyright (c) 2005-2016 Rubicon Communications, LLC (Netgate). All rights reserved. * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -24,45 +24,6 @@ require_once("pkg-utils.inc"); -function rescue_detect_keypress() { - // How long do you want the script to wait before moving on (in seconds) - $timeout=9; - echo "\n"; - echo "[ Press R to enter recovery mode or ]\n"; - echo "[ press I to launch the installer ]\n\n"; - echo "(R)ecovery mode can assist by rescuing config.xml\n"; - echo "from a broken hard disk installation, etc.\n\n"; - echo "(I)nstaller will be invoked\n\n"; - echo "Timeout before auto boot continues (seconds): {$timeout}"; - $key = null; - exec("/bin/stty erase " . chr(8)); - while (!in_array($key, array("r", "R", "i", "I"))) { - echo chr(8) . "{$timeout}"; - `/bin/stty -icanon min 0 time 25`; - $key = trim(`KEY=\`dd count=1 2>/dev/null\`; echo \$KEY`); - `/bin/stty icanon`; - // Decrement our timeout value - $timeout--; - // If we have reached 0 exit and continue on - if ($timeout == 0) { - break; - } - } - // If R or I was pressed do our logic here - if (in_array($key, array("r", "R"))) { - putenv("TERM=xterm"); - echo "\n\nRecovery mode selected...\n"; - passthru("/usr/bin/env TERM=xterm /bin/tcsh"); - } else { - putenv("TERM=xterm"); - echo "\n\nInstaller mode selected...\n"; - passthru("/usr/bin/env TERM=xterm /bin/tcsh -c /scripts/lua_installer"); - } - - passthru("/etc/rc.reboot"); - exit; -} - echo " done.\n"; echo "Initializing..."; @@ -112,7 +73,6 @@ $physmem = $memory[0]; $realmem = $memory[1]; echo " done.\n"; -conf_mount_rw(); /* save dmesg output to file */ system_dmesg_save(); @@ -145,11 +105,6 @@ set_device_perms(); unmute_kernel_msgs(); echo "done.\n"; -// Display rescue configuration option -if ($g['platform'] == "cdrom") { - rescue_detect_keypress(); -} - echo "Loading configuration..."; parse_config_bootup(); echo "done.\n"; @@ -403,8 +358,7 @@ if (file_exists("/sbin/shutdown.old")) { } /* Resync / Reinstall packages if need be */ -if (file_exists('/conf/needs_package_sync') && - ($g['platform'] == $g['product_name'] || $g['platform'] == "nanobsd")) { +if (file_exists('/conf/needs_package_sync')) { mark_subsystem_dirty('packagelock'); if (package_reinstall_all()) { @unlink('/conf/needs_package_sync'); @@ -413,9 +367,7 @@ if (file_exists('/conf/needs_package_sync') && } /* Detect installed binary pkgs that are not registered in the system */ -if ($g['platform'] != "cdrom") { - register_all_installed_packages(); -} +register_all_installed_packages(); /* Give syslogd a kick after everything else has been initialized, otherwise it can occasionally fail to route syslog messages properly on both IPv4 and IPv6 */ @@ -435,6 +387,5 @@ if ($ipsec_dynamic_hosts || !empty($filterdns)) { led_normalize(); -conf_mount_ro(); ?> diff --git a/src/etc/rc.captiveportal_configure b/src/etc/rc.captiveportal_configure index 8ca7b2f..ead5f68 100755 --- a/src/etc/rc.captiveportal_configure +++ b/src/etc/rc.captiveportal_configure @@ -4,7 +4,7 @@ * rc.captiveportal_configure * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.captiveportal_configure_mac b/src/etc/rc.captiveportal_configure_mac index fa7a850..8b51904 100755 --- a/src/etc/rc.captiveportal_configure_mac +++ b/src/etc/rc.captiveportal_configure_mac @@ -4,7 +4,7 @@ * rc.captiveportal_configure_mac * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2015 Electric Sheep Fencing, LLC + * Copyright (c) 2015 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -39,6 +39,6 @@ $filename = "{$g['tmp_path']}/{$cpzoneidx}_mac_{$startidx}_{$stopidx}"; captiveportal_passthrumac_configure($filename, $startidx, $stopidx); //log_error("STOPPED: " .time() . " - {$cpzone} : $startidx : {$stopidx} : {$cpzoneidx} : {$filename}"); -mwexec("/sbin/ipfw -x {$cpzoneidx} -q {$filename}"); +mwexec("/sbin/ipfw -q {$filename}"); @unlink($filename); ?> diff --git a/src/etc/rc.carpbackup b/src/etc/rc.carpbackup index b537411..8a0c2b7 100755 --- a/src/etc/rc.carpbackup +++ b/src/etc/rc.carpbackup @@ -4,7 +4,7 @@ * rc.carpbackup * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.carpmaster b/src/etc/rc.carpmaster index d536948..d960d9c 100755 --- a/src/etc/rc.carpmaster +++ b/src/etc/rc.carpmaster @@ -4,7 +4,7 @@ * rc.carpmaster * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.cdrom b/src/etc/rc.cdrom deleted file mode 100755 index 0296a12..0000000 --- a/src/etc/rc.cdrom +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -# -# rc.cdrom -# -# part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC -# All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Size of memory file system /cf/conf partition -partsize="6m" - -export VARMFS_COPYDBPKG=yes - -for i in tmp varmfs etcmfs; do - if [ -f /etc/rc.d/$i ]; then - sh /etc/rc.d/$i start - fi -done - -# Start PFI -/bin/sh /scripts/pfi start - -# If PFI did not find a config, we should create -# a tiny mfs under /cf/conf and populate with stock -# configuration. -if [ ! -f /conf/config.xml ]; then - echo -n "Generating a MFS /conf partition... " - device=$(mdconfig -a -t malloc -s ${partsize}) - newfs /dev/${device} > /dev/null 2>&1 - mount /dev/${device} /cf/conf - cp /conf.default/* /cf/conf - echo "done." -fi - -echo -n "Generating a MFS /home partition... " -device=$(mdconfig -a -t malloc -s ${partsize}) -newfs /dev/${device} > /dev/null 2>&1 -mount /dev/${device} /home -echo "done." - -# Create some needed directories -/bin/mkdir -p /var/tmp/vi.recover/ diff --git a/src/etc/rc.conf_mount_ro b/src/etc/rc.conf_mount_ro index be115da..9c8b903 100755 --- a/src/etc/rc.conf_mount_ro +++ b/src/etc/rc.conf_mount_ro @@ -4,7 +4,7 @@ * rc.conf_mount_ro * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004 Electric Sheep Fencing, LLC + * Copyright (c) 2004 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -20,8 +20,6 @@ * limitations under the License. */ -require_once("config.inc"); - -conf_mount_ro(); +/* Do nothing */ ?> diff --git a/src/etc/rc.conf_mount_rw b/src/etc/rc.conf_mount_rw index 2979097..0910720 100755 --- a/src/etc/rc.conf_mount_rw +++ b/src/etc/rc.conf_mount_rw @@ -4,7 +4,7 @@ * rc.conf_mount_rw * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004 Electric Sheep Fencing, LLC + * Copyright (c) 2004 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -20,8 +20,6 @@ * limitations under the License. */ -require_once("config.inc"); - -conf_mount_rw(); +/* Do nothing */ ?> diff --git a/src/etc/rc.disable_hdd_apm b/src/etc/rc.disable_hdd_apm index 8744d7b..d373134 100755 --- a/src/etc/rc.disable_hdd_apm +++ b/src/etc/rc.disable_hdd_apm @@ -3,7 +3,7 @@ # rc.disable_hdd_apm # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.dumpon b/src/etc/rc.dumpon index 977c7fb..e8d3817 100755 --- a/src/etc/rc.dumpon +++ b/src/etc/rc.dumpon @@ -3,7 +3,7 @@ # rc.dumpon # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Based on src/etc/rc.d/dumpon from FreeBSD diff --git a/src/etc/rc.dyndns.update b/src/etc/rc.dyndns.update index cf0d1b7..4d959f2 100755 --- a/src/etc/rc.dyndns.update +++ b/src/etc/rc.dyndns.update @@ -4,7 +4,7 @@ * rc.dyndns.update * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004 Electric Sheep Fencing, LLC + * Copyright (c) 2004 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.embedded b/src/etc/rc.embedded index 11f8b3f..69bee65 100755 --- a/src/etc/rc.embedded +++ b/src/etc/rc.embedded @@ -3,7 +3,7 @@ # rc.embedded # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.expireaccounts b/src/etc/rc.expireaccounts index 6a57ae0..c554d81 100755 --- a/src/etc/rc.expireaccounts +++ b/src/etc/rc.expireaccounts @@ -5,7 +5,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2009 Shrew Soft Inc. - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.filter_configure b/src/etc/rc.filter_configure index 0342ecf..1f48b30 100755 --- a/src/etc/rc.filter_configure +++ b/src/etc/rc.filter_configure @@ -4,7 +4,7 @@ * rc.filter_configure * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004 Electric Sheep Fencing, LLC + * Copyright (c) 2004 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.filter_configure_sync b/src/etc/rc.filter_configure_sync index baea05b..6b9621e 100755 --- a/src/etc/rc.filter_configure_sync +++ b/src/etc/rc.filter_configure_sync @@ -4,7 +4,7 @@ * rc.filter_configure_sync * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004 Electric Sheep Fencing, LLC + * Copyright (c) 2004 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.filter_synchronize b/src/etc/rc.filter_synchronize index 88bebab..a6f6aa7 100755 --- a/src/etc/rc.filter_synchronize +++ b/src/etc/rc.filter_synchronize @@ -6,7 +6,7 @@ * part of pfSense (https://www.pfsense.org) * Copyright (c) 2005 Bill Marquette * Copyright (c) 2006 Peter Allgeyer - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) @@ -31,8 +31,8 @@ require_once("config.inc"); require_once("functions.inc"); require_once("filter.inc"); require_once("shaper.inc"); -require_once("XML/RPC2/Client.php"); require_once("interfaces.inc"); +require_once("xmlrpc_client.inc"); /* * backup_vip_config_section($section): returns as an xml file string of @@ -85,75 +85,35 @@ function remove_special_characters($string) { return $string; } -function carp_check_version($url, $username, $password, $method = 'host_firmware_version') { +function carp_check_version() { global $config, $g; if (file_exists("{$g['varrun_path']}/booting") || platform_booting()) { return; } - $options = array( - 'prefix' => 'pfsense.', - 'sslverify' => false, - 'connectionTimeout' => 240 - ); + $rpc_client = new pfsense_xmlrpc_client(); + $resp = $rpc_client->xmlrpc_method('host_firmware_version'); - $numberofruns = 0; - while ($numberofruns < 2) { - $numberofruns++; - - $cli = XML_RPC2_Client::create($url, $options); - if (!is_object($cli)) { - $error = "A communications error occurred while attempting XMLRPC sync with username {$username} {$url}."; - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); - continue; - } - - try { - $resp = $cli->$method($username, $password); - } catch (XML_RPC2_FaultException $e) { - // The XMLRPC server returns a XMLRPC error - $error = 'Exception calling XMLRPC method ' . $method . ' #' . $e->getFaultCode() . ' : ' . $e->getFaultString(); - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); - continue; - } catch (Exception $e) { - // Other errors (HTTP or networking problems...) - $error = 'Exception calling XMLRPC method ' . $method . ' #' . $e->getMessage(); - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); - continue; - } - - if (!is_array($resp)) { - if (trim($resp) == "Authentication failed") { - $error = "An authentication failure occurred while trying to access {$url} ({$method})."; - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); - return false; - } - } elseif (!isset($resp['config_version']) || - ($resp['config_version'] != $config['version'])) { - update_filter_reload_status("The other member is on a different configuration version of {$g['product_name']}. Sync will not be done to prevent problems!"); - log_error("The other member is on a different configuration version of {$g['product_name']}. Sync will not be done to prevent problems!"); - return false; - } else { - return true; - } + log_error(sprintf(gettext("XMLRPC versioncheck:").$resp['config_version'] ." -- ". $config['version'])); + if (!isset($resp['config_version']) || + ($resp['config_version'] != $config['version'])) { + update_filter_reload_status("The other member is on a different configuration version of {$g['product_name']}. Sync will not be done to prevent problems!"); + log_error("The other member is on a different configuration version of {$g['product_name']}. Sync will not be done to prevent problems!"); + return false; + } else { + return true; } return false; } -function carp_sync_xml($url, $username, $password, $sections, $method = 'restore_config_section') { +function carp_sync_xml($sections) { global $config, $g; if (file_exists("{$g['varrun_path']}/booting") || platform_booting()) { return true; } - update_filter_reload_status("Syncing CARP data to {$url}"); - /* make a copy of config */ $config_copy = $config; @@ -243,58 +203,19 @@ function carp_sync_xml($url, $username, $password, $sections, $method = 'restore break; case 'authserver': $xml['system'][$section] = $config_copy['system'][$section]; + break; default: $xml[$section] = $config_copy[$section]; } } - - $options = array( - 'prefix' => 'pfsense.', - 'sslverify' => false, - 'connectionTimeout' => 240 - ); - - $numberofruns = 0; - while ($numberofruns < 2) { - $numberofruns++; - - log_error("Beginning XMLRPC sync to {$url}."); - $cli = XML_RPC2_Client::create($url, $options); - if (!is_object($cli)) { - $error = "A communications error occurred while attempting XMLRPC sync with username {$username} {$url}."; - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); - continue; - } - - try { - $resp = $cli->$method($username, $password, $xml); - } catch (XML_RPC2_FaultException $e) { - // The XMLRPC server returns a XMLRPC error - $error = 'Exception calling XMLRPC method ' . $method . '#' . $e->getFaultCode() . ' : ' . $e->getFaultString(); - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); - continue; - } catch (Exception $e) { - // Other errors (HTTP or networking problems...) - $error = 'Exception calling XMLRPC method ' . $method . ' #' . $e->getMessage(); - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); - continue; - } - - if (!is_array($resp) && trim($resp) == "Authentication failed") { - $error = "An authentication failure occurred while trying to access {$url} ($method)."; - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); - return false; - } else { - log_error("XMLRPC sync successfully completed with {$url}."); - update_filter_reload_status("XMLRPC sync successfully completed with {$url}."); - return true; - } + + $rpc_client = new pfsense_xmlrpc_client(); + $resp = $rpc_client->xmlrpc_method('restore_config_section', $xml); + if ($resp != null) { + $url = $rpc_client->getUrl(); + update_filter_reload_status("XMLRPC sync successfully completed with {$url}."); + return true; } - return false; } @@ -311,29 +232,6 @@ if (is_array($config['hasync'])) { return; } - /* - * XXX: The way we're finding the port right now is really suboptimal - - * we can't assume that the other machine is setup identically. - */ - if (!empty($config['system']['webgui']['protocol'])) { - $synchronizetoip = $config['system']['webgui']['protocol']; - $synchronizetoip .= "://"; - } - - /* if port is empty lets rely on the protocol selection */ - $port = $config['system']['webgui']['port']; - if (empty($port)) { - if ($config['system']['webgui']['protocol'] == "http") { - $port = "80"; - } else { - $port = "443"; - } - } - - if (is_ipaddrv6($hasync['synchronizetoip'])) { - $hasync['synchronizetoip'] = "[{$hasync['synchronizetoip']}]"; - } - $synchronizetoip .= $hasync['synchronizetoip'] . ":{$port}/xmlrpc.php"; if ($hasync['synchronizerules'] != "") { if (!is_array($config['filter'])) { $config['filter'] = array(); @@ -425,6 +323,9 @@ if (is_array($config['hasync'])) { $sections[] = 'group'; } if ($hasync['synchronizeauthservers'] != "") { + if (!is_array($config['system']['authserver'])) { + $config['system']['authserver'] = array(); + } $sections[] = 'authserver'; } if ($hasync['synchronizednsforwarder'] != "") { @@ -452,51 +353,17 @@ if (is_array($config['hasync'])) { log_error("Nothing has been configured to be synched. Skipping...."); return; } - - if (empty($hasync['username'])) { - $username = "admin"; - } else { - $username = $hasync['username']; - } - - if (!carp_check_version($synchronizetoip, $username, $hasync['password'])) { + + if (!carp_check_version()) { return; } update_filter_reload_status("Signaling CARP reload signal..."); - if (!carp_sync_xml($synchronizetoip, $username, $hasync['password'], $sections)) { + if (!carp_sync_xml($sections)) { return; } - $options = array( - 'prefix' => 'pfsense.', - 'sslverify' => false, - 'connectionTimeout' => 900 - ); - - $cli = XML_RPC2_Client::create($synchronizetoip, $options); - if (!is_object($cli)) { - $error = "A communications error occurred while attempting Filter sync with username {$username} {$synchronizetoip}."; - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); - } else { - try { - $resp = $cli->filter_configure($username, $hasync['password']); - } catch (XML_RPC2_FaultException $e) { - // The XMLRPC server returns a XMLRPC error - $error = 'Exception calling XMLRPC method filter_configure #' . $e->getFaultCode() . ' : ' . $e->getFaultString(); - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); - return; - } catch (Exception $e) { - // Other errors (HTTP or networking problems...) - $error = 'Exception calling XMLRPC method filter_configure #' . $e->getMessage(); - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); - return; - } - log_error("Filter sync successfully completed with {$synchronizetoip}."); - } + $rpc_client = new pfsense_xmlrpc_client(); + $resp = $rpc_client->xmlrpc_method('filter_configure', "", 900); + } - -?> diff --git a/src/etc/rc.gateway_alarm b/src/etc/rc.gateway_alarm index 8ec4669..2ac516e 100755 --- a/src/etc/rc.gateway_alarm +++ b/src/etc/rc.gateway_alarm @@ -2,7 +2,7 @@ # # rc.gateway_alarm # -# Copyright (c) 2015 Electric Sheep Fencing, LLC. All rights reserved. +# Copyright (c) 2015 Rubicon Communications, LLC (Netgate). All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/src/etc/rc.initial b/src/etc/rc.initial index 2280310..4dcfcd5 100755 --- a/src/etc/rc.initial +++ b/src/etc/rc.initial @@ -3,7 +3,7 @@ # rc.initial # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # originally based on m0n0wall (http://neon1.net/m0n0wall) @@ -58,9 +58,6 @@ done CONFIG="/cf/conf/config.xml" WORD="https" -# Set our operating platform -PLATFORM=`cat /etc/platform` - # endless loop while : ; do @@ -88,10 +85,6 @@ for i in /var/db/pfi/capable_*; do fi done -if [ "$PLATFORM" = "cdrom" ]; then - option99="99) Install ${product} to a hard drive, etc." -fi - # display a cheap menu echo "" echo " 0) Logout (SSH only) 9) pfTop" @@ -105,10 +98,6 @@ echo " 7) Ping host 16) Restart PHP-FPM" echo " 8) Shell" echo " ${option98} " -if [ "${option99}" != "" ]; then - /bin/echo "${option99}" -fi - echo read -p "Enter an option: " opmode echo @@ -171,13 +160,6 @@ case ${opmode} in /etc/rc.initial.store_config_to_removable_device fi ;; -99) - if [ -e /dev/ukbd0 ]; then - env TERM=xterm /scripts/lua_installer - else - /scripts/lua_installer - fi - ;; 100) if grep "$WORD" "$CONFIG"; then links "https://localhost" diff --git a/src/etc/rc.initial.defaults b/src/etc/rc.initial.defaults index afbf947..20a051a 100755 --- a/src/etc/rc.initial.defaults +++ b/src/etc/rc.initial.defaults @@ -4,7 +4,7 @@ * rc.initial.defaults * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/etc/rc.initial.halt b/src/etc/rc.initial.halt index 78ff116..1a42a59 100755 --- a/src/etc/rc.initial.halt +++ b/src/etc/rc.initial.halt @@ -5,7 +5,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2004 Bachman Kharazmi - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/etc/rc.initial.password b/src/etc/rc.initial.password index 82dc9b5..661e17c 100755 --- a/src/etc/rc.initial.password +++ b/src/etc/rc.initial.password @@ -4,7 +4,7 @@ * rc.initial.password * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/etc/rc.initial.ping b/src/etc/rc.initial.ping index 6f563fd..49ebbda 100755 --- a/src/etc/rc.initial.ping +++ b/src/etc/rc.initial.ping @@ -4,7 +4,7 @@ * rc.initial.ping * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/etc/rc.initial.reboot b/src/etc/rc.initial.reboot index d5bd802..0380f7c 100755 --- a/src/etc/rc.initial.reboot +++ b/src/etc/rc.initial.reboot @@ -4,7 +4,7 @@ * rc.initial.reboot * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) @@ -33,13 +33,31 @@ require_once("captiveportal.inc"); $fp = fopen('php://stdin', 'r'); echo "\n" . sprintf(gettext("%s will reboot. This may take a few minutes, depending on your hardware."), $g['product_name']) . "\n"; -echo gettext("Do you want to proceed [y|n]?") . " "; +echo gettext("Do you want to proceed?") . "\n\n"; +echo " " . gettext("Y/y: Reboot normally") . "\n"; +echo " " . gettext("S: Reboot into Single User Mode (requires console access!)") . "\n"; +echo " " . gettext("F: Reboot and run a filesystem check") . "\n\n"; -if (strcasecmp(chop(fgets($fp)), "y") == 0) { - echo "\n" . sprintf(gettext("%s is rebooting now."), $g['product_name']) . "\n"; - system_reboot_sync(); +echo gettext("Enter an option:") . " "; + +switch (chop(fgets($fp))) { + case "S": + mwexec('/sbin/nextboot -o "-s" -k kernel'); + echo "\n" . sprintf(gettext("%s is rebooting into single user mode now."), $g['product_name']) . "\n"; + system_reboot_sync(); + break; + case "F": + mwexec('/sbin/nextboot -e "pfsense.fsck.force=5"'); + echo "\n" . sprintf(gettext("%s is rebooting for a filesystem check now."), $g['product_name']) . "\n"; + system_reboot_sync(); + break; + case "Y": + case "y": + echo "\n" . sprintf(gettext("%s is rebooting now."), $g['product_name']) . "\n"; + system_reboot_sync(); + break; } fclose($fp); - +echo "\n"; ?> diff --git a/src/etc/rc.initial.setlanip b/src/etc/rc.initial.setlanip index abcbc43..3b4f875 100755 --- a/src/etc/rc.initial.setlanip +++ b/src/etc/rc.initial.setlanip @@ -4,7 +4,7 @@ * rc.initial.setlanip * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/etc/rc.initial.setports b/src/etc/rc.initial.setports index 75b1170..8a91052 100755 --- a/src/etc/rc.initial.setports +++ b/src/etc/rc.initial.setports @@ -4,7 +4,7 @@ * rc.initial.setports * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/etc/rc.initial.store_config_to_removable_device b/src/etc/rc.initial.store_config_to_removable_device index ab9f343..7f9ec24 100755 --- a/src/etc/rc.initial.store_config_to_removable_device +++ b/src/etc/rc.initial.store_config_to_removable_device @@ -4,7 +4,7 @@ * rc.initial.store_config_to_removable_device * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/etc/rc.initial.toggle_sshd b/src/etc/rc.initial.toggle_sshd index cdd5425..59699c9 100755 --- a/src/etc/rc.initial.toggle_sshd +++ b/src/etc/rc.initial.toggle_sshd @@ -5,7 +5,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2004 Fred Mol <fredmol@xs4all.nl>. - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -25,7 +25,6 @@ require_once("config.inc"); require_once("functions.inc"); require_once("filter.inc"); -conf_mount_rw(); $fp = fopen('php://stdin', 'r'); @@ -63,4 +62,3 @@ if (isset($config['system']['enablesshd'])) { fclose($fp); -conf_mount_ro(); diff --git a/src/etc/rc.interfaces_carp_configure b/src/etc/rc.interfaces_carp_configure index 4d38d04..b9b3f3e 100755 --- a/src/etc/rc.interfaces_carp_configure +++ b/src/etc/rc.interfaces_carp_configure @@ -4,7 +4,7 @@ * rc.interfaces_carp_configure * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.interfaces_lan_configure b/src/etc/rc.interfaces_lan_configure index 901648b..32038f5 100755 --- a/src/etc/rc.interfaces_lan_configure +++ b/src/etc/rc.interfaces_lan_configure @@ -4,7 +4,7 @@ * rc.interfaces_lan_configure * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.interfaces_opt_configure b/src/etc/rc.interfaces_opt_configure index 91176e2..ab40e2b 100755 --- a/src/etc/rc.interfaces_opt_configure +++ b/src/etc/rc.interfaces_opt_configure @@ -4,7 +4,7 @@ * rc.interfaces_opt_configure * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.interfaces_wan_configure b/src/etc/rc.interfaces_wan_configure index e855eb6..f9c77af 100755 --- a/src/etc/rc.interfaces_wan_configure +++ b/src/etc/rc.interfaces_wan_configure @@ -4,7 +4,7 @@ * rc.interfaces_wan_configure * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.kill_states b/src/etc/rc.kill_states index e434617..12715ac 100755 --- a/src/etc/rc.kill_states +++ b/src/etc/rc.kill_states @@ -4,7 +4,7 @@ * rc.kill_states * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.linkup b/src/etc/rc.linkup index 2a13ec4..e211edd 100755 --- a/src/etc/rc.linkup +++ b/src/etc/rc.linkup @@ -4,7 +4,7 @@ * rc.linkup * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.nanobsd_switch_boot_slice b/src/etc/rc.nanobsd_switch_boot_slice deleted file mode 100755 index 1567e91..0000000 --- a/src/etc/rc.nanobsd_switch_boot_slice +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/local/bin/php-cgi -q -<?php -/* - * rc.nanobsd_switch_boot_slice - * - * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC - * All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -require_once("globals.inc"); -require_once("config.inc"); -require_once("pfsense-utils.inc"); - -global $g; -global $SLICE, $OLDSLICE, $TOFLASH, $COMPLETE_PATH, $COMPLETE_BOOT_PATH; -global $GLABEL_SLICE, $UFS_ID, $OLD_UFS_ID, $BOOTFLASH; -global $BOOT_DEVICE, $REAL_BOOT_DEVICE, $BOOT_DRIVE, $ACTIVE_SLICE; -nanobsd_detect_slice_info(); - -if ($g['platform'] != "nanobsd") { - echo "This script can only be used on NanoBSD (embedded) images.\n"; - return 1; -} - -echo "Boot slice : {$BOOTFLASH} ({$BOOT_DEVICE})\n"; -echo "Active slice: {$ACTIVE_SLICE}\n\n"; - -echo "Switching active slice..."; -nanobsd_switch_boot_slice(); -echo "Done.\n\n"; -nanobsd_detect_slice_info(); -echo "Boot slice : {$BOOTFLASH} ({$BOOT_DEVICE})\n"; -echo "Active slice: {$ACTIVE_SLICE}\n\n"; -?> diff --git a/src/etc/rc.newipsecdns b/src/etc/rc.newipsecdns index 11484b6..4670b37 100755 --- a/src/etc/rc.newipsecdns +++ b/src/etc/rc.newipsecdns @@ -5,7 +5,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2009 Seth Mos <seth.mos@dds.nl>. - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/etc/rc.newroutedns b/src/etc/rc.newroutedns index 48477a7..8485368 100755 --- a/src/etc/rc.newroutedns +++ b/src/etc/rc.newroutedns @@ -4,7 +4,7 @@ * rc.newroutedns * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.newwanip b/src/etc/rc.newwanip index 66da862..920c1e5 100755 --- a/src/etc/rc.newwanip +++ b/src/etc/rc.newwanip @@ -4,7 +4,7 @@ * rc.newwanip * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2006-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2006-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/etc/rc.newwanipv6 b/src/etc/rc.newwanipv6 index a97f48d..f669f5b 100755 --- a/src/etc/rc.newwanipv6 +++ b/src/etc/rc.newwanipv6 @@ -4,7 +4,7 @@ * rc.newwanipv6 * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2006-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2006-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/etc/rc.notify_message b/src/etc/rc.notify_message index b6376c2..73dfecd 100755 --- a/src/etc/rc.notify_message +++ b/src/etc/rc.notify_message @@ -4,7 +4,7 @@ * rc.notify_message * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2010-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2010-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.ntpdate b/src/etc/rc.ntpdate index 8f79980..1f1e9c6 100755 --- a/src/etc/rc.ntpdate +++ b/src/etc/rc.ntpdate @@ -4,7 +4,7 @@ * rc.ntpdate * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.openvpn b/src/etc/rc.openvpn index 8c0267a..7d1644a 100755 --- a/src/etc/rc.openvpn +++ b/src/etc/rc.openvpn @@ -5,7 +5,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2009 Seth Mos <seth.mos@dds.nl>. - * Copyright (c) 2007-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2007-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/etc/rc.packages b/src/etc/rc.packages index f2d7acf..b0f37b3 100755 --- a/src/etc/rc.packages +++ b/src/etc/rc.packages @@ -4,7 +4,7 @@ * rc.packages * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.php-fpm_restart b/src/etc/rc.php-fpm_restart index f77a3fa..3af827e 100755 --- a/src/etc/rc.php-fpm_restart +++ b/src/etc/rc.php-fpm_restart @@ -3,7 +3,7 @@ # rc.php-fpm-restart # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2014-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2014-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # originally based on m0n0wall (http://neon1.net/m0n0wall) @@ -28,7 +28,6 @@ sleep 2 # Run the php.ini setup file and populate # /usr/local/etc/php.ini -/etc/rc.conf_mount_rw /etc/rc.php_ini_setup 2>/tmp/php_errors.txt /bin/rm -f /var/run/php-fpm.pid 2>/dev/null /bin/rm -f /var/run/php-fpm.socket 2>/dev/null @@ -37,7 +36,6 @@ if [ -f /tmp/xmlrpc.lock ]; then echo ">>> Found XMLRPC lock. Removing." | /usr/bin/logger -p daemon.info -i -t rc.php-fpm_restart rm /tmp/xmlrpc.lock fi -/etc/rc.conf_mount_ro echo ">>> Restarting php-fpm" | /usr/bin/logger -p daemon.info -i -t rc.php-fpm_restart echo ">>> Starting php-fpm" /usr/local/sbin/php-fpm -c /usr/local/etc/php.ini -y /usr/local/lib/php-fpm.conf -RD 2>&1 >/dev/null diff --git a/src/etc/rc.php_ini_setup b/src/etc/rc.php_ini_setup index d1ea413..f54dcdb 100755 --- a/src/etc/rc.php_ini_setup +++ b/src/etc/rc.php_ini_setup @@ -3,7 +3,7 @@ # rc.php_ini_setup # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2014-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2014-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -20,7 +20,6 @@ # # Set our operating platform -PLATFORM=`/bin/cat /etc/platform` VERSION=`/bin/cat /etc/version` MIN_REALMEM_FOR_OPCACHE=512 @@ -70,11 +69,7 @@ else fi # Set upload directory -if [ "$PLATFORM" = "nanobsd" ]; then - UPLOADTMPDIR=$(/usr/local/sbin/read_global_var upload_path "/root") -else - UPLOADTMPDIR="/tmp" -fi +UPLOADTMPDIR="/tmp" # Define php modules. Do not add .so, it will # be done automatically by the script below. @@ -266,7 +261,7 @@ suhosin.post.max_value_length = 500000 suhosin.request.max_array_index_length = 256 suhosin.request.max_vars = 5000 suhosin.request.max_value_length = 500000 -suhosin.memory_limit = 536870912 +suhosin.memory_limit = 805306368 EOF diff --git a/src/etc/rc.prunecaptiveportal b/src/etc/rc.prunecaptiveportal index b6e67e5..8a5253b 100755 --- a/src/etc/rc.prunecaptiveportal +++ b/src/etc/rc.prunecaptiveportal @@ -4,7 +4,7 @@ * rc.prunecaptiveportal * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/etc/rc.reboot b/src/etc/rc.reboot index 4d21678..f795dec 100755 --- a/src/etc/rc.reboot +++ b/src/etc/rc.reboot @@ -3,7 +3,7 @@ # rc.reboot # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -28,18 +28,14 @@ sleep 1 # Read product_name from $g, defaults to pfSense product=$(/usr/local/sbin/read_global_var product_name pfSense) -# If PLATFORM is $product then remove -# temporary files on shutdown from /tmp/ -PLATFORM=`cat /etc/platform` -if [ "$PLATFORM" = "${product}" ]; then - rm -rf /tmp/* -fi +# Remove temporary files on shutdown from /tmp/ +rm -rf /tmp/* USE_MFS_TMPVAR=$(/usr/local/sbin/read_xml_tag.sh boolean system/use_mfs_tmpvar) DISK_NAME=`/bin/df /var/db/rrd | /usr/bin/tail -1 | /usr/bin/awk '{print $1;}'` DISK_TYPE=`/usr/bin/basename ${DISK_NAME} | /usr/bin/cut -c1-2` # If we are not on a full install, or if the full install wants RAM disks, or if the full install _was_ using RAM disks, but isn't for the next boot... -if [ "${PLATFORM}" != "${product}" ] || [ "${USE_MFS_TMPVAR}" = "true" ] || [ "${DISK_TYPE}" = "md" ]; then +if [ "${USE_MFS_TMPVAR}" = "true" ] || [ "${DISK_TYPE}" = "md" ]; then /etc/rc.backup_aliastables.sh /etc/rc.backup_rrd.sh /etc/rc.backup_dhcpleases.sh diff --git a/src/etc/rc.reload_all b/src/etc/rc.reload_all index 127ef85..eea0c40 100755 --- a/src/etc/rc.reload_all +++ b/src/etc/rc.reload_all @@ -4,7 +4,7 @@ * rc.reload_all * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.reload_interfaces b/src/etc/rc.reload_interfaces index 1711e6f..1ec8211 100755 --- a/src/etc/rc.reload_interfaces +++ b/src/etc/rc.reload_interfaces @@ -4,7 +4,7 @@ * rc.reload_interfaces * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.resolv_conf_generate b/src/etc/rc.resolv_conf_generate index 99fae5b..a4b12ef 100755 --- a/src/etc/rc.resolv_conf_generate +++ b/src/etc/rc.resolv_conf_generate @@ -4,7 +4,7 @@ * rc.resolv_conf_generate * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2010-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2010-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.restart_webgui b/src/etc/rc.restart_webgui index b126f85..4e374cc 100755 --- a/src/etc/rc.restart_webgui +++ b/src/etc/rc.restart_webgui @@ -4,7 +4,7 @@ * rc.restart_webgui * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.restore_config_backup b/src/etc/rc.restore_config_backup index f9ce274..f9237e6 100755 --- a/src/etc/rc.restore_config_backup +++ b/src/etc/rc.restore_config_backup @@ -4,7 +4,7 @@ * rc.restore_config_backup * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -91,7 +91,6 @@ function restore_history_backup($number) { echo gettext("Y/N?") . " : "; $confirm = strtoupper(chop(fgets($fp))); if ($confirm == gettext("Y")) { - conf_mount_rw(); if (config_restore($g['conf_path'] . '/backup/config-' . $thisbackup['time'] . '.xml') == 0) { echo "\n"; echo sprintf(gettext('Successfully reverted to timestamp %1$s with description "%2$s".'), date(gettext("n/j/y H:i:s"), $thisbackup['time']), $thisbackup['description']); @@ -99,7 +98,6 @@ function restore_history_backup($number) { } else { echo gettext("Unable to revert to the selected configuration.") . "\n"; } - conf_mount_ro(); } else { echo gettext("Restore cancelled.") . "\n"; } diff --git a/src/etc/rc.savecore b/src/etc/rc.savecore index b3000cb..bb0e1d5 100755 --- a/src/etc/rc.savecore +++ b/src/etc/rc.savecore @@ -3,7 +3,7 @@ # rc.savecore # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Based on src/etc/rc.d/savecore from FreeBSD diff --git a/src/etc/rc.savevoucher b/src/etc/rc.savevoucher index 1407f77..1d6bc77 100755 --- a/src/etc/rc.savevoucher +++ b/src/etc/rc.savevoucher @@ -4,7 +4,7 @@ * rc.savevoucher * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2010-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2010-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/etc/rc.start_packages b/src/etc/rc.start_packages index 3492a35..defe814 100755 --- a/src/etc/rc.start_packages +++ b/src/etc/rc.start_packages @@ -4,7 +4,7 @@ * rc.start_packages * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.stop_packages b/src/etc/rc.stop_packages index f279ab7..8563105 100755 --- a/src/etc/rc.stop_packages +++ b/src/etc/rc.stop_packages @@ -4,7 +4,7 @@ * rc.stop_packages * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.update_alias_url_data b/src/etc/rc.update_alias_url_data index f846856..a896584 100755 --- a/src/etc/rc.update_alias_url_data +++ b/src/etc/rc.update_alias_url_data @@ -4,7 +4,7 @@ * rc.update_alias_url_data * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2010-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2010-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/rc.update_bogons.sh b/src/etc/rc.update_bogons.sh index 466048a..bcb8654 100755 --- a/src/etc/rc.update_bogons.sh +++ b/src/etc/rc.update_bogons.sh @@ -3,7 +3,7 @@ # rc.update_bogons.sh # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Based on src/etc/rc.d/savecore from FreeBSD @@ -106,9 +106,6 @@ BOGON_V6_CKSUM=`/usr/bin/fetch -T 30 -q -o - "${v6urlcksum}" | awk '{ print $4 } ON_DISK_V6_CKSUM=`md5 /tmp/bogonsv6 | awk '{ print $4 }'` if [ "$BOGON_V4_CKSUM" = "$ON_DISK_V4_CKSUM" ] || [ "$BOGON_V6_CKSUM" = "$ON_DISK_V6_CKSUM" ]; then - # At least one of the downloaded checksums matches, so mount RW - /etc/rc.conf_mount_rw - ENTRIES_MAX=`pfctl -s memory | awk '/table-entries/ { print $4 }'` if [ "$BOGON_V4_CKSUM" = "$ON_DISK_V4_CKSUM" ]; then @@ -154,9 +151,6 @@ if [ "$BOGON_V4_CKSUM" = "$ON_DISK_V4_CKSUM" ] || [ "$BOGON_V6_CKSUM" = "$ON_DIS echo "Could not download ${v6url} (checksum mismatch)" | logger checksum_error="true" fi - - # We mounted RW, so switch back to RO - /etc/rc.conf_mount_ro fi if [ "$checksum_error" != "" ]; then diff --git a/src/etc/rc.update_urltables b/src/etc/rc.update_urltables index 026af60..7ef18a7 100755 --- a/src/etc/rc.update_urltables +++ b/src/etc/rc.update_urltables @@ -4,7 +4,7 @@ * rc.update_urltables * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2010-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2010-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/skel/dot.profile b/src/etc/skel/dot.profile index 7da5c5e..c3788ad 100644 --- a/src/etc/skel/dot.profile +++ b/src/etc/skel/dot.profile @@ -2,7 +2,7 @@ # dot.profile # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/skel/dot.shrc b/src/etc/skel/dot.shrc index 8777310..3c9dc94 100644 --- a/src/etc/skel/dot.shrc +++ b/src/etc/skel/dot.shrc @@ -2,7 +2,7 @@ # dot.shrc # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/etc/skel/dot.tcshrc b/src/etc/skel/dot.tcshrc index 4be9072..00e0923 100644 --- a/src/etc/skel/dot.tcshrc +++ b/src/etc/skel/dot.tcshrc @@ -2,7 +2,7 @@ # dot.tcshrc # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -17,7 +17,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set prompt="%{\033[0;1;33m%}[%{\033[0;1;37m%}`cat /etc/version`%{\033[0;1;33m%}]%{\033[0;1;33m%}%B[%{\033[0;1;37m%}%n%{\033[0;1;31m%}@%{\033[0;1;37m%}%M%{\033[0;1;33m%}]%{\033[0;1;32m%}%b%/%{\033[0;1;33m%}%{\033[0;1;36m%}%{\033[0;1;31m%}:%{\033[0;0;0m%} " +set prompt="[%B`cat /etc/version`%b][%B%n%b%{\033[0;1;31m%}@%{\033[0;0;0m%}%B%M%b]%/%{\033[0;1;31m%}:%{\033[0;0;0m%} " set autologout="0" set autolist set color set colorcat setenv CLICOLOR "true" diff --git a/src/etc/sshd b/src/etc/sshd index cb84870..64ab8d7 100755 --- a/src/etc/sshd +++ b/src/etc/sshd @@ -5,7 +5,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2004 Fred Mol <fredmol@xs4all.nl>. - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -30,11 +30,6 @@ if (!isset($config['system']['enablesshd'])) { return; } -/* are we already running? if not, do conf_mount_rw(), otherwise it should already be rw */ -if (!is_subsystem_dirty('sshdkeys')) { - conf_mount_rw(); -} - $sshConfigDir = "/etc/ssh"; $keys = array( @@ -48,19 +43,6 @@ foreach ($keys as $key) { $keyfiles[] = "ssh_host_{$key['suffix']}key.pub"; } -/* restore ssh data for nanobsd platform */ -if ($g['platform'] == "nanobsd" and file_exists("/conf/sshd/ssh_host_key") and !file_exists("{$sshConfigDir}/ssh_host_key.pub")) { - echo "Restoring SSH from /conf/sshd/"; - exec("/bin/cp -p /conf/sshd/* {$sshConfigDir}/"); - - /* make sure host private key permissions aren't too open so sshd won't complain */ - foreach ($keyfiles as $f2c) { - if (file_exists("{$sshConfigDir}/{$f2c}")) { - chmod("{$sshConfigDir}/{$f2c}", 0600); - } - } -} - /* if any of these files are 0 bytes then they are corrupted. * remove them */ @@ -107,6 +89,7 @@ if (isset($config['system']['ssh']['sshdkeyonly'])) { $sshconf .= "ChallengeResponseAuthentication no\n"; $sshconf .= "PasswordAuthentication no\n"; $sshconf .= "PubkeyAuthentication yes\n"; + $sshconf .= "UsePAM no\n"; } else { $sshconf .= "# Login via Key and Password\n"; $sshconf .= "ChallengeResponseAuthentication yes\n"; @@ -114,7 +97,6 @@ if (isset($config['system']['ssh']['sshdkeyonly'])) { $sshconf .= "PubkeyAuthentication yes\n"; } $sshconf .= "UseDNS no\n"; -$sshconf .= "UsePAM no\n"; $sshconf .= "LoginGraceTime 30s\n"; /* Hide FreeBSD version */ $sshconf .= "VersionAddendum none\n"; @@ -191,13 +173,5 @@ if ($status <> 0) { echo "done.\n"; } -// NanoBSD -if ($g['platform'] == "nanobsd") { - if (!is_dir("/conf/sshd")) { - mkdir("/conf/sshd", 0750); - } - $_gb = exec("/bin/cp -p {$sshConfigDir}/ssh_host* /conf/sshd"); -} -conf_mount_ro(); unset($keys, $keyfiles); ?> diff --git a/src/etc/version b/src/etc/version index f011c81..f8fd14e 100644 --- a/src/etc/version +++ b/src/etc/version @@ -1 +1 @@ -2.4.0-DEVELOPMENT +2.4.0-BETA diff --git a/src/usr/local/bin/3gstats.php b/src/usr/local/bin/3gstats.php index 9a50fb3..b192865 100755 --- a/src/usr/local/bin/3gstats.php +++ b/src/usr/local/bin/3gstats.php @@ -4,7 +4,7 @@ * 3gstats.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/bin/beep.sh b/src/usr/local/bin/beep.sh index db8b837..0a37d2f 100755 --- a/src/usr/local/bin/beep.sh +++ b/src/usr/local/bin/beep.sh @@ -3,7 +3,7 @@ # beep.sh # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/bin/captiveportal_gather_stats.php b/src/usr/local/bin/captiveportal_gather_stats.php index 94b2a82..c3bfddc 100644 --- a/src/usr/local/bin/captiveportal_gather_stats.php +++ b/src/usr/local/bin/captiveportal_gather_stats.php @@ -5,7 +5,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2011 Warren Baker - * Copyright (c) 2013-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2013-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/bin/dhcpd_gather_stats.php b/src/usr/local/bin/dhcpd_gather_stats.php index ae84a5d..c58990d 100644 --- a/src/usr/local/bin/dhcpd_gather_stats.php +++ b/src/usr/local/bin/dhcpd_gather_stats.php @@ -4,7 +4,7 @@ * dhcpd_gather_stats.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2013-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2013-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/bin/easyrule b/src/usr/local/bin/easyrule index a2de79e..37fa9bf 100755 --- a/src/usr/local/bin/easyrule +++ b/src/usr/local/bin/easyrule @@ -4,7 +4,7 @@ * easyrule * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2010-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2010-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/bin/filterparser.php b/src/usr/local/bin/filterparser.php index 43f90f8..9e8d8b1 100755 --- a/src/usr/local/bin/filterparser.php +++ b/src/usr/local/bin/filterparser.php @@ -4,7 +4,7 @@ * filterparser.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2009-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2009-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/bin/mail.php b/src/usr/local/bin/mail.php index 9a931b7..55f41e7 100755 --- a/src/usr/local/bin/mail.php +++ b/src/usr/local/bin/mail.php @@ -4,7 +4,7 @@ * mail.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/bin/ping_hosts.sh b/src/usr/local/bin/ping_hosts.sh index a1bf20d..87e30da 100755 --- a/src/usr/local/bin/ping_hosts.sh +++ b/src/usr/local/bin/ping_hosts.sh @@ -3,7 +3,7 @@ # ping_hosts.sh # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2006-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2006-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/bin/runmsntp.sh b/src/usr/local/bin/runmsntp.sh index ff5ce40..b7b8e14 100755 --- a/src/usr/local/bin/runmsntp.sh +++ b/src/usr/local/bin/runmsntp.sh @@ -3,7 +3,7 @@ # runsntp.sh # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/captiveportal/index.php b/src/usr/local/captiveportal/index.php index 04c410e..da90963 100644 --- a/src/usr/local/captiveportal/index.php +++ b/src/usr/local/captiveportal/index.php @@ -3,7 +3,7 @@ * index.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/sbin/gmirror_status_check.php b/src/usr/local/sbin/gmirror_status_check.php index 9a81892..30d298f 100755 --- a/src/usr/local/sbin/gmirror_status_check.php +++ b/src/usr/local/sbin/gmirror_status_check.php @@ -4,7 +4,7 @@ * gmirror_status_check.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2013-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2013-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/sbin/openvpn.attributes.sh b/src/usr/local/sbin/openvpn.attributes.sh index 0557894..bb79cbf 100755 --- a/src/usr/local/sbin/openvpn.attributes.sh +++ b/src/usr/local/sbin/openvpn.attributes.sh @@ -3,7 +3,7 @@ # openvpn.attributes.sh # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/sbin/ovpn-linkdown b/src/usr/local/sbin/ovpn-linkdown index 724eebf..ede277e 100755 --- a/src/usr/local/sbin/ovpn-linkdown +++ b/src/usr/local/sbin/ovpn-linkdown @@ -3,7 +3,7 @@ # ovpn-linkdown # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -21,5 +21,6 @@ /sbin/pfctl -i $1 -Fs /bin/rm -f /var/etc/nameserver_$1 /bin/rm -f /tmp/$1_router +/bin/rm -f /tmp/$1_routerv6 /bin/rm -f /tmp/$1up /usr/local/sbin/pfSctl -c 'filter reload' diff --git a/src/usr/local/sbin/ovpn-linkup b/src/usr/local/sbin/ovpn-linkup index 8f81acf..0551974 100755 --- a/src/usr/local/sbin/ovpn-linkup +++ b/src/usr/local/sbin/ovpn-linkup @@ -3,7 +3,7 @@ # ovpn-linkup # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -28,10 +28,23 @@ if [ "${dev_type}" = "tun" ]; then else /bin/echo ${5} > /tmp/${1}_router fi + + if [ -n "${route_ipv6_gateway_1}" ]; then + /bin/echo ${route_ipv6_gateway_1} > /tmp/${1}_routerv6 + elif [ -n "${ifconfig_ipv6_remote}" ]; then + /bin/echo ${ifconfig_ipv6_remote} > /tmp/${1}_routerv6 + elif [ -n "${ifconfig_ipv6_local}" ]; then + /bin/echo ${ifconfig_ipv6_local} > /tmp/${1}_routerv6 + fi + else if [ -n "${route_vpn_gateway}" ]; then /bin/echo ${route_vpn_gateway} > /tmp/${1}_router fi + + if [ -n "${route_ipv6_gateway_1}" ]; then + /bin/echo ${route_ipv6_gateway_1} > /tmp/${1}_routerv6 + fi fi /usr/bin/touch /tmp/${1}up diff --git a/src/usr/local/sbin/ovpn_auth_verify b/src/usr/local/sbin/ovpn_auth_verify index 1d3f19f..312f844 100755 --- a/src/usr/local/sbin/ovpn_auth_verify +++ b/src/usr/local/sbin/ovpn_auth_verify @@ -3,7 +3,7 @@ # ovpn_auth_verify # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/sbin/pfSense-upgrade b/src/usr/local/sbin/pfSense-upgrade deleted file mode 100755 index 22406bf..0000000 --- a/src/usr/local/sbin/pfSense-upgrade +++ /dev/null @@ -1,930 +0,0 @@ -#!/bin/sh -# -# pfSense-upgrade -# -# part of pfSense (https://www.pfsense.org) -# Copyright (c) 2015-2016 Electric Sheep Fencing, LLC -# All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -usage() { - echo "Usage: $(basename ${0}) [-46bdyf] [-u|-i PKG_NAME|-r PKG_NAME]" >&2 - echo " -4 - Force IPv4" - echo " -6 - Force IPv6" - echo " -b - Platform is booting" >&2 - echo " -c - Check if upgrade is necessary" >&2 - echo " -d - Turn on debug" >&2 - echo " -f - Force package installation" >&2 - echo " -h - Show this usage help" >&2 - echo " -l - Logfile path (defaults to /cf/conf/upgrade_log.txt)" >&2 - echo " -n - Dry run" >&2 - echo " -p socket - Write pkg progress to socket" - echo " -R - Do not reboot (this can be dangerous)" - echo " -y - Assume yes as the answer to any possible interaction" >&2 - echo "" >&2 - echo "The following parameters are mutually exclusive:" >&2 - echo " -i PKG_NAME - Install package PKG_NAME" >&2 - echo " -r PKG_NAME - Remove package PKG_NAME" >&2 - echo " -u - Update repository information" >&2 -} - -_echo() { - local _n="" - if [ "${1}" = "-n" ]; then - shift - _n="-n" - fi - - if [ -z "${logfile}" ]; then - logfile=/dev/null - fi - - echo ${_n} "${1}" | tee -a ${logfile} -} - -_exec() { - local _cmd="${1}" - local _msg="${2}" - local _mute="${3}" - local _ignore_result="${4}" - local _stdout="${stdout}" - - if [ -z "${_cmd}" -o -z "${_msg}" ]; then - return 1 - fi - - if [ "${_mute}" != "mute" ]; then - _stdout='' - fi - - _echo -n ">>> ${_msg}... " - if [ -z "${_stdout}" ]; then - _echo "" - # Ref. http://stackoverflow.com/questions/1221833/bash-pipe-output-and-capture-exit-status - exec 4>&1 - local _result=$({ { ${_cmd} 2>&1 3>&-; printf $? 1>&3; } 4>&- | \ - tee -a ${logfile} 1>&4; } 3>&1) - exec 4>&- - else - # Ref. http://stackoverflow.com/questions/1221833/bash-pipe-output-and-capture-exit-status - exec 4>&1 - local _result=$({ { ${_cmd} >${_stdout} 2>&1 3>&-; printf $? 1>&3; } 4>&- | \ - tee -a ${logfile} 1>&4; } 3>&1) - exec 4>&- - fi - - if [ ${_result} -eq 0 -o -n "${_ignore_result}" ]; then - [ -n "${_stdout}" ] \ - && _echo "done." - return 0 - else - [ -n "${_stdout}" ] \ - && _echo "failed." - _exit 1 - fi -} - -_exit() { - trap "-" 1 2 15 EXIT - - pkg_lock ${kernel_pkg} - - if [ -f "${pid_file}" ]; then - rm -f ${pid_file} - fi - - if [ -n "${chroot_dir}" ]; then - umount -f ${chroot_dir} >/dev/null 2>&1 - fi - - if [ -z "${booting}" -o "${boot_stage}" != "2" ]; then - /usr/local/bin/php /etc/rc.conf_mount_ro - fi - - if [ -n "${nc_pid}" ] && ps -p ${nc_pid} >/dev/null 2>&1; then - kill ${nc_pid} - fi - - if [ -n "${delete_annotation}" ]; then - pkg ${pkg_chroot} annotate -q -D ${kernel_pkg} next_stage - fi - - if [ -n "${unlock_additional_pkgs}" ]; then - pkg_unlock "${pkg_prefix}*" - fi - - local _rc=${1:-"0"} - - # If EVENT_PIPE is defined, GUI is calling - if [ -n "${progress_socket}" ]; then - local _need_reboot_str="" - [ -n "${need_reboot}" ] \ - && _need_reboot_str=" __REBOOT_AFTER=${reboot_after}" - _echo "__RC=${_rc}${_need_reboot_str}" - fi - - exit ${_rc} -} - -pkg_with_pb() { - local _event_pipe="" - - if [ -n "${progress_socket}" ]; then - if [ -e "${chroot_dir}${progress_socket}" ]; then - rm -f ${chroot_dir}${progress_socket} - fi - - _event_pipe="-o EVENT_PIPE=${progress_socket}" - - nc -lU ${chroot_dir}${progress_socket} >> ${progress_file} & - nc_pid=$! - - while [ ! -e "${chroot_dir}${progress_socket}" ]; do - sleep 0.1 - done - fi - - pkg ${_event_pipe} $@ - local _pkg_result=$? - nc_pid="" - return ${_pkg_result} -} - -fetch_upgrade_packages() { - local _pkgs_to_fetch="" - if [ "${platform}" = "nanobsd" ]; then - local _pkg="" - - # Check if all non-auto packages installed on 2nd partition are - # installed on current one, if not, mark them to be deleted by - # pkg autoremove - for _pkg in $(pkg ${pkg_chroot} query -e '%a == 0' %n); do - if ! pkg info -e ${_pkg}; then - _exec "pkg ${pkg_chroot} set -A 1 ${_pkg}" "Scheduling package ${_pkg} for removal" - fi - done - - # Check if all non-auto packages installed on current partition are - # installed on 2nd one, if not, we need to fetch them - for _pkg in $(pkg query -e '%a == 0' %n); do - if ! pkg ${pkg_chroot} info -e ${_pkg}; then - _pkgs_to_fetch="${_pkgs_to_fetch}${_pkgs_to_fetch:+ }${_pkg}" - fi - done - - fi - - _exec "pkg_with_pb ${pkg_chroot} upgrade -F" "Downloading upgrade packages" - - if [ -n "${_pkgs_to_fetch}" ]; then - _exec "pkg_with_pb ${pkg_chroot} fetch -d ${_pkgs_to_fetch}" \ - "Fetching packages not present on upgrade partition" - fi -} - -pkg_lock() { - local _pkg="${1}" - - if [ -z "${_pkg}" ]; then - return - fi - - if [ "$(pkg ${pkg_chroot} query %k ${_pkg})" = "0" ]; then - _exec "pkg ${pkg_chroot} lock ${_pkg}" "Locking package ${_pkg}" mute - fi -} - -pkg_unlock() { - local _pkg="${1}" - - if [ -z "${_pkg}" ]; then - return - fi - - if [ "$(pkg ${pkg_chroot} query %k ${_pkg})" = "1" ]; then - _exec "pkg ${pkg_chroot} unlock ${_pkg}" "Unlocking package ${_pkg}" mute - fi -} - -pkg_update() { - local _run_update=1 - - local _force="" - if [ "${1}" = "force" ]; then - _force=" -f" - fi - - _exec "pkg ${pkg_chroot} update${_force}" "Updating repositories metadata" -} - -pkg_upgrade() { - # figure out which kernel variant is running - export kernel_pkg=$(pkg query %n $(pkg info ${product}-kernel-\* | grep -v -- -debug-)) - - if [ -z "${kernel_pkg}" ]; then - _echo "ERROR: It was not possible to identify which ${product} kernel is installed" - _exit 1 - fi - - export next_stage=$(pkg annotate -q -S ${kernel_pkg} next_stage) - - if [ -n "${next_stage}" -a -n "${booting}" -a -n "${boot_stage}" ]; then - if [ ${boot_stage} != ${next_stage} ]; then - _exit 0 - fi - fi - - # If it's booting and first stage didn't run, just exit - if [ -n "${booting}" -a -z "${next_stage}" ]; then - _exit 0 - fi - - unset need_reboot - # First upgrade stage - if [ -z "${next_stage}" ]; then - if [ -f "${logfile}" ]; then - rm -f ${logfile} - fi - - pkg_update - - if [ "$(compare_pkg_version pkg)" = "<" ]; then - _exec "pkg upgrade pkg" "Upgrading pkg" mute - pkg_update force - fi - - local _repo_pkg="${product}-repo" - - # Deprecated pa - if is_pkg_installed ${product}-repo-devel; then - _exec "pkg ${pkg_chroot} set -A 1 ${product}-repo-devel" \ - "Scheduling package ${product}-repo-devel for removal" - _exec "pkg install ${_repo_pkg}" "Installing ${_repo_pkg}" mute - _exec "pkg delete ${product}-repo-devel" "Removing ${product}-repo-devel" \ - mute ignore_result - validate_repo_conf - pkg_update force - fi - - if [ "$(compare_pkg_version ${_repo_pkg})" = "<" ]; then - cp /usr/local/etc/pkg/repos/${product}.conf \ - /tmp/${product}.conf.copy - _exec "pkg upgrade ${_repo_pkg}" "Upgrading ${_repo_pkg}" mute - # If conf differs, for an update - if ! cmp -s /usr/local/etc/pkg/repos/${product}.conf /tmp/${product}.conf.copy; then - pkg_update force - - # New repo may contain newer pkg - if [ "$(compare_pkg_version pkg)" = "<" ]; then - _exec "pkg upgrade pkg" "Upgrading pkg" mute - pkg_update force - fi - fi - rm -f /tmp/${product}.conf.copy - fi - - if [ $(pkg upgrade -nq | wc -l) -le 1 ]; then - _echo "Your packages are up to date" - _exit 0 - fi - - if [ -n "${dry_run}" ]; then - pkg_unlock ${kernel_pkg} - pkg ${pkg_chroot} upgrade -nq 2>&1 | tee -a ${logfile} - pkg_lock ${kernel_pkg} - _exit 0 - fi - - local _meta_pkg=$(get_meta_pkg_name) - if [ $(pkg upgrade -r ${product}-core -nq | wc -l) -gt 1 ]; then - if [ "${platform}" = "nanobsd" ]; then - _echo "**** WARNING ****" - _echo "Duplicate slice required!!" - _echo "" - _echo "Before starting the upgrade process, the currently mounted nanobsd partition" - _echo "needs to be cloned to the secondary partition, where the update will happen" - _echo "" - _echo "After installation a reboot will be required to switch partition." - _echo "" - if [ -z "${yes}" ]; then - _echo -n "Proceed with upgrade? (y/N) " - read answer - if [ "${answer}" != "y" ]; then - _echo "Aborting..." - _exit 0 - fi - # Do not make the user have to answer again. - yes=1 - fi - setup_nanobsd_env - fi - need_reboot=1 - elif pkg upgrade -r ${product} -nq ${_meta_pkg} >/dev/null 2>&1; then - need_reboot=1 - fi - - pkg_unlock ${kernel_pkg} - - if [ -z "${yes}" ]; then - # Show user which packages are going to be upgraded - pkg ${pkg_chroot} upgrade -nq 2>&1 | tee -a ${logfile} - - _echo "" - if [ -n "${need_reboot}" ]; then - _echo "**** WARNING ****" - _echo "Reboot will be required!!" - fi - _echo -n "Proceed with upgrade? (y/N) " - read answer - if [ "${answer}" != "y" ]; then - _echo "Aborting..." - _exit 0 - fi - fi - - # Download all upgrade packages first - fetch_upgrade_packages - - if [ $(pkg ${pkg_chroot} upgrade -nq ${kernel_pkg} | wc -l) -gt 1 ]; then - _exec "pkg ${pkg_chroot} upgrade ${kernel_pkg}" "Upgrading ${product} kernel" - fi - - pkg ${pkg_chroot} annotate -q -M ${kernel_pkg} next_stage 2 - next_stage=2 - - if [ -n "${need_reboot}" -a "${platform}" != "nanobsd" ]; then - do_reboot - _exit 0 - fi - fi - - if [ "${next_stage}" = "2" ]; then - pkg_lock "${pkg_prefix}*" - unlock_additional_pkgs=1 - - # XXX: Workaround to upgrade strongswan - # If those symlinks are present, pkg exit because it expects them - # to be a directory - if [ $(pkg ${pkg_chroot} upgrade -nq strongswan | wc -l) -gt 1 ]; then - if [ -L ${chroot_dir}/usr/local/etc/ipsec.d ]; then - rm -f ${chroot_dir}/usr/local/etc/ipsec.d - fi - if [ -L ${chroot_dir}/usr/local/etc/ipsec.conf ]; then - rm -f ${chroot_dir}/usr/local/etc/ipsec.conf - fi - if [ -L ${chroot_dir}/usr/local/etc/strongswan.d ]; then - rm -f ${chroot_dir}/usr/local/etc/strongswan.d - fi - if [ -L ${chroot_dir}/usr/local/etc/strongswan.conf ]; then - rm -f ${chroot_dir}/usr/local/etc/strongswan.conf - fi - fi - - if [ $(pkg ${pkg_chroot} upgrade -nq | wc -l) -gt 1 ]; then - delete_annotation=1 - _exec "pkg ${pkg_chroot} upgrade" "Upgrading necessary packages" - delete_annotation="" - fi - - pkg ${pkg_chroot} annotate -q -M ${kernel_pkg} next_stage 3 - next_stage=3 - - pkg_unlock "${pkg_prefix}*" - unlock_additional_pkgs="" - - if [ -n "${need_reboot}" -a "${platform}" = "nanobsd" ]; then - switch_active_nanobsd_partition - do_reboot - _exit 0 - fi - - if [ -n "${booting}" ]; then - _exit 0 - fi - fi - - if [ "${next_stage}" = "3" ]; then - if [ $(pkg upgrade -nq | wc -l) -gt 1 ]; then - delete_annotation=1 - _exec "pkg ${pkg_chroot} upgrade" "Upgrading necessary packages" - delete_annotation="" - fi - - pkg ${pkg_chroot} annotate -q -D ${kernel_pkg} next_stage - - # cleanup caches - _exec "pkg ${pkg_chroot} autoremove" "Removing unnecessary packages" mute ignore_result - _exec "pkg ${pkg_chroot} clean" "Cleanup pkg cache" mute ignore_result - fi - - gitsync=$(/usr/local/sbin/read_xml_tag.sh boolean system/gitsync/synconupgrade) - if [ "${gitsync}" = "true" ]; then - repository_url=$(/usr/local/sbin/read_xml_tag.sh string system/gitsync/repositoryurl) - branch=$(/usr/local/sbin/read_xml_tag.sh string system/gitsync/branch) - - # Repository URL is not mandatory - if [ -n "${branch}" ]; then - _exec "/usr/local/sbin/pfSsh.php playback gitsync \ - ${repositoryurl} ${branch} --upgrading" \ - "Running gitsync" mute ignore_result - fi - fi -} - -get_meta_pkg_name() { - # figure out main meta package name - if is_pkg_installed ${product}-vmware; then - echo "${product}-vmware" - elif is_pkg_installed ${product}; then - echo "${product}" - else - _echo "ERROR: It was not possible to identify which ${product} meta package is installed" - _exit 1 - fi -} - -check_upgrade() { - local _meta_pkg=$(get_meta_pkg_name) - - pkg_update - - if [ "$(compare_pkg_version ${_meta_pkg})" = "<" ]; then - local _new_version=$(pkg rquery %v ${_meta_pkg}) - _echo "${_new_version} version of ${product} is available" - _exit 2 - else - for _pkg in $(pkg query -e "%n ~ ${product}-*" %n); do - # Ignore additional packages - if echo "${_pkg}" | grep -q "^${pkg_prefix}"; then - continue - fi - if [ "$(compare_pkg_version ${_pkg})" = "<" ]; then - local _new_version=$(pkg rquery %v ${_pkg}) - _echo "${_new_version} version of ${_pkg} is available" - _exit 2 - fi - done - fi - - _echo "Your system is up to date" - _exit 0 -} - -setup_nanobsd_env() { - if [ "${platform}" != "nanobsd" ]; then - return; - fi - - chroot_dir=/tmp/nanobsd_upgrade - mkdir -p ${chroot_dir} 2>/dev/null - local _cur_partition=$(mount -p / | cut -f1) - local _update_partition=$(echo ${_cur_partition} | sed -e 's,0$,2,; s,1$,0,; s,2$,1,') - - if [ ! -e "${_update_partition}" ]; then - _echo "Secondary partition (${_update_partition}), used for upgrade not found" - _exit 1 - fi - - # Remove /dev - _update_partition=$(echo ${_update_partition} | sed 's,^/dev/,,') - local _update_slice=$(glabel status -s | awk "\$1 == \"${_update_partition}\" { print \$3 }") - - if [ -z "${_update_slice}" -o ! -e "/dev/${_update_slice}" ]; then - _echo "Secondary slice (${_update_slice}), use_update_sliced for upgrade not found" - _exit 1 - fi - - _update_slice="/dev/${_update_slice}" - - # Clone slice using same logic from nanobsd_clone_slice() - sysctl kern.geom.debugflags=16 >/dev/null 2>&1 - _exec "dd if=/dev/zero of=${_update_slice} bs=1m count=1" "Cleaning secondary partition" mute - _exec "dd if=${_cur_partition} of=${_update_slice} bs=64k" "Duplicating current slice" mute - _exec "tunefs -L ${_update_partition##*/} ${_update_slice}" "Restoring slice label" mute - sysctl kern.geom.debugflags=0 >/dev/null 2>&1 - - _exec "/sbin/fsck -y -t ufs /dev/${_update_partition}" "Testing duplicated partition integrity" mute - _exec "mount /dev/${_update_partition} ${chroot_dir}" "Mounting second partition to run upgrade" mute - - # Make sure resolv.conf is present, otherwise upgrade may fail (bug #6557) - local _resolv_conf=$(readlink -f /etc/resolv.conf) - _exec "cp -f ${_resolv_conf} ${chroot_dir}/etc/resolv.conf" \ - "Copying resolv.conf to upgrade partition" mute ignore_result - - sed -i '' -e "s,^${_cur_partition},/dev/${_update_partition}," \ - ${chroot_dir}/etc/fstab - - pkg_chroot="-c ${chroot_dir}" -} - -switch_active_nanobsd_partition() { - if [ "${platform}" != "nanobsd" ]; then - return; - fi - - local _cur_partition=$(mount -p / | cut -f1 | sed 's,^/dev/,,') - local _disk=$(glabel status -s | \ - awk "\$1 == \"${_cur_partition}\" { print substr(\$3, 0, length(\$3)-3)}") - local _i=$(echo ${_cur_partition} | cut -c ${#_cur_partition}) - - if ! echo "${_i}" | egrep -q '^[0-9]$'; then - _echo "Invalid partition label ${_cur_partition}" - _exit 1 - fi - - # pfsense0 == part 1 / pfsense1 == part 2 - if [ ${_i} -eq 0 ]; then - _i=2 - else - _i=1 - fi - - _exec "gpart set -a active -i ${_i} ${_disk}" "Setting secondary partition as active" mute -} - -is_pkg_installed() { - local _pkg_name="${1}" - shift - local _pkg_chroot="$@" - - pkg ${_pkg_chroot} info -e ${_pkg_name} - return $? -} - -compare_pkg_version() { - local _pkg_name="${1}" - - if ! is_pkg_installed ${_pkg_name} ${pkg_chroot}; then - echo '!' - return 1 - fi - - local _lver=$(pkg ${pkg_chroot} query %v ${_pkg_name}) - - if [ -z "${_lver}" ]; then - _echo "ERROR: It was not possible to determine ${_pkg_name} local version" - _exit 1 - fi - - local _rver=$(pkg ${pkg_chroot} rquery %v ${_pkg_name}) - - if [ -z "${_rver}" ]; then - _echo "ERROR: It was not possible to determine ${_pkg_name} remote version" - _exit 1 - fi - - local _version=$(pkg version -t ${_lver} ${_rver}) - - if [ $? -ne 0 ]; then - _echo "ERROR: Error comparing ${_pkg_name} local and remote versions" - _exit 1 - fi - - echo ${_version} - return 0 -} - -pkg_install() { - local _pkg_name="${1}" - - local _force="" - if [ -n "${2}" ]; then - _force="-f" - fi - - if [ -z "${_pkg_name}" ]; then - _echo "ERROR: Blank package name" - _exit 1 - fi - - if is_pkg_installed ${_pkg_name}; then - local _cversion=$(compare_pkg_version ${_pkg_name}) - - if [ -z "${_force}" ]; then - if [ "${_cversion}" = "=" ]; then - _echo "Package ${_pkg_name} is up to date" - _exit 0 - elif [ "${_cversion}" = ">" ]; then - _echo "Installed ${_pkg_name} version is newer than remote" - _exit 0 - fi - fi - local _cmd="upgrade ${_force}" - local _msg="Upgrading" - else - local _cmd="install" - local _msg="Installing" - fi - - _exec "pkg_with_pb ${_cmd}${dry_run:+ }${dry_run} ${_pkg_name}" "${_msg} ${_pkg_name}" - _exec "pkg clean" "Cleaning up cache" mute ignore_result -} - -# Reinstall every pfSense-pkg-* package -pkg_reinstall_all() { - for _pkg in $(pkg query -e '%a == 0' %n); do - case ${_pkg} in "${pkg_prefix}"* ) - _echo "Reinstalling ${_pkg}" - pkg_install ${_pkg} 1 - ;; - esac - done -} - -pkg_delete() { - local _pkg_name="${1}" - - if [ -z "${_pkg_name}" ]; then - _echo "ERROR: Blank package name" - _exit 1 - fi - - if ! is_pkg_installed ${_pkg_name}; then - _echo "ERROR: Package ${_pkg_name} is not installed" - _exit 1 - fi - - _exec "pkg_with_pb delete${dry_run:+ }${dry_run} ${_pkg_name}" "Removing ${_pkg_name}" - _exec "pkg autoremove" "Removing stale packages" mute ignore_result -} - -# Delete every pfSense-pkg-* package -pkg_delete_all() { - for _pkg in $(pkg query -e '%a == 0' %n); do - case ${_pkg} in "${pkg_prefix}"* ) - _echo "Removing ${_pkg}" - pkg_delete ${_pkg} - ;; - esac - done -} - -do_reboot() { - if [ -z "${dont_reboot}" ]; then - _echo "Upgrade is complete. Rebooting in ${reboot_after} seconds." - echo "Upgrade is complete. Rebooting in ${reboot_after} seconds." | wall - /etc/rc.notify_message -e -g -m "Upgrade is complete. Rebooting in ${reboot_after} seconds." \ - >/dev/null 2>&1 - (sleep ${reboot_after} && /etc/rc.reboot) & - else - _echo "Upgrade is complete." - echo "Upgrade is complete." | wall - /etc/rc.notify_message -e -g -m "Upgrade is complete." >/dev/null 2>&1 - fi -} - -validate_repo_conf() { - # Make sure to use default repo conf when it doesn't exist - pkg_repo_conf="/usr/local/etc/pkg/repos/${product}.conf" - default_pkg_repo_conf_path="/usr/local/share/${product}/pkg/repos/${product}-repo.conf" - - pkg_repo_conf_path=$(/usr/local/sbin/read_xml_tag.sh string system/pkg_repo_conf_path) - - if [ -z "${pkg_repo_conf_path}" -o ! -f "${pkg_repo_conf_path}" ]; then - pkg_repo_conf_path=${default_pkg_repo_conf_path} - fi - - if [ -f "${pkg_repo_conf_path}" ]; then - if [ -e "${pkg_repo_conf}" -a ! -L "${pkg_repo_conf}" ]; then - rm -f ${pkg_repo_conf} - ln -sf ${pkg_repo_conf_path} ${pkg_repo_conf} - fi - - if [ "$(readlink ${pkg_repo_conf})" != "${pkg_repo_conf_path}" ]; then - mkdir -p /usr/local/etc/pkg/repos - ln -sf ${pkg_repo_conf_path} ${pkg_repo_conf} - fi - fi -} - -export LANG=C - -pid_file="/var/run/$(basename $0).pid" -logfile="/cf/conf/upgrade_log.txt" -stdout='/dev/null' - -# Setup proxy settings -HTTP_PROXY=$(/usr/local/sbin/read_xml_tag.sh string system/proxyurl) -if [ "${HTTP_PROXY}" != "" ]; then - HTTP_PROXY_PORT=$(/usr/local/sbin/read_xml_tag.sh string system/proxyport) - if [ "${HTTP_PROXY_PORT}" != "" ]; then - HTTP_PROXY="${HTTP_PROXY}:${HTTP_PROXY_PORT}" - fi - export HTTP_PROXY -fi - -# pkg should not ask for confirmations -export ASSUME_ALWAYS_YES=true -export FETCH_TIMEOUT=5 -export FETCH_RETRY=2 - -export product=$(/usr/local/bin/php -n /usr/local/sbin/read_global_var product_name pfSense) -export pkg_prefix=$(/usr/local/bin/php -n /usr/local/sbin/read_global_var pkg_prefix pfSense-pkg-) -export platform=$(cat /etc/platform) - -USE_MFS_TMPVAR=$(/usr/local/sbin/read_xml_tag.sh boolean system/use_mfs_tmpvar) -if [ "${platform}" = "nanobsd" ] || [ "${USE_MFS_TMPVAR}" = "true" ]; then - export PKG_DBDIR=/root/var/db/pkg - export PKG_CACHEDIR=/root/var/cache/pkg -fi - -product_version=$(cat /etc/version) -do_not_send_host_uuid=$(/usr/local/sbin/read_xml_tag.sh boolean system/do_not_send_host_uuid) -if [ "${do_not_send_host_uuid}" != "true" ]; then - hostuuid=$(sysctl kern.hostuuid) - export HTTP_USER_AGENT="${product}/${product_version}:${hostuuid}" -else - export HTTP_USER_AGENT="${product}/${product_version}" -fi - -validate_repo_conf - -# Flags used in _exit -export delete_annotation="" -export unlock_additional_pkgs="" - -# Upgrade process on nanobsd will happen in chroot -export pkg_chroot="" -export chroot_dir="" - -# Save nc_pid to be able to kill it -export nc_pid="" - -# Reboot after 10 seconds -export reboot_after=10 - -unset dry_run -unset dont_reboot -unset booting -unset boot_stage -unset force -unset yes -unset progress_file -unset progress_socket -unset action -unset action_pkg -unset force_ipv4 -unset force_ipv6 -while getopts 46b:cdfi:hp:l:nr:Ruy opt; do - case ${opt} in - 4) - if [ -n "${force_ipv6}" ]; then - usage - _exit 1 - fi - force_ipv4=1 - ;; - 6) - if [ -n "${force_ipv4}" ]; then - usage - _exit 1 - fi - force_ipv6=1 - ;; - b) - booting=1 - boot_stage="${OPTARG}" - ;; - c) - action="check" - ;; - d) - stdout='' - ;; - f) - force=1 - ;; - i) - if [ -n "${action}" ]; then - usage - _exit 1 - fi - action="install" - action_pkg="${OPTARG}" - ;; - h) - usage - _exit 0 - ;; - l) - logfile="${OPTARG}" - if [ -z "${logfile}" ]; then - usage - _exit 1 - fi - ;; - n) - dry_run="-n" - ;; - p) - progress_socket="${OPTARG}" - if [ -z "${progress_socket}" ]; then - usage - _exit 1 - fi - ;; - r) - if [ -n "${action}" ]; then - usage - _exit 1 - fi - action="delete" - action_pkg="${OPTARG}" - ;; - R) - dont_reboot=1 - ;; - u) - if [ -n "${action}" ]; then - usage - _exit 1 - fi - action="update" - ;; - y) - yes=1 - ;; - *) - usage - _exit 1 - ;; - esac -done - -if [ -n "${force_ipv4}" ]; then - export IP_VERSION="4" -elif [ -n "${force_ipv6}" ]; then - export IP_VERSION="6" -fi - -# Set default action when no parameter is set -: ${action:="upgrade"} - -if pgrep -qF ${pid_file} >/dev/null 2>&1; then - echo "Another instance is already running... Aborting!" - exit 1 -fi - -if [ -z "${booting}" -o "${boot_stage}" != "2" ]; then - /usr/local/bin/php /etc/rc.conf_mount_rw -fi - -if [ -n "${booting}" ]; then - export REPO_AUTOUPDATE=false -fi - -echo $$ > ${pid_file} - -trap _exit 1 2 15 EXIT - -if [ "${action}" != "upgrade" -a -f "${logfile}" ]; then - rm -f ${logfile} -fi - -progress_file=${logfile%.*}.json - -if [ -e "${progress_file}" ]; then - rm -f ${progress_file} -fi - -case "${action}" in - check) - check_upgrade - ;; - upgrade) - pkg_upgrade - ;; - update) - pkg_update force - ;; - install) - if [ ${action_pkg} == "ALL_PACKAGES" ] && [ -n ${force} ]; then - pkg_reinstall_all - else - pkg_install ${action_pkg} ${force} - fi - ;; - delete) - if [ ${action_pkg} == "ALL_PACKAGES" ] && [ -n ${force} ]; then - pkg_delete_all - else - pkg_delete ${action_pkg} - fi - ;; - *) - _echo "ERROR: Invalid action!" - _exit 1 -esac - -_exit 0 diff --git a/src/usr/local/sbin/pfSsh.php b/src/usr/local/sbin/pfSsh.php index 50db82d..c91ab7e 100755 --- a/src/usr/local/sbin/pfSsh.php +++ b/src/usr/local/sbin/pfSsh.php @@ -5,7 +5,7 @@ * pfSsh * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -269,7 +269,6 @@ while ($shell_active == true) { fwrite($recording_fd, $playbackbuffer); fclose($recording_fd); $command = ""; - conf_mount_ro(); echo "Recording stopped.\n"; $recording = false; } else { @@ -293,7 +292,6 @@ while ($shell_active == true) { $command = ""; } else { /* time to record */ - conf_mount_rw(); safe_mkdir("/etc/phpshellsessions"); $recording_fn = basename($command_split[1]); $recording_fd = fopen("/etc/phpshellsessions/{$recording_fn}","w"); diff --git a/src/usr/local/sbin/ppp-ipv6 b/src/usr/local/sbin/ppp-ipv6 index 8ed731e..53d9bcc 100755 --- a/src/usr/local/sbin/ppp-ipv6 +++ b/src/usr/local/sbin/ppp-ipv6 @@ -4,7 +4,7 @@ * ppp-ipv6 * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/sbin/ppp-linkdown b/src/usr/local/sbin/ppp-linkdown index 210a3ce..c4e88d0 100755 --- a/src/usr/local/sbin/ppp-linkdown +++ b/src/usr/local/sbin/ppp-linkdown @@ -3,7 +3,7 @@ # ppp-linkdown # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/sbin/ppp-linkup b/src/usr/local/sbin/ppp-linkup index 8abb161..7b41e0a 100755 --- a/src/usr/local/sbin/ppp-linkup +++ b/src/usr/local/sbin/ppp-linkup @@ -3,7 +3,7 @@ # ppp-linkup # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -50,12 +50,14 @@ if [ "${PROTOCOL}" == "inet" ]; then if echo "${DNS1_RAW}" | grep -q dns1; then DNS1=`echo "${DNS1_RAW}" | awk '{print $2}'` echo "${DNS1}" >> /var/etc/nameserver_${IF} - route change "${DNS1}" ${REMOTE_IP} + route change "${DNS1}" ${REMOTE_IP} \ + || route add "${DNS1}" ${REMOTE_IP} fi if echo "${DNS2_RAW}" | grep -q dns2; then DNS2=`echo "${DNS2_RAW}" | awk '{print $2}'` echo "${DNS2}" >> /var/etc/nameserver_${IF} - route change "${DNS2}" ${REMOTE_IP} + route change "${DNS2}" ${REMOTE_IP} \ + || route add "${DNS2}" ${REMOTE_IP} fi pfSctl -c 'service reload dns' sleep 1 @@ -75,12 +77,14 @@ elif [ "${PROTOCOL}" == "inet6" ]; then if echo "${DNS1_RAW}" | grep -q dns1; then DNS1=`echo "${DNS1_RAW}" | awk '{print $2}'` echo "${DNS1}" >> /var/etc/nameserver_v6${IF} - route change -inet6 "${DNS1}" ${REMOTE_IP} + route change -inet6 "${DNS1}" ${REMOTE_IP} \ + || route add -inet6 "${DNS1}" ${REMOTE_IP} fi if echo "${DNS2_RAW}" | grep -q dns2; then DNS2=`echo "${DNS2_RAW}" | awk '{print $2}'` echo "${DNS2}" >> /var/etc/nameserver_v6${IF} - route change -inet6 "${DNS2}" ${REMOTE_IP} + route change -inet6 "${DNS2}" ${REMOTE_IP} \ + || route add -inet6 "${DNS2}" ${REMOTE_IP} fi pfSctl -c 'service reload dns' sleep 1 diff --git a/src/usr/local/sbin/ppp-log-uptime.sh b/src/usr/local/sbin/ppp-log-uptime.sh index 086b4e3..d853675 100755 --- a/src/usr/local/sbin/ppp-log-uptime.sh +++ b/src/usr/local/sbin/ppp-log-uptime.sh @@ -3,7 +3,7 @@ # ppp-log-uptime.sh # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -19,6 +19,4 @@ # limitations under the License. #write the uptime in seconds to the persistent log in /conf/ -/etc/rc.conf_mount_rw /bin/echo `date -j +%Y.%m.%d-%H:%M:%S` $1 >> /conf/$2.log -/etc/rc.conf_mount_ro diff --git a/src/usr/local/sbin/ppp-uptime.sh b/src/usr/local/sbin/ppp-uptime.sh index 81df532..9c90dbf 100755 --- a/src/usr/local/sbin/ppp-uptime.sh +++ b/src/usr/local/sbin/ppp-uptime.sh @@ -3,7 +3,7 @@ # ppp-uptime.sh # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/sbin/prefixes.php b/src/usr/local/sbin/prefixes.php index 31b3d8c..746de86 100644 --- a/src/usr/local/sbin/prefixes.php +++ b/src/usr/local/sbin/prefixes.php @@ -3,7 +3,7 @@ * prefixes.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -98,7 +98,8 @@ foreach ($duid_arr as $entry) { // echo "add routes\n"; if (count($routes) > 0) { foreach ($routes as $address => $prefix) { - echo "/sbin/route change -inet6 {$prefix} {$address}\n"; + echo "/sbin/route change -inet6 {$prefix} {$address} " . + "|| /sbin/route add -inet6 {$prefix} {$address}\n"; } } diff --git a/src/usr/local/sbin/read_global_var b/src/usr/local/sbin/read_global_var index 827e3e9..2c5d23f 100755 --- a/src/usr/local/sbin/read_global_var +++ b/src/usr/local/sbin/read_global_var @@ -4,7 +4,7 @@ * read_global_var * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2015-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2015-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/sbin/read_xml_tag.sh b/src/usr/local/sbin/read_xml_tag.sh index 86e8ae5..fdb75a7 100755 --- a/src/usr/local/sbin/read_xml_tag.sh +++ b/src/usr/local/sbin/read_xml_tag.sh @@ -3,7 +3,7 @@ # read_xml_tag.sh # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2015-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2015-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/sbin/show_filter_reload_status.php b/src/usr/local/sbin/show_filter_reload_status.php index a9f50a2..1d28628 100755 --- a/src/usr/local/sbin/show_filter_reload_status.php +++ b/src/usr/local/sbin/show_filter_reload_status.php @@ -4,7 +4,7 @@ * show_filter_reload_status.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/sbin/vpn-linkdown b/src/usr/local/sbin/vpn-linkdown index bb53f98..dc6df9c 100755 --- a/src/usr/local/sbin/vpn-linkdown +++ b/src/usr/local/sbin/vpn-linkdown @@ -3,7 +3,7 @@ # vpn-linkdown # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/sbin/vpn-linkup b/src/usr/local/sbin/vpn-linkup index f4eb9a4..91d77cf 100755 --- a/src/usr/local/sbin/vpn-linkup +++ b/src/usr/local/sbin/vpn-linkup @@ -3,7 +3,7 @@ # vpn-linkup # # part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) # All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -20,15 +20,3 @@ # record login /usr/bin/logger -p local3.info "login,$1,$4,$5" - -case `/bin/echo $1 | /usr/bin/cut -c1-4` in - pptp) - /sbin/ifconfig $1 group pptp - ;; - poes) - /sbin/ifconfig $1 group pppoe - ;; - l2tp) - /sbin/ifconfig $1 group l2tp - ;; -esac diff --git a/src/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot b/src/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot index 15d1d6d..be6140d 100644 --- a/src/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot +++ b/src/usr/local/share/locale/en/LC_MESSAGES/pfSense.pot @@ -3,9 +3,9 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#: src/usr/local/www/diag_traceroute.php:149 -#: src/usr/local/www/diag_traceroute.php:156 -#: src/usr/local/www/interfaces.php:3093 src/usr/local/www/interfaces.php:3103 +#: src/usr/local/www/diag_traceroute.php:155 +#: src/usr/local/www/diag_traceroute.php:162 +#: src/usr/local/www/interfaces.php:3101 src/usr/local/www/interfaces.php:3111 #: src/usr/local/www/system_gateway_groups_edit.php:217 #: src/usr/local/www/system_gateway_groups_edit.php:218 #: src/usr/local/www/system_gateway_groups_edit.php:219 @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-07-15 16:42-0300\n" +"POT-Creation-Date: 2016-10-12 16:21-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -44,143 +44,143 @@ msgstr "" msgid "Redirecting to the dashboard..." msgstr "" -#: src/etc/inc/auth.inc:398 src/etc/inc/auth.inc:422 src/etc/inc/auth.inc:499 -#: src/etc/inc/auth.inc:540 src/etc/inc/auth.inc:610 src/etc/inc/auth.inc:768 -#: src/etc/inc/auth.inc:781 +#: src/etc/inc/auth.inc:397 src/etc/inc/auth.inc:421 src/etc/inc/auth.inc:496 +#: src/etc/inc/auth.inc:537 src/etc/inc/auth.inc:606 src/etc/inc/auth.inc:764 +#: src/etc/inc/auth.inc:777 #, php-format msgid "Running: %s" msgstr "" -#: src/etc/inc/auth.inc:822 src/etc/inc/auth.inc:903 src/etc/inc/auth.inc:983 -#: src/etc/inc/auth.inc:1271 +#: src/etc/inc/auth.inc:818 src/etc/inc/auth.inc:899 src/etc/inc/auth.inc:979 +#: src/etc/inc/auth.inc:1267 #, php-format msgid "ERROR! Could not connect to server %s." msgstr "" -#: src/etc/inc/auth.inc:840 +#: src/etc/inc/auth.inc:836 #, php-format msgid "LDAP: Could not lookup CA by reference for host %s." msgstr "" -#: src/etc/inc/auth.inc:969 +#: src/etc/inc/auth.inc:965 msgid "" "ERROR! ldap_get_user_ous() backed selected with no LDAP authentication " "server defined." msgstr "" -#: src/etc/inc/auth.inc:999 +#: src/etc/inc/auth.inc:995 #, php-format msgid "ERROR! ldap_get_user_ous() could not bind anonymously to server %s." msgstr "" -#: src/etc/inc/auth.inc:1004 +#: src/etc/inc/auth.inc:1000 #, php-format msgid "ERROR! ldap_get_user_ous() could not bind to server %s." msgstr "" -#: src/etc/inc/auth.inc:1120 +#: src/etc/inc/auth.inc:1116 #, php-format msgid "ERROR! ldap_get_groups() Could not connect to server %s." msgstr "" -#: src/etc/inc/auth.inc:1135 +#: src/etc/inc/auth.inc:1131 #, php-format msgid "ERROR! ldap_get_groups() could not bind anonymously to server %s." msgstr "" -#: src/etc/inc/auth.inc:1140 +#: src/etc/inc/auth.inc:1136 #, php-format msgid "ERROR! ldap_get_groups() could not bind to server %s." msgstr "" -#: src/etc/inc/auth.inc:1246 +#: src/etc/inc/auth.inc:1242 msgid "" "ERROR! ldap_backed() called with no LDAP authentication server defined. " "Defaulting to local user database. Visit System -> User Manager." msgstr "" -#: src/etc/inc/auth.inc:1249 +#: src/etc/inc/auth.inc:1245 msgid "ERROR! ldap_backed() called with no LDAP authentication server defined." msgstr "" -#: src/etc/inc/auth.inc:1289 +#: src/etc/inc/auth.inc:1285 #, php-format msgid "ERROR! Could not bind to server %s." msgstr "" -#: src/etc/inc/auth.inc:1307 +#: src/etc/inc/auth.inc:1303 #, php-format msgid "Now Searching for %s in directory." msgstr "" -#: src/etc/inc/auth.inc:1316 +#: src/etc/inc/auth.inc:1312 #, php-format msgid "Now Searching in server %1$s, container %2$s with filter %3$s." msgstr "" -#: src/etc/inc/auth.inc:1330 +#: src/etc/inc/auth.inc:1326 #, php-format msgid "Search resulted in error: %s" msgstr "" -#: src/etc/inc/auth.inc:1346 +#: src/etc/inc/auth.inc:1342 msgid "ERROR! Either LDAP search failed, or multiple users were found." msgstr "" -#: src/etc/inc/auth.inc:1353 +#: src/etc/inc/auth.inc:1349 #, php-format msgid "ERROR! Could not login to server %1$s as user %2$s: %3$s" msgstr "" -#: src/etc/inc/auth.inc:1360 +#: src/etc/inc/auth.inc:1356 #, php-format msgid "Logged in successfully as %1$s via LDAP server %2$s with DN = %3$s." msgstr "" -#: src/etc/inc/auth.inc:1396 +#: src/etc/inc/auth.inc:1392 #, php-format msgid "RADIUS start: %s<br />\n" msgstr "" -#: src/etc/inc/auth.inc:1408 +#: src/etc/inc/auth.inc:1404 #, php-format msgid "RADIUS send failed: %s<br />\n" msgstr "" -#: src/etc/inc/auth.inc:1416 +#: src/etc/inc/auth.inc:1412 #, php-format msgid "RADIUS Auth succeeded" msgstr "" -#: src/etc/inc/auth.inc:1422 +#: src/etc/inc/auth.inc:1418 #, php-format msgid "RADIUS Auth rejected" msgstr "" -#: src/etc/inc/auth.inc:1537 -#, php-format -msgid "Widget configuration has been changed for user %s." +#: src/etc/inc/auth.inc:1535 +msgid "Widget configuration has been changed." msgstr "" #: src/etc/inc/auth.inc:1540 -msgid "Widget configuration has been changed." +#, php-format +msgid "(User %s)" msgstr "" -#: src/etc/inc/auth.inc:1555 src/etc/inc/auth.inc:1571 +#: src/etc/inc/auth.inc:1558 src/etc/inc/auth.inc:1574 msgid "Local Database" msgstr "" -#: src/etc/inc/auth.inc:1674 +#: src/etc/inc/auth.inc:1677 #, php-format msgid "Successful login for user '%1$s' from: %2$s" msgstr "" -#: src/etc/inc/auth.inc:1732 +#: src/etc/inc/auth.inc:1735 #, php-format msgid "Session timed out for user '%1$s' from: %2$s" msgstr "" -#: src/etc/inc/auth.inc:1734 +#: src/etc/inc/auth.inc:1737 #, php-format msgid "User logged out for user '%1$s' from: %2$s" msgstr "" @@ -235,22 +235,22 @@ msgid "The browser must support cookies to login." msgstr "" #: src/etc/inc/authgui.inc:262 src/usr/local/www/diag_authentication.php:98 -#: src/usr/local/www/interfaces.php:2474 src/usr/local/www/interfaces.php:2541 -#: src/usr/local/www/interfaces.php:2666 -#: src/usr/local/www/interfaces_ppps_edit.php:206 -#: src/usr/local/www/interfaces_ppps_edit.php:209 -#: src/usr/local/www/interfaces_ppps_edit.php:217 -#: src/usr/local/www/interfaces_ppps_edit.php:220 -#: src/usr/local/www/interfaces_ppps_edit.php:601 +#: src/usr/local/www/interfaces.php:2482 src/usr/local/www/interfaces.php:2549 +#: src/usr/local/www/interfaces.php:2674 +#: src/usr/local/www/interfaces_ppps_edit.php:210 +#: src/usr/local/www/interfaces_ppps_edit.php:213 +#: src/usr/local/www/interfaces_ppps_edit.php:221 +#: src/usr/local/www/interfaces_ppps_edit.php:224 +#: src/usr/local/www/interfaces_ppps_edit.php:621 #: src/usr/local/www/services_dyndns_edit.php:98 #: src/usr/local/www/services_dyndns_edit.php:347 #: src/usr/local/www/services_pppoe_edit.php:506 #: src/usr/local/www/status_captiveportal.php:156 -#: src/usr/local/www/system_usermanager.php:180 -#: src/usr/local/www/system_usermanager.php:185 -#: src/usr/local/www/system_usermanager.php:190 -#: src/usr/local/www/system_usermanager.php:570 -#: src/usr/local/www/system_usermanager.php:697 +#: src/usr/local/www/system_usermanager.php:176 +#: src/usr/local/www/system_usermanager.php:181 +#: src/usr/local/www/system_usermanager.php:186 +#: src/usr/local/www/system_usermanager.php:564 +#: src/usr/local/www/system_usermanager.php:691 #: src/usr/local/www/vpn_l2tp_users.php:95 #: src/usr/local/www/vpn_l2tp_users_edit.php:74 #: src/usr/local/www/vpn_l2tp_users_edit.php:77 @@ -266,24 +266,24 @@ msgid "Enter your username" msgstr "" #: src/etc/inc/authgui.inc:269 src/usr/local/www/diag_authentication.php:106 -#: src/usr/local/www/diag_backup.php:625 src/usr/local/www/diag_backup.php:672 -#: src/usr/local/www/interfaces.php:2481 src/usr/local/www/interfaces.php:2548 -#: src/usr/local/www/interfaces.php:2673 -#: src/usr/local/www/interfaces_ppps_edit.php:206 -#: src/usr/local/www/interfaces_ppps_edit.php:209 -#: src/usr/local/www/interfaces_ppps_edit.php:217 -#: src/usr/local/www/interfaces_ppps_edit.php:220 -#: src/usr/local/www/interfaces_ppps_edit.php:608 +#: src/usr/local/www/diag_backup.php:580 src/usr/local/www/diag_backup.php:627 +#: src/usr/local/www/interfaces.php:2489 src/usr/local/www/interfaces.php:2556 +#: src/usr/local/www/interfaces.php:2681 +#: src/usr/local/www/interfaces_ppps_edit.php:210 +#: src/usr/local/www/interfaces_ppps_edit.php:213 +#: src/usr/local/www/interfaces_ppps_edit.php:221 +#: src/usr/local/www/interfaces_ppps_edit.php:224 +#: src/usr/local/www/interfaces_ppps_edit.php:628 #: src/usr/local/www/services_checkip_edit.php:151 #: src/usr/local/www/services_dyndns_edit.php:96 #: src/usr/local/www/services_dyndns_edit.php:357 #: src/usr/local/www/services_pppoe_edit.php:513 -#: src/usr/local/www/system_advanced_notifications.php:239 +#: src/usr/local/www/system_advanced_notifications.php:246 #: src/usr/local/www/system_authservers.php:645 -#: src/usr/local/www/system_usermanager.php:186 -#: src/usr/local/www/system_usermanager.php:191 -#: src/usr/local/www/system_usermanager.php:713 -#: src/usr/local/www/system_usermanager.php:716 +#: src/usr/local/www/system_usermanager.php:182 +#: src/usr/local/www/system_usermanager.php:187 +#: src/usr/local/www/system_usermanager.php:707 +#: src/usr/local/www/system_usermanager.php:710 #: src/usr/local/www/system_usermanager_passwordmg.php:40 #: src/usr/local/www/system_usermanager_passwordmg.php:101 #: src/usr/local/www/vpn_l2tp_users_edit.php:77 @@ -335,7 +335,7 @@ msgstr "" msgid "Click the button below to disconnect" msgstr "" -#: src/etc/inc/captiveportal.inc:1557 +#: src/etc/inc/captiveportal.inc:1556 #, php-format msgid "Error: cannot open '%s' in captiveportal_write_elements()%s" msgstr "" @@ -358,15 +358,15 @@ msgstr "" msgid "Press ENTER to continue." msgstr "" -#: src/etc/inc/config.console.inc:66 src/etc/inc/config.console.inc:512 +#: src/etc/inc/config.console.inc:61 src/etc/inc/config.console.inc:436 msgid "No interfaces found!" msgstr "" -#: src/etc/inc/config.console.inc:91 +#: src/etc/inc/config.console.inc:79 msgid "Do VLANs need to be set up first?" msgstr "" -#: src/etc/inc/config.console.inc:94 +#: src/etc/inc/config.console.inc:82 msgid "" "If VLANs will not be used, or only for optional interfaces, it is typical " "to\n" @@ -374,166 +374,154 @@ msgid "" "required." msgstr "" -#: src/etc/inc/config.console.inc:97 +#: src/etc/inc/config.console.inc:85 msgid "Should VLANs be set up now [y|n]?" msgstr "" -#: src/etc/inc/config.console.inc:171 +#: src/etc/inc/config.console.inc:96 msgid "VLAN interfaces:" msgstr "" -#: src/etc/inc/config.console.inc:191 +#: src/etc/inc/config.console.inc:116 msgid "Enter the WAN interface name or 'a' for auto-detection" msgstr "" -#: src/etc/inc/config.console.inc:192 +#: src/etc/inc/config.console.inc:117 #, php-format msgid "%s(%s or a): " msgstr "" -#: src/etc/inc/config.console.inc:200 src/etc/inc/config.console.inc:226 -#: src/etc/inc/config.console.inc:262 src/etc/inc/config.console.inc:535 +#: src/etc/inc/config.console.inc:125 src/etc/inc/config.console.inc:151 +#: src/etc/inc/config.console.inc:187 src/etc/inc/config.console.inc:459 #, php-format msgid "%sInvalid interface name '%s'%s" msgstr "" -#: src/etc/inc/config.console.inc:208 +#: src/etc/inc/config.console.inc:133 #, php-format msgid "" "%sEnter the LAN interface name or 'a' for auto-detection %sNOTE: this " "enables full Firewalling/NAT mode.%s(%s a or nothing if finished):%s" msgstr "" -#: src/etc/inc/config.console.inc:245 +#: src/etc/inc/config.console.inc:170 #, php-format msgid "%sOptional interface %s description found: %s" msgstr "" -#: src/etc/inc/config.console.inc:248 +#: src/etc/inc/config.console.inc:173 #, php-format msgid "" "%sEnter the Optional %s interface name or 'a' for auto-detection%s(%s a or " "nothing if finished):%s" msgstr "" -#: src/etc/inc/config.console.inc:255 +#: src/etc/inc/config.console.inc:180 msgid "Optional" msgstr "" -#: src/etc/inc/config.console.inc:291 +#: src/etc/inc/config.console.inc:216 msgid "The interfaces will be assigned as follows:" msgstr "" -#: src/etc/inc/config.console.inc:301 src/etc/inc/config.console.inc:495 +#: src/etc/inc/config.console.inc:226 src/etc/inc/config.console.inc:419 msgid "Do you want to proceed [y|n]?" msgstr "" -#: src/etc/inc/config.console.inc:319 +#: src/etc/inc/config.console.inc:243 msgid "You have chosen to remove the LAN interface." msgstr "" -#: src/etc/inc/config.console.inc:320 +#: src/etc/inc/config.console.inc:244 msgid "" "Would you like to remove the LAN IP address and \n" "unload the interface now [y|n]?" msgstr "" -#: src/etc/inc/config.console.inc:441 +#: src/etc/inc/config.console.inc:365 #, php-format msgid "%sWriting configuration..." msgstr "" -#: src/etc/inc/config.console.inc:442 +#: src/etc/inc/config.console.inc:366 msgid "Console assignment of interfaces" msgstr "" -#: src/etc/inc/config.console.inc:443 +#: src/etc/inc/config.console.inc:367 #, php-format msgid "done.%s" msgstr "" -#: src/etc/inc/config.console.inc:451 +#: src/etc/inc/config.console.inc:375 msgid "One moment while the settings are reloading..." msgstr "" -#: src/etc/inc/config.console.inc:452 +#: src/etc/inc/config.console.inc:376 msgid " done!" msgstr "" -#: src/etc/inc/config.console.inc:472 +#: src/etc/inc/config.console.inc:396 #, php-format msgid "Detected link-up on interface %s.%s" msgstr "" -#: src/etc/inc/config.console.inc:477 +#: src/etc/inc/config.console.inc:401 #, php-format msgid "No link-up detected.%s" msgstr "" -#: src/etc/inc/config.console.inc:494 +#: src/etc/inc/config.console.inc:418 msgid "WARNING: all existing VLANs will be cleared if you proceed!" msgstr "" -#: src/etc/inc/config.console.inc:510 +#: src/etc/inc/config.console.inc:434 msgid "VLAN Capable interfaces:" msgstr "" -#: src/etc/inc/config.console.inc:525 +#: src/etc/inc/config.console.inc:449 msgid "No VLAN capable interfaces detected." msgstr "" -#: src/etc/inc/config.console.inc:529 +#: src/etc/inc/config.console.inc:453 msgid "" "Enter the parent interface name for the new VLAN (or nothing if finished):" msgstr "" -#: src/etc/inc/config.console.inc:542 +#: src/etc/inc/config.console.inc:466 msgid "Enter the VLAN tag (1-4094):" msgstr "" -#: src/etc/inc/config.console.inc:546 +#: src/etc/inc/config.console.inc:470 #, php-format msgid "%sInvalid VLAN tag '%s'%s" msgstr "" -#: src/etc/inc/config.console.inc:553 +#: src/etc/inc/config.console.inc:477 #, php-format msgid "This parent interface and VLAN already created." msgstr "" -#: src/etc/inc/config.inc:81 +#: src/etc/inc/config.inc:74 msgid "Upgrading m0n0wall configuration to pfSense... " msgstr "" -#: src/etc/inc/config.inc:84 +#: src/etc/inc/config.inc:77 msgid "ERROR! Could not convert m0n0wall -> pfsense in config.xml" msgstr "" -#: src/etc/inc/config.inc:114 -msgid "CDROM build" -msgstr "" - -#: src/etc/inc/config.inc:115 -msgid "CFG:" -msgstr "" - -#: src/etc/inc/config.inc:116 -msgid "TYPE:" -msgstr "" - -#: src/etc/inc/config.inc:132 src/etc/inc/config.inc:150 +#: src/etc/inc/config.inc:105 src/etc/inc/config.inc:123 #, php-format msgid "Found configuration on %s.%s" msgstr "" -#: src/etc/inc/config.inc:165 src/etc/inc/config.inc:166 +#: src/etc/inc/config.inc:137 src/etc/inc/config.inc:138 #: src/etc/inc/config.lib.inc:90 src/etc/inc/config.lib.inc:91 -#: src/etc/inc/config.lib.inc:245 src/etc/inc/config.lib.inc:267 -#: src/etc/inc/config.lib.inc:268 +#: src/etc/inc/config.lib.inc:232 src/etc/inc/config.lib.inc:253 +#: src/etc/inc/config.lib.inc:254 msgid "No config.xml found, attempting last known config restore." msgstr "" -#: src/etc/inc/config.inc:169 +#: src/etc/inc/config.inc:141 msgid "No config.xml or config backups found, resetting to factory defaults." msgstr "" @@ -546,112 +534,92 @@ msgid "Invalid password entered. Please try again." msgstr "" #: src/etc/inc/config.lib.inc:95 src/etc/inc/config.lib.inc:129 -#: src/etc/inc/config.lib.inc:272 +#: src/etc/inc/config.lib.inc:258 msgid "" "Config.xml is corrupted and is 0 bytes. Could not restore a previous backup." msgstr "" #: src/etc/inc/config.lib.inc:127 src/etc/inc/config.lib.inc:138 -#: src/etc/inc/config.lib.inc:560 +#: src/etc/inc/config.lib.inc:490 msgid "Could not restore config.xml." msgstr "" -#: src/etc/inc/config.lib.inc:209 src/etc/inc/config.lib.inc:210 +#: src/etc/inc/config.lib.inc:208 src/etc/inc/config.lib.inc:209 #, php-format msgid "%1$s is restoring the configuration %2$s" msgstr "" -#: src/etc/inc/config.lib.inc:233 -msgid "Resetting factory defaults..." -msgstr "" - #: src/etc/inc/config.lib.inc:236 -msgid "" -"No XML configuration file found - using factory defaults.\n" -"Make sure that the configuration floppy disk with the conf/config.xml\n" -"file is inserted. If it isn't, the configuration changes will be lost\n" -"on reboot.\n" -msgstr "" - -#: src/etc/inc/config.lib.inc:249 #, php-format msgid "XML configuration file not found. %s cannot continue booting." msgstr "" -#: src/etc/inc/config.lib.inc:255 +#: src/etc/inc/config.lib.inc:242 msgid "" "Last known config found and restored. Please double check the configuration " "file for accuracy." msgstr "" -#: src/etc/inc/config.lib.inc:259 +#: src/etc/inc/config.lib.inc:245 msgid "Could not find a usable configuration file! Exiting...." msgstr "" -#: src/etc/inc/config.lib.inc:321 -msgid "/cf Filesystem is dirty." -msgstr "" - -#: src/etc/inc/config.lib.inc:332 -msgid "/ File system is dirty." -msgstr "" - -#: src/etc/inc/config.lib.inc:392 +#: src/etc/inc/config.lib.inc:323 #, php-format msgid "Start Configuration upgrade at %s, set execution timeout to 15 minutes" msgstr "" -#: src/etc/inc/config.lib.inc:403 src/etc/inc/config.lib.inc:404 +#: src/etc/inc/config.lib.inc:334 src/etc/inc/config.lib.inc:335 msgid "Updated bogon update frequency to 3am" msgstr "" -#: src/etc/inc/config.lib.inc:440 +#: src/etc/inc/config.lib.inc:371 #, php-format msgid "Ended Configuration upgrade at %s" msgstr "" -#: src/etc/inc/config.lib.inc:443 +#: src/etc/inc/config.lib.inc:374 #, php-format msgid "Upgraded config version level from %1$s to %2$s" msgstr "" -#: src/etc/inc/config.lib.inc:537 +#: src/etc/inc/config.lib.inc:467 msgid "WARNING: Config contents could not be saved. Could not open file!" msgstr "" -#: src/etc/inc/config.lib.inc:539 +#: src/etc/inc/config.lib.inc:469 #, php-format msgid "Unable to open %s/config.xml for writing in write_config()%s" msgstr "" -#: src/etc/inc/config.lib.inc:668 +#: src/etc/inc/config.lib.inc:589 #, php-format msgid "Reverted to %s." msgstr "" -#: src/etc/inc/config.lib.inc:685 +#: src/etc/inc/config.lib.inc:606 msgid "Installing configuration..." msgstr "" -#: src/etc/inc/config.lib.inc:687 +#: src/etc/inc/config.lib.inc:608 msgid "Installing configuration ...." msgstr "" -#: src/etc/inc/config.lib.inc:740 +#: src/etc/inc/config.lib.inc:659 msgid "XML error: unable to open file" msgstr "" -#: src/etc/inc/config.lib.inc:746 +#: src/etc/inc/config.lib.inc:665 #, php-format msgid "%1$s at line %2$d" msgstr "" -#: src/etc/inc/config.lib.inc:800 src/etc/inc/config.lib.inc:802 +#: src/etc/inc/config.lib.inc:718 src/etc/inc/config.lib.inc:720 #, php-format msgid "The backup cache file %s is corrupted. Unlinking." msgstr "" -#: src/etc/inc/config.lib.inc:959 +#: src/etc/inc/config.lib.inc:870 #, php-format msgid "%s made unknown change" msgstr "" @@ -660,562 +628,562 @@ msgstr "" msgid "Failed to encrypt/decrypt data!" msgstr "" -#: src/etc/inc/dyndns.class:186 +#: src/etc/inc/dyndns.class:188 msgid "Dynamic DNS: updatedns() starting" msgstr "" -#: src/etc/inc/dyndns.class:242 +#: src/etc/inc/dyndns.class:245 #, php-format msgid "Dynamic DNS (%1$s): running get_failover_interface for %2$s. found %3$s" msgstr "" -#: src/etc/inc/dyndns.class:251 +#: src/etc/inc/dyndns.class:254 #, php-format msgid "" "Dynamic DNS (%1$s) There was an error trying to determine the public IP for " "interface - %2$s (%3$s %4$s)." msgstr "" -#: src/etc/inc/dyndns.class:325 +#: src/etc/inc/dyndns.class:329 #, php-format msgid "Dynamic DNS %1$s (%2$s): _update() starting." msgstr "" -#: src/etc/inc/dyndns.class:423 +#: src/etc/inc/dyndns.class:427 #, php-format msgid "" "Dynamic DNS %1$s (%2$s): Processing dummy update on No-IP free account. IP " "temporarily set to %3$s" msgstr "" -#: src/etc/inc/dyndns.class:691 +#: src/etc/inc/dyndns.class:695 #, php-format msgid "Sending request to: %s" msgstr "" -#: src/etc/inc/dyndns.class:845 +#: src/etc/inc/dyndns.class:852 #, php-format msgid "Dynamic DNS %1$s (%2$s): _checkStatus() starting." msgstr "" -#: src/etc/inc/dyndns.class:848 src/usr/local/www/pkg_mgr_install.php:118 +#: src/etc/inc/dyndns.class:855 src/usr/local/www/pkg_mgr_install.php:118 msgid "Success" msgstr "" -#: src/etc/inc/dyndns.class:849 src/etc/inc/dyndns.class:1482 +#: src/etc/inc/dyndns.class:856 src/etc/inc/dyndns.class:1488 #: src/usr/local/www/diag_smart.php:472 msgid "Error" msgstr "" -#: src/etc/inc/dyndns.class:853 +#: src/etc/inc/dyndns.class:860 msgid "Curl error occurred:" msgstr "" -#: src/etc/inc/dyndns.class:862 src/etc/inc/dyndns.class:883 -#: src/etc/inc/dyndns.class:902 src/etc/inc/dyndns.class:920 -#: src/etc/inc/dyndns.class:937 src/etc/inc/dyndns.class:954 -#: src/etc/inc/dyndns.class:1103 src/etc/inc/dyndns.class:1116 -#: src/etc/inc/dyndns.class:1129 src/etc/inc/dyndns.class:1146 -#: src/etc/inc/dyndns.class:1256 src/etc/inc/dyndns.class:1312 -#: src/etc/inc/dyndns.class:1372 src/etc/inc/dyndns.class:1393 -#: src/etc/inc/dyndns.class:1438 +#: src/etc/inc/dyndns.class:869 src/etc/inc/dyndns.class:890 +#: src/etc/inc/dyndns.class:909 src/etc/inc/dyndns.class:927 +#: src/etc/inc/dyndns.class:944 src/etc/inc/dyndns.class:961 +#: src/etc/inc/dyndns.class:1110 src/etc/inc/dyndns.class:1123 +#: src/etc/inc/dyndns.class:1136 src/etc/inc/dyndns.class:1153 +#: src/etc/inc/dyndns.class:1263 src/etc/inc/dyndns.class:1320 +#: src/etc/inc/dyndns.class:1380 src/etc/inc/dyndns.class:1401 +#: src/etc/inc/dyndns.class:1446 msgid "IP Address Changed Successfully!" msgstr "" -#: src/etc/inc/dyndns.class:865 src/etc/inc/dyndns.class:888 -#: src/etc/inc/dyndns.class:907 src/etc/inc/dyndns.class:925 -#: src/etc/inc/dyndns.class:942 src/etc/inc/dyndns.class:959 -#: src/etc/inc/dyndns.class:1026 src/etc/inc/dyndns.class:1044 -#: src/etc/inc/dyndns.class:1064 src/etc/inc/dyndns.class:1082 -#: src/etc/inc/dyndns.class:1092 src/etc/inc/dyndns.class:1106 -#: src/etc/inc/dyndns.class:1119 src/etc/inc/dyndns.class:1134 -#: src/etc/inc/dyndns.class:1153 src/etc/inc/dyndns.class:1177 -#: src/etc/inc/dyndns.class:1196 src/etc/inc/dyndns.class:1217 -#: src/etc/inc/dyndns.class:1244 src/etc/inc/dyndns.class:1261 -#: src/etc/inc/dyndns.class:1317 src/etc/inc/dyndns.class:1335 -#: src/etc/inc/dyndns.class:1360 src/etc/inc/dyndns.class:1385 -#: src/etc/inc/dyndns.class:1422 src/etc/inc/dyndns.class:1443 +#: src/etc/inc/dyndns.class:872 src/etc/inc/dyndns.class:895 +#: src/etc/inc/dyndns.class:914 src/etc/inc/dyndns.class:932 +#: src/etc/inc/dyndns.class:949 src/etc/inc/dyndns.class:966 +#: src/etc/inc/dyndns.class:1033 src/etc/inc/dyndns.class:1051 +#: src/etc/inc/dyndns.class:1071 src/etc/inc/dyndns.class:1089 +#: src/etc/inc/dyndns.class:1099 src/etc/inc/dyndns.class:1113 +#: src/etc/inc/dyndns.class:1126 src/etc/inc/dyndns.class:1141 +#: src/etc/inc/dyndns.class:1160 src/etc/inc/dyndns.class:1184 +#: src/etc/inc/dyndns.class:1203 src/etc/inc/dyndns.class:1224 +#: src/etc/inc/dyndns.class:1251 src/etc/inc/dyndns.class:1268 +#: src/etc/inc/dyndns.class:1325 src/etc/inc/dyndns.class:1343 +#: src/etc/inc/dyndns.class:1368 src/etc/inc/dyndns.class:1393 +#: src/etc/inc/dyndns.class:1430 src/etc/inc/dyndns.class:1451 msgid "Unknown Response" msgstr "" -#: src/etc/inc/dyndns.class:866 src/etc/inc/dyndns.class:889 -#: src/etc/inc/dyndns.class:908 src/etc/inc/dyndns.class:926 -#: src/etc/inc/dyndns.class:943 src/etc/inc/dyndns.class:960 -#: src/etc/inc/dyndns.class:1045 src/etc/inc/dyndns.class:1065 -#: src/etc/inc/dyndns.class:1083 src/etc/inc/dyndns.class:1093 -#: src/etc/inc/dyndns.class:1107 src/etc/inc/dyndns.class:1120 -#: src/etc/inc/dyndns.class:1135 src/etc/inc/dyndns.class:1154 -#: src/etc/inc/dyndns.class:1178 src/etc/inc/dyndns.class:1197 -#: src/etc/inc/dyndns.class:1218 src/etc/inc/dyndns.class:1245 -#: src/etc/inc/dyndns.class:1262 src/etc/inc/dyndns.class:1302 -#: src/etc/inc/dyndns.class:1318 src/etc/inc/dyndns.class:1336 -#: src/etc/inc/dyndns.class:1361 src/etc/inc/dyndns.class:1386 -#: src/etc/inc/dyndns.class:1423 src/etc/inc/dyndns.class:1444 +#: src/etc/inc/dyndns.class:873 src/etc/inc/dyndns.class:896 +#: src/etc/inc/dyndns.class:915 src/etc/inc/dyndns.class:933 +#: src/etc/inc/dyndns.class:950 src/etc/inc/dyndns.class:967 +#: src/etc/inc/dyndns.class:1052 src/etc/inc/dyndns.class:1072 +#: src/etc/inc/dyndns.class:1090 src/etc/inc/dyndns.class:1100 +#: src/etc/inc/dyndns.class:1114 src/etc/inc/dyndns.class:1127 +#: src/etc/inc/dyndns.class:1142 src/etc/inc/dyndns.class:1161 +#: src/etc/inc/dyndns.class:1185 src/etc/inc/dyndns.class:1204 +#: src/etc/inc/dyndns.class:1225 src/etc/inc/dyndns.class:1252 +#: src/etc/inc/dyndns.class:1269 src/etc/inc/dyndns.class:1310 +#: src/etc/inc/dyndns.class:1326 src/etc/inc/dyndns.class:1344 +#: src/etc/inc/dyndns.class:1369 src/etc/inc/dyndns.class:1394 +#: src/etc/inc/dyndns.class:1431 src/etc/inc/dyndns.class:1452 msgid "PAYLOAD:" msgstr "" -#: src/etc/inc/dyndns.class:873 +#: src/etc/inc/dyndns.class:880 msgid "" "The DNS-O-Matic username or password specified are incorrect. No updates " "will be distributed to services until this is resolved." msgstr "" -#: src/etc/inc/dyndns.class:875 +#: src/etc/inc/dyndns.class:882 msgid "" "The hostname specified is not a fully-qualified domain name. If no hostnames " "included, notfqdn will be returned once." msgstr "" -#: src/etc/inc/dyndns.class:877 +#: src/etc/inc/dyndns.class:884 msgid "" "The hostname passed could not be matched to any services configured. The " "service field will be blank in the return code." msgstr "" -#: src/etc/inc/dyndns.class:879 +#: src/etc/inc/dyndns.class:886 msgid "" "Up to 20 hosts my be updated. numhost is returned if attempting to update " "more than 20 or update a round-robin." msgstr "" -#: src/etc/inc/dyndns.class:881 +#: src/etc/inc/dyndns.class:888 msgid "The hostname is blocked for update abuse." msgstr "" -#: src/etc/inc/dyndns.class:886 +#: src/etc/inc/dyndns.class:893 msgid "DNS error encountered. Stop updating for 30 minutes." msgstr "" -#: src/etc/inc/dyndns.class:895 src/etc/inc/dyndns.class:915 -#: src/etc/inc/dyndns.class:932 src/etc/inc/dyndns.class:949 -#: src/etc/inc/dyndns.class:1251 src/etc/inc/dyndns.class:1307 -#: src/etc/inc/dyndns.class:1431 +#: src/etc/inc/dyndns.class:902 src/etc/inc/dyndns.class:922 +#: src/etc/inc/dyndns.class:939 src/etc/inc/dyndns.class:956 +#: src/etc/inc/dyndns.class:1258 src/etc/inc/dyndns.class:1315 +#: src/etc/inc/dyndns.class:1439 msgid "Not A FQDN!" msgstr "" -#: src/etc/inc/dyndns.class:897 src/etc/inc/dyndns.class:1433 +#: src/etc/inc/dyndns.class:904 src/etc/inc/dyndns.class:1441 msgid "No such host" msgstr "" -#: src/etc/inc/dyndns.class:899 src/etc/inc/dyndns.class:917 -#: src/etc/inc/dyndns.class:934 src/etc/inc/dyndns.class:951 -#: src/etc/inc/dyndns.class:1100 src/etc/inc/dyndns.class:1113 -#: src/etc/inc/dyndns.class:1126 src/etc/inc/dyndns.class:1309 -#: src/etc/inc/dyndns.class:1369 src/etc/inc/dyndns.class:1412 -#: src/etc/inc/dyndns.class:1435 +#: src/etc/inc/dyndns.class:906 src/etc/inc/dyndns.class:924 +#: src/etc/inc/dyndns.class:941 src/etc/inc/dyndns.class:958 +#: src/etc/inc/dyndns.class:1107 src/etc/inc/dyndns.class:1120 +#: src/etc/inc/dyndns.class:1133 src/etc/inc/dyndns.class:1317 +#: src/etc/inc/dyndns.class:1377 src/etc/inc/dyndns.class:1420 +#: src/etc/inc/dyndns.class:1443 msgid "No Change In IP Address" msgstr "" -#: src/etc/inc/dyndns.class:905 src/etc/inc/dyndns.class:923 -#: src/etc/inc/dyndns.class:940 src/etc/inc/dyndns.class:957 -#: src/etc/inc/dyndns.class:1132 src/etc/inc/dyndns.class:1259 -#: src/etc/inc/dyndns.class:1315 src/etc/inc/dyndns.class:1375 -#: src/etc/inc/dyndns.class:1441 +#: src/etc/inc/dyndns.class:912 src/etc/inc/dyndns.class:930 +#: src/etc/inc/dyndns.class:947 src/etc/inc/dyndns.class:964 +#: src/etc/inc/dyndns.class:1139 src/etc/inc/dyndns.class:1266 +#: src/etc/inc/dyndns.class:1323 src/etc/inc/dyndns.class:1383 +#: src/etc/inc/dyndns.class:1449 msgid "User Authorization Failed" msgstr "" -#: src/etc/inc/dyndns.class:971 +#: src/etc/inc/dyndns.class:978 msgid "IP address is current, no update performed." msgstr "" -#: src/etc/inc/dyndns.class:975 +#: src/etc/inc/dyndns.class:982 msgid "DNS hostname update successful." msgstr "" -#: src/etc/inc/dyndns.class:979 +#: src/etc/inc/dyndns.class:986 msgid "Hostname supplied does not exist." msgstr "" -#: src/etc/inc/dyndns.class:982 +#: src/etc/inc/dyndns.class:989 msgid "Invalid Username." msgstr "" -#: src/etc/inc/dyndns.class:985 +#: src/etc/inc/dyndns.class:992 msgid "Invalid Password." msgstr "" -#: src/etc/inc/dyndns.class:988 +#: src/etc/inc/dyndns.class:995 msgid "Too many updates sent." msgstr "" -#: src/etc/inc/dyndns.class:991 +#: src/etc/inc/dyndns.class:998 msgid "Account disabled due to violation of No-IP terms of service." msgstr "" -#: src/etc/inc/dyndns.class:994 +#: src/etc/inc/dyndns.class:1001 msgid "" "Invalid IP. IP Address submitted is improperly formatted or is a private IP " "address or is on a blacklist." msgstr "" -#: src/etc/inc/dyndns.class:997 +#: src/etc/inc/dyndns.class:1004 msgid "Disabled / Locked Hostname." msgstr "" -#: src/etc/inc/dyndns.class:1000 +#: src/etc/inc/dyndns.class:1007 msgid "" "Host updated is configured as a web redirect and no update was performed." msgstr "" -#: src/etc/inc/dyndns.class:1003 +#: src/etc/inc/dyndns.class:1010 msgid "Group supplied does not exist." msgstr "" -#: src/etc/inc/dyndns.class:1006 +#: src/etc/inc/dyndns.class:1013 msgid "DNS group update is successful." msgstr "" -#: src/etc/inc/dyndns.class:1010 +#: src/etc/inc/dyndns.class:1017 msgid "DNS group is current, no update performed." msgstr "" -#: src/etc/inc/dyndns.class:1014 +#: src/etc/inc/dyndns.class:1021 msgid "Update client support not available for supplied hostname or group." msgstr "" -#: src/etc/inc/dyndns.class:1017 +#: src/etc/inc/dyndns.class:1024 msgid "Hostname supplied does not have offline settings configured." msgstr "" -#: src/etc/inc/dyndns.class:1020 src/etc/inc/dyndns.class:1023 +#: src/etc/inc/dyndns.class:1027 src/etc/inc/dyndns.class:1030 msgid "" "Client disabled. Client should exit and not perform any more updates without " "user intervention." msgstr "" -#: src/etc/inc/dyndns.class:1027 +#: src/etc/inc/dyndns.class:1034 msgid "Unknown Response:" msgstr "" -#: src/etc/inc/dyndns.class:1033 +#: src/etc/inc/dyndns.class:1040 msgid "Authentication Failed: Username and/or Password was Incorrect." msgstr "" -#: src/etc/inc/dyndns.class:1035 +#: src/etc/inc/dyndns.class:1042 msgid "No Service: Dynamic DNS Service has been disabled for this domain." msgstr "" -#: src/etc/inc/dyndns.class:1037 +#: src/etc/inc/dyndns.class:1044 msgid "Illegal Input: Self-Explanatory" msgstr "" -#: src/etc/inc/dyndns.class:1039 +#: src/etc/inc/dyndns.class:1046 msgid "Too Soon: Not Enough Time Has Elapsed Since Last Update" msgstr "" -#: src/etc/inc/dyndns.class:1041 +#: src/etc/inc/dyndns.class:1048 msgid "IP Updated Successfully!" msgstr "" -#: src/etc/inc/dyndns.class:1054 +#: src/etc/inc/dyndns.class:1061 msgid "Error 799" msgstr "" -#: src/etc/inc/dyndns.class:1054 src/etc/inc/dyndns.class:1056 +#: src/etc/inc/dyndns.class:1061 src/etc/inc/dyndns.class:1063 msgid "Update Failed!" msgstr "" -#: src/etc/inc/dyndns.class:1056 +#: src/etc/inc/dyndns.class:1063 msgid "Error 700" msgstr "" -#: src/etc/inc/dyndns.class:1058 src/etc/inc/dyndns.class:1061 -#: src/etc/inc/dyndns.class:1079 src/etc/inc/dyndns.class:1089 -#: src/etc/inc/dyndns.class:1174 src/etc/inc/dyndns.class:1190 -#: src/etc/inc/dyndns.class:1211 src/etc/inc/dyndns.class:1238 -#: src/etc/inc/dyndns.class:1286 src/etc/inc/dyndns.class:1332 -#: src/etc/inc/dyndns.class:1348 +#: src/etc/inc/dyndns.class:1065 src/etc/inc/dyndns.class:1068 +#: src/etc/inc/dyndns.class:1086 src/etc/inc/dyndns.class:1096 +#: src/etc/inc/dyndns.class:1181 src/etc/inc/dyndns.class:1197 +#: src/etc/inc/dyndns.class:1218 src/etc/inc/dyndns.class:1245 +#: src/etc/inc/dyndns.class:1293 src/etc/inc/dyndns.class:1340 +#: src/etc/inc/dyndns.class:1356 msgid "IP Address Updated Successfully!" msgstr "" -#: src/etc/inc/dyndns.class:1071 +#: src/etc/inc/dyndns.class:1078 msgid "" "Bad Request - The URL was malformed. Required parameters were not provided." msgstr "" -#: src/etc/inc/dyndns.class:1073 +#: src/etc/inc/dyndns.class:1080 msgid "Update Too Soon - Attempted to update too quickly since last change." msgstr "" -#: src/etc/inc/dyndns.class:1075 +#: src/etc/inc/dyndns.class:1082 msgid "Database Error - There was a server-sided database error." msgstr "" -#: src/etc/inc/dyndns.class:1077 +#: src/etc/inc/dyndns.class:1084 #, php-format msgid "Hostname Error - The hostname (%s) doesn't belong to user (%s)." msgstr "" -#: src/etc/inc/dyndns.class:1141 +#: src/etc/inc/dyndns.class:1148 msgid "Not a valid username or password!" msgstr "" -#: src/etc/inc/dyndns.class:1143 +#: src/etc/inc/dyndns.class:1150 msgid "Hostname specified does not exist." msgstr "" -#: src/etc/inc/dyndns.class:1149 +#: src/etc/inc/dyndns.class:1156 msgid "Hostname specified exists, but not under the username specified." msgstr "" -#: src/etc/inc/dyndns.class:1151 +#: src/etc/inc/dyndns.class:1158 msgid "Updating too frequently, considered abuse." msgstr "" -#: src/etc/inc/dyndns.class:1160 src/etc/inc/dyndns.class:1205 +#: src/etc/inc/dyndns.class:1167 src/etc/inc/dyndns.class:1212 msgid "Bad Request - The IP provided was invalid." msgstr "" -#: src/etc/inc/dyndns.class:1162 +#: src/etc/inc/dyndns.class:1169 msgid "Bad Request - Required parameters were not provided." msgstr "" -#: src/etc/inc/dyndns.class:1164 +#: src/etc/inc/dyndns.class:1171 msgid "" "Bad Request - Illegal characters in either the username or the password." msgstr "" -#: src/etc/inc/dyndns.class:1166 +#: src/etc/inc/dyndns.class:1173 msgid "Invalid password." msgstr "" -#: src/etc/inc/dyndns.class:1168 +#: src/etc/inc/dyndns.class:1175 msgid "This account has been administratively locked." msgstr "" -#: src/etc/inc/dyndns.class:1170 +#: src/etc/inc/dyndns.class:1177 msgid "Updating too frequently." msgstr "" -#: src/etc/inc/dyndns.class:1172 src/etc/inc/dyndns.class:1186 +#: src/etc/inc/dyndns.class:1179 src/etc/inc/dyndns.class:1193 msgid "Server side error." msgstr "" -#: src/etc/inc/dyndns.class:1188 +#: src/etc/inc/dyndns.class:1195 msgid "Badly Formed Request (check the settings)." msgstr "" -#: src/etc/inc/dyndns.class:1207 +#: src/etc/inc/dyndns.class:1214 msgid "Bad Request - A hostname was not provided." msgstr "" -#: src/etc/inc/dyndns.class:1209 src/etc/inc/dyndns.class:1236 +#: src/etc/inc/dyndns.class:1216 src/etc/inc/dyndns.class:1243 msgid "Invalid username or password." msgstr "" -#: src/etc/inc/dyndns.class:1214 src/etc/inc/dyndns.class:1241 -#: src/etc/inc/dyndns.class:1253 +#: src/etc/inc/dyndns.class:1221 src/etc/inc/dyndns.class:1248 +#: src/etc/inc/dyndns.class:1260 msgid "No Change In IP Address." msgstr "" -#: src/etc/inc/dyndns.class:1232 +#: src/etc/inc/dyndns.class:1239 msgid "Bad Request - Missing/Invalid Parameters." msgstr "" -#: src/etc/inc/dyndns.class:1234 +#: src/etc/inc/dyndns.class:1241 msgid "Bad Request - Invalid Tunnel ID." msgstr "" -#: src/etc/inc/dyndns.class:1288 +#: src/etc/inc/dyndns.class:1295 msgid "Result did not match." msgstr "" -#: src/etc/inc/dyndns.class:1294 +#: src/etc/inc/dyndns.class:1302 #, php-format msgid "%1$s updated to %2$s" msgstr "" -#: src/etc/inc/dyndns.class:1297 +#: src/etc/inc/dyndns.class:1305 msgid "" "Invalid Credentials! Don't forget to use API Key for password field with " "CloudFlare." msgstr "" -#: src/etc/inc/dyndns.class:1299 +#: src/etc/inc/dyndns.class:1307 msgid "Zone or Host ID was not found, check the hostname." msgstr "" -#: src/etc/inc/dyndns.class:1301 +#: src/etc/inc/dyndns.class:1309 msgid "UNKNOWN ERROR" msgstr "" -#: src/etc/inc/dyndns.class:1324 +#: src/etc/inc/dyndns.class:1332 msgid "Wrong values - Update could not be completed." msgstr "" -#: src/etc/inc/dyndns.class:1326 +#: src/etc/inc/dyndns.class:1334 msgid "Unknown username - User does not exist." msgstr "" -#: src/etc/inc/dyndns.class:1328 +#: src/etc/inc/dyndns.class:1336 msgid "Wrong password - Remember password is case sensitive." msgstr "" -#: src/etc/inc/dyndns.class:1330 +#: src/etc/inc/dyndns.class:1338 msgid "User unable to administer the selected domain." msgstr "" -#: src/etc/inc/dyndns.class:1367 +#: src/etc/inc/dyndns.class:1375 msgid "Not A FQDN" msgstr "" -#: src/etc/inc/dyndns.class:1377 +#: src/etc/inc/dyndns.class:1385 msgid "Hostname does not exist or DynDNS not enabled" msgstr "" -#: src/etc/inc/dyndns.class:1379 +#: src/etc/inc/dyndns.class:1387 msgid "Bad request" msgstr "" -#: src/etc/inc/dyndns.class:1381 +#: src/etc/inc/dyndns.class:1389 msgid "Dynamic DNS access has been blocked!" msgstr "" -#: src/etc/inc/dyndns.class:1383 +#: src/etc/inc/dyndns.class:1391 msgid "Error on Google's end, retry in 5 minutes" msgstr "" -#: src/etc/inc/dyndns.class:1397 +#: src/etc/inc/dyndns.class:1405 msgid "Invalid username or password" msgstr "" -#: src/etc/inc/dyndns.class:1400 +#: src/etc/inc/dyndns.class:1408 msgid "Account suspended" msgstr "" -#: src/etc/inc/dyndns.class:1403 +#: src/etc/inc/dyndns.class:1411 msgid "Account revoked" msgstr "" -#: src/etc/inc/dyndns.class:1406 +#: src/etc/inc/dyndns.class:1414 msgid "Record does not exist in the system. Unable to update record" msgstr "" -#: src/etc/inc/dyndns.class:1409 +#: src/etc/inc/dyndns.class:1417 msgid "User does not have access to this record" msgstr "" -#: src/etc/inc/dyndns.class:1416 +#: src/etc/inc/dyndns.class:1424 msgid "General system error recognized by the system" msgstr "" -#: src/etc/inc/dyndns.class:1419 +#: src/etc/inc/dyndns.class:1427 msgid "General system error unrecognized by the system" msgstr "" -#: src/etc/inc/dyndns.class:1456 +#: src/etc/inc/dyndns.class:1463 #, php-format msgid "DynDNS updated IP Address on %1$s (%2$s) to %3$s" msgstr "" -#: src/etc/inc/dyndns.class:1457 src/etc/inc/dyndns.class:1465 -#: src/etc/inc/services.inc:2535 +#: src/etc/inc/dyndns.class:1464 src/etc/inc/dyndns.class:1472 +#: src/etc/inc/services.inc:2576 #, php-format msgid "phpDynDNS: updating cache file %1$s: %2$s" msgstr "" -#: src/etc/inc/dyndns.class:1464 +#: src/etc/inc/dyndns.class:1471 #, php-format msgid "DynDNS updated IPv6 Address on %s (%s) to %s" msgstr "" -#: src/etc/inc/dyndns.class:1481 +#: src/etc/inc/dyndns.class:1487 msgid "ERROR!" msgstr "" -#: src/etc/inc/dyndns.class:1487 +#: src/etc/inc/dyndns.class:1493 msgid "No Dynamic DNS Service provider was selected." msgstr "" -#: src/etc/inc/dyndns.class:1490 +#: src/etc/inc/dyndns.class:1496 msgid "No Username Provided." msgstr "" -#: src/etc/inc/dyndns.class:1493 +#: src/etc/inc/dyndns.class:1499 msgid "No Password Provided." msgstr "" -#: src/etc/inc/dyndns.class:1496 +#: src/etc/inc/dyndns.class:1502 msgid "No Hostname Provided." msgstr "" -#: src/etc/inc/dyndns.class:1499 +#: src/etc/inc/dyndns.class:1505 msgid "The Dynamic DNS Service provided is not yet supported." msgstr "" -#: src/etc/inc/dyndns.class:1502 +#: src/etc/inc/dyndns.class:1508 msgid "No Update URL Provided." msgstr "" -#: src/etc/inc/dyndns.class:1505 +#: src/etc/inc/dyndns.class:1511 msgid "Invalid ZoneID" msgstr "" -#: src/etc/inc/dyndns.class:1508 +#: src/etc/inc/dyndns.class:1514 msgid "Invalid TTL" msgstr "" -#: src/etc/inc/dyndns.class:1511 +#: src/etc/inc/dyndns.class:1517 #, php-format msgid "" "No change in my IP address and/or %s days has not passed. Not updating " "dynamic DNS entry." msgstr "" -#: src/etc/inc/dyndns.class:1514 +#: src/etc/inc/dyndns.class:1520 msgid "Unknown Response." msgstr "" -#: src/etc/inc/dyndns.class:1533 +#: src/etc/inc/dyndns.class:1539 #, php-format msgid "Dynamic DNS %1$s (%2$s): _detectChange() starting." msgstr "" -#: src/etc/inc/dyndns.class:1540 +#: src/etc/inc/dyndns.class:1546 #, php-format msgid "" "Dynamic Dns (%s): Current WAN IP could not be determined, skipping update " "process." msgstr "" -#: src/etc/inc/dyndns.class:1543 +#: src/etc/inc/dyndns.class:1549 #, php-format msgid "Dynamic Dns (%1$s): Current WAN IP: %2$s" msgstr "" -#: src/etc/inc/dyndns.class:1551 +#: src/etc/inc/dyndns.class:1557 #, php-format msgid "Cached IPv6: %s" msgstr "" -#: src/etc/inc/dyndns.class:1559 +#: src/etc/inc/dyndns.class:1563 msgid "No Cached IPv6 found." msgstr "" -#: src/etc/inc/dyndns.class:1567 +#: src/etc/inc/dyndns.class:1571 #, php-format msgid "Cached IP: %s" msgstr "" -#: src/etc/inc/dyndns.class:1575 +#: src/etc/inc/dyndns.class:1577 msgid "No Cached IP found." msgstr "" -#: src/etc/inc/dyndns.class:1589 +#: src/etc/inc/dyndns.class:1591 msgid "Dynamic Dns: cacheIP != wan_ip. Updating." msgstr "" -#: src/etc/inc/dyndns.class:1590 +#: src/etc/inc/dyndns.class:1592 #, php-format msgid "Cached IP: %1$s WAN IP: %2$s" msgstr "" -#: src/etc/inc/dyndns.class:1595 +#: src/etc/inc/dyndns.class:1597 #, php-format msgid "Dynamic Dns: More than %s days. Updating." msgstr "" -#: src/etc/inc/dyndns.class:1600 +#: src/etc/inc/dyndns.class:1602 msgid "Initial update." msgstr "" @@ -1348,10 +1316,10 @@ msgid "Unknown pass error." msgstr "" #: src/etc/inc/filter.inc:48 src/etc/inc/filter.inc:78 -#: src/usr/local/www/firewall_rules_edit.php:1194 -#: src/usr/local/www/firewall_rules_edit.php:1236 -#: src/usr/local/www/firewall_rules_edit.php:1287 -#: src/usr/local/www/firewall_rules_edit.php:1339 +#: src/usr/local/www/firewall_rules_edit.php:1189 +#: src/usr/local/www/firewall_rules_edit.php:1231 +#: src/usr/local/www/firewall_rules_edit.php:1282 +#: src/usr/local/www/firewall_rules_edit.php:1337 msgid "any" msgstr "" @@ -1420,10 +1388,10 @@ msgstr "" msgid "Address mask reply" msgstr "" -#: src/etc/inc/filter.inc:65 src/usr/local/www/diag_dns.php:319 +#: src/etc/inc/filter.inc:65 src/usr/local/www/diag_dns.php:308 #: src/usr/local/www/diag_traceroute.php:37 -#: src/usr/local/www/diag_traceroute.php:115 -#: src/usr/local/www/diag_traceroute.php:164 src/usr/local/www/head.inc:365 +#: src/usr/local/www/diag_traceroute.php:121 +#: src/usr/local/www/diag_traceroute.php:170 src/usr/local/www/head.inc:359 msgid "Traceroute" msgstr "" @@ -1576,19 +1544,19 @@ msgstr "" #: src/etc/inc/interfaces.inc:347 src/etc/inc/interfaces.inc:409 #: src/etc/inc/interfaces.inc:717 src/etc/inc/interfaces.inc:1071 #: src/etc/inc/interfaces.inc:1102 src/etc/inc/interfaces.inc:1126 -#: src/etc/inc/interfaces.inc:1147 src/etc/inc/interfaces.inc:2168 -#: src/etc/inc/pkg-utils.inc:538 src/etc/inc/pkg-utils.inc:687 -#: src/etc/inc/pkg-utils.inc:711 src/etc/inc/pkg-utils.inc:747 -#: src/etc/inc/pkg-utils.inc:752 src/etc/inc/pkg-utils.inc:757 -#: src/etc/inc/pkg-utils.inc:775 src/etc/inc/pkg-utils.inc:792 -#: src/etc/inc/pkg-utils.inc:814 src/etc/inc/pkg-utils.inc:857 -#: src/etc/inc/pkg-utils.inc:883 src/etc/inc/pkg-utils.inc:926 -#: src/etc/inc/pkg-utils.inc:945 src/etc/inc/rrd.inc:1030 -#: src/etc/inc/services.inc:1572 src/etc/inc/services.inc:1958 -#: src/etc/inc/services.inc:2175 src/etc/inc/services.inc:2217 -#: src/etc/inc/services.inc:2426 src/etc/inc/system.inc:1064 -#: src/etc/inc/system.inc:1162 src/etc/inc/system.inc:1465 -#: src/etc/inc/system.inc:1999 +#: src/etc/inc/interfaces.inc:1147 src/etc/inc/interfaces.inc:2160 +#: src/etc/inc/pkg-utils.inc:529 src/etc/inc/pkg-utils.inc:677 +#: src/etc/inc/pkg-utils.inc:700 src/etc/inc/pkg-utils.inc:736 +#: src/etc/inc/pkg-utils.inc:741 src/etc/inc/pkg-utils.inc:746 +#: src/etc/inc/pkg-utils.inc:764 src/etc/inc/pkg-utils.inc:781 +#: src/etc/inc/pkg-utils.inc:803 src/etc/inc/pkg-utils.inc:844 +#: src/etc/inc/pkg-utils.inc:870 src/etc/inc/pkg-utils.inc:913 +#: src/etc/inc/pkg-utils.inc:932 src/etc/inc/rrd.inc:1030 +#: src/etc/inc/services.inc:1594 src/etc/inc/services.inc:1992 +#: src/etc/inc/services.inc:2209 src/etc/inc/services.inc:2251 +#: src/etc/inc/services.inc:2456 src/etc/inc/system.inc:1092 +#: src/etc/inc/system.inc:1190 src/etc/inc/system.inc:1493 +#: src/etc/inc/system.inc:2023 msgid "done." msgstr "" @@ -1630,235 +1598,232 @@ msgstr "" msgid "Plugins completed." msgstr "" -#: src/etc/inc/filter.inc:540 src/usr/local/www/restart_httpd.php:41 -#: src/usr/local/www/restart_httpd.php:44 -#: src/usr/local/www/restart_httpd.php:47 -#: src/usr/local/www/restart_httpd.php:50 +#: src/etc/inc/filter.inc:540 msgid "Done" msgstr "" -#: src/etc/inc/filter.inc:768 +#: src/etc/inc/filter.inc:766 #, php-format msgid "Aliases with numeric-only names are not valid. Skipping alias %s" msgstr "" -#: src/etc/inc/filter.inc:846 +#: src/etc/inc/filter.inc:844 msgid "Creating gateway group item..." msgstr "" -#: src/etc/inc/filter.inc:886 +#: src/etc/inc/filter.inc:884 #, php-format msgid "Setting up route with %1$s on %2$s" msgstr "" -#: src/etc/inc/filter.inc:890 +#: src/etc/inc/filter.inc:888 #, php-format msgid "Too many members in group %s, gateway group truncated in ruleset." msgstr "" -#: src/etc/inc/filter.inc:902 +#: src/etc/inc/filter.inc:900 #, php-format msgid "" "An error occurred while trying to find the interface got %s . The rule has " "not been added." msgstr "" -#: src/etc/inc/filter.inc:1255 +#: src/etc/inc/filter.inc:1253 #, php-format msgid "Creating reflection NAT rule for %s..." msgstr "" -#: src/etc/inc/filter.inc:1353 +#: src/etc/inc/filter.inc:1351 #, php-format msgid "Creating reflection rule for %s..." msgstr "" -#: src/etc/inc/filter.inc:1474 +#: src/etc/inc/filter.inc:1472 msgid "Not installing NAT reflection rules for a port range > 500" msgstr "" -#: src/etc/inc/filter.inc:1480 +#: src/etc/inc/filter.inc:1478 msgid "Installing partial NAT reflection rules. Maximum 1,000 reached." msgstr "" -#: src/etc/inc/filter.inc:1561 +#: src/etc/inc/filter.inc:1559 msgid "localhost" msgstr "" -#: src/etc/inc/filter.inc:1569 +#: src/etc/inc/filter.inc:1567 msgid "static route" msgstr "" -#: src/etc/inc/filter.inc:1581 +#: src/etc/inc/filter.inc:1579 msgid "DHCP alias address" msgstr "" -#: src/etc/inc/filter.inc:1615 +#: src/etc/inc/filter.inc:1613 msgid "PPPoE server" msgstr "" -#: src/etc/inc/filter.inc:1626 +#: src/etc/inc/filter.inc:1624 msgid "L2TP server" msgstr "" -#: src/etc/inc/filter.inc:1635 +#: src/etc/inc/filter.inc:1633 msgid "OpenVPN server" msgstr "" -#: src/etc/inc/filter.inc:1644 +#: src/etc/inc/filter.inc:1642 msgid "OpenVPN client" msgstr "" -#: src/etc/inc/filter.inc:1654 +#: src/etc/inc/filter.inc:1652 msgid "IPsec client" msgstr "" -#: src/etc/inc/filter.inc:1690 +#: src/etc/inc/filter.inc:1688 msgid "Auto created rule for ISAKMP" msgstr "" -#: src/etc/inc/filter.inc:1700 +#: src/etc/inc/filter.inc:1698 msgid "Auto created rule" msgstr "" -#: src/etc/inc/filter.inc:1833 +#: src/etc/inc/filter.inc:1831 msgid "Creating 1:1 rules..." msgstr "" -#: src/etc/inc/filter.inc:2018 +#: src/etc/inc/filter.inc:2016 #, php-format msgid "Creating advanced outbound rule %s" msgstr "" -#: src/etc/inc/filter.inc:2060 +#: src/etc/inc/filter.inc:2063 msgid "Creating outbound NAT rules" msgstr "" -#: src/etc/inc/filter.inc:2067 +#: src/etc/inc/filter.inc:2070 msgid "Creating automatic outbound rules" msgstr "" -#: src/etc/inc/filter.inc:2097 +#: src/etc/inc/filter.inc:2100 msgid "Setting up TFTP helper" msgstr "" -#: src/etc/inc/filter.inc:2139 +#: src/etc/inc/filter.inc:2142 #, php-format msgid "Creating NAT rule %s" msgstr "" -#: src/etc/inc/filter.inc:2367 +#: src/etc/inc/filter.inc:2370 #, php-format msgid "Creating filter rule %s ..." msgstr "" -#: src/etc/inc/filter.inc:2391 +#: src/etc/inc/filter.inc:2394 #, php-format msgid "filter_generate_port: %1$s is not a valid %2$s port." msgstr "" -#: src/etc/inc/filter.inc:2628 +#: src/etc/inc/filter.inc:2631 #, php-format msgid "Creating filter rules %s ..." msgstr "" -#: src/etc/inc/filter.inc:2683 +#: src/etc/inc/filter.inc:2686 #, php-format msgid "Unresolvable source alias '%1$s' for rule '%2$s'" msgstr "" -#: src/etc/inc/filter.inc:2688 +#: src/etc/inc/filter.inc:2691 #, php-format msgid "Unresolvable destination alias '%1$s' for rule '%2$s'" msgstr "" -#: src/etc/inc/filter.inc:2692 +#: src/etc/inc/filter.inc:2695 msgid "Setting up pass/block rules" msgstr "" -#: src/etc/inc/filter.inc:2719 +#: src/etc/inc/filter.inc:2722 #, php-format msgid "Setting up pass/block rules %s" msgstr "" -#: src/etc/inc/filter.inc:2743 +#: src/etc/inc/filter.inc:2746 #, php-format msgid "The gateway: %s is invalid or unknown, not using it." msgstr "" -#: src/etc/inc/filter.inc:2762 +#: src/etc/inc/filter.inc:2765 #, php-format msgid "Creating rule %s" msgstr "" -#: src/etc/inc/filter.inc:3005 +#: src/etc/inc/filter.inc:3008 #, php-format msgid "[TDR DEBUG] status true -- rule type '%s'" msgstr "" -#: src/etc/inc/filter.inc:3049 +#: src/etc/inc/filter.inc:3052 msgid "Creating default rules" msgstr "" -#: src/etc/inc/filter.inc:3700 +#: src/etc/inc/filter.inc:3703 msgid "Creating IPsec rules..." msgstr "" -#: src/etc/inc/filter.inc:3753 +#: src/etc/inc/filter.inc:3756 msgid "" "Please use filter_tdr_install_cron() function tdr_install_cron will be " "deprecated!" msgstr "" -#: src/etc/inc/filter.inc:3802 +#: src/etc/inc/filter.inc:3805 msgid "Installed 15 minute filter reload for Time Based Rules" msgstr "" -#: src/etc/inc/filter.inc:3809 +#: src/etc/inc/filter.inc:3812 msgid "Removed 15 minute filter reload for Time Based Rules" msgstr "" -#: src/etc/inc/filter.inc:4174 +#: src/etc/inc/filter.inc:4177 #, php-format msgid "Checking for %1$s PF hooks in package %2$s" msgstr "" -#: src/etc/inc/filter.inc:4181 +#: src/etc/inc/filter.inc:4184 #, php-format msgid "Processing early %1$s rules for package %2$s" msgstr "" -#: src/etc/inc/filter.inc:4186 +#: src/etc/inc/filter.inc:4189 #, php-format msgid "There was an error while parsing the package filter rules for %s." msgstr "" -#: src/etc/inc/filter.inc:4252 +#: src/etc/inc/filter.inc:4255 msgid "delete this separator" msgstr "" -#: src/etc/inc/filter_log.inc:226 src/etc/inc/filter_log.inc:248 -#: src/etc/inc/filter_log.inc:271 src/etc/inc/filter_log.inc:294 +#: src/etc/inc/filter_log.inc:227 src/etc/inc/filter_log.inc:249 +#: src/etc/inc/filter_log.inc:272 src/etc/inc/filter_log.inc:295 #, php-format msgid "" "There was a error parsing log entry: %s. Please report to mailing list or " "forum." msgstr "" -#: src/etc/inc/filter_log.inc:425 +#: src/etc/inc/filter_log.inc:426 #, php-format msgid "" "There was a error parsing rule number: %s. Please report to mailing list or " "forum." msgstr "" -#: src/etc/inc/filter_log.inc:435 +#: src/etc/inc/filter_log.inc:436 #, php-format msgid "" "There was a error parsing rule: %s. Please report to mailing list or forum." msgstr "" -#: src/etc/inc/filter_log.inc:449 +#: src/etc/inc/filter_log.inc:450 #, php-format msgid "Service %1$s/%2$s: %3$s" msgstr "" @@ -1885,8 +1850,8 @@ msgstr "" #: src/etc/inc/gmirror.inc:73 src/etc/inc/shaper.inc:805 #: src/etc/inc/shaper.inc:1201 src/etc/inc/shaper.inc:1414 -#: src/etc/inc/shaper.inc:3279 src/etc/inc/shaper.inc:3826 -#: src/etc/inc/shaper.inc:4139 src/usr/local/www/diag_gmirror.php:221 +#: src/etc/inc/shaper.inc:3281 src/etc/inc/shaper.inc:3828 +#: src/etc/inc/shaper.inc:4141 src/usr/local/www/diag_gmirror.php:221 #: src/usr/local/www/diag_gmirror.php:302 #: src/usr/local/www/firewall_aliases.php:196 #: src/usr/local/www/firewall_aliases_edit.php:141 @@ -1905,8 +1870,8 @@ msgstr "" #: src/usr/local/www/load_balancer_virtual_server_edit.php:75 #: src/usr/local/www/load_balancer_virtual_server_edit.php:176 #: src/usr/local/www/pkg_mgr.php:65 src/usr/local/www/pkg_mgr.php:156 -#: src/usr/local/www/pkg_mgr_installed.php:77 -#: src/usr/local/www/services_captiveportal_filemanager.php:190 +#: src/usr/local/www/pkg_mgr_installed.php:75 +#: src/usr/local/www/services_captiveportal_filemanager.php:188 #: src/usr/local/www/services_checkip.php:87 #: src/usr/local/www/services_checkip_edit.php:63 #: src/usr/local/www/services_checkip_edit.php:130 @@ -1914,26 +1879,26 @@ msgstr "" #: src/usr/local/www/status_gateways.php:59 #: src/usr/local/www/status_lb_pool.php:129 #: src/usr/local/www/status_lb_vs.php:62 -#: src/usr/local/www/status_openvpn.php:222 -#: src/usr/local/www/status_openvpn.php:278 -#: src/usr/local/www/system_camanager.php:352 -#: src/usr/local/www/system_certmanager.php:928 +#: src/usr/local/www/status_openvpn.php:224 +#: src/usr/local/www/status_openvpn.php:280 +#: src/usr/local/www/system_camanager.php:357 +#: src/usr/local/www/system_certmanager.php:949 #: src/usr/local/www/system_crlmanager.php:576 #: src/usr/local/www/system_gateways.php:242 #: src/usr/local/www/system_gateways_edit.php:108 #: src/usr/local/www/system_gateways_edit.php:604 -#: src/usr/local/www/system_groupmanager.php:236 -#: src/usr/local/www/system_usermanager.php:444 -#: src/usr/local/www/system_usermanager.php:494 -#: src/usr/local/www/widgets/widgets/gateways.widget.php:57 +#: src/usr/local/www/system_groupmanager.php:230 +#: src/usr/local/www/system_usermanager.php:438 +#: src/usr/local/www/system_usermanager.php:488 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:59 #: src/usr/local/www/widgets/widgets/installed_packages.widget.php:50 -#: src/usr/local/www/widgets/widgets/system_information.widget.php:86 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:93 msgid "Name" msgstr "" -#: src/etc/inc/gmirror.inc:74 src/usr/local/www/diag_gmirror.php:222 -#: src/usr/local/www/easyrule.php:78 src/usr/local/www/index.php:289 -#: src/usr/local/www/pkg_mgr_install.php:475 +#: src/etc/inc/gmirror.inc:74 src/usr/local/www/diag_arp.php:336 +#: src/usr/local/www/diag_gmirror.php:222 src/usr/local/www/easyrule.php:78 +#: src/usr/local/www/index.php:289 src/usr/local/www/pkg_mgr_install.php:475 #: src/usr/local/www/status_captiveportal.php:92 #: src/usr/local/www/status_captiveportal_expire.php:53 #: src/usr/local/www/status_captiveportal_test.php:53 @@ -1946,7 +1911,7 @@ msgstr "" #: src/usr/local/www/status_gateway_groups.php:47 #: src/usr/local/www/status_gateways.php:41 #: src/usr/local/www/status_gateways.php:65 -#: src/usr/local/www/status_graph.php:132 +#: src/usr/local/www/status_graph.php:120 #: src/usr/local/www/status_graph_cpu.php:33 #: src/usr/local/www/status_interfaces.php:78 #: src/usr/local/www/status_interfaces.php:94 @@ -1962,12 +1927,13 @@ msgstr "" #: src/usr/local/www/status_logs_filter.php:102 #: src/usr/local/www/status_logs_filter_dynamic.php:82 #: src/usr/local/www/status_logs_filter_summary.php:67 -#: src/usr/local/www/status_logs_settings.php:180 +#: src/usr/local/www/status_logs_settings.php:188 #: src/usr/local/www/status_logs_vpn.php:84 #: src/usr/local/www/status_ntpd.php:254 src/usr/local/www/status_ntpd.php:266 #: src/usr/local/www/status_openvpn.php:30 -#: src/usr/local/www/status_openvpn.php:223 -#: src/usr/local/www/status_openvpn.php:279 +#: src/usr/local/www/status_openvpn.php:144 +#: src/usr/local/www/status_openvpn.php:225 +#: src/usr/local/www/status_openvpn.php:281 #: src/usr/local/www/status_pkglogs.php:71 #: src/usr/local/www/status_queues.php:110 #: src/usr/local/www/status_services.php:56 @@ -1976,9 +1942,9 @@ msgstr "" #: src/usr/local/www/status_wireless.php:31 #: src/usr/local/www/status_wireless.php:62 #: src/usr/local/www/widgets/widgets/carp_status.widget.php:39 -#: src/usr/local/www/widgets/widgets/gateways.widget.php:61 -#: src/usr/local/www/widgets/widgets/ipsec.widget.php:206 -#: src/usr/local/www/widgets/widgets/ipsec.widget.php:222 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:63 +#: src/usr/local/www/widgets/widgets/ipsec.widget.php:207 +#: src/usr/local/www/widgets/widgets/ipsec.widget.php:223 #: src/usr/local/www/widgets/widgets/wake_on_lan.widget.php:41 msgid "Status" msgstr "" @@ -2027,6 +1993,11 @@ msgstr "" msgid "MONITOR: %1$s has high latency, omitting from routing group %2$s" msgstr "" +#: src/etc/inc/gwlb.inc:940 +#, php-format +msgid "MONITOR: %1$s is available now, adding to routing group %2$s" +msgstr "" + #: src/etc/inc/gwlb.inc:956 #, php-format msgid "" @@ -2144,137 +2115,137 @@ msgstr "" msgid "Wrong parameters used during interface_bring_down" msgstr "" -#: src/etc/inc/interfaces.inc:1410 +#: src/etc/inc/interfaces.inc:1406 msgid "Enter CARP maintenance mode" msgstr "" -#: src/etc/inc/interfaces.inc:1596 +#: src/etc/inc/interfaces.inc:1592 #, php-format msgid "Can't find PPP config for %s in interface_ppps_configure()." msgstr "" -#: src/etc/inc/interfaces.inc:1654 +#: src/etc/inc/interfaces.inc:1650 #, php-format msgid "" "Could not get a Local IP address for PPTP/L2TP link on %s in " "interfaces_ppps_configure. Using 0.0.0.0 ip!" msgstr "" -#: src/etc/inc/interfaces.inc:1658 +#: src/etc/inc/interfaces.inc:1654 #, php-format msgid "" "Could not get a PPTP/L2TP Remote IP address from %1$s for %2$s in " "interfaces_ppps_configure." msgstr "" -#: src/etc/inc/interfaces.inc:1665 +#: src/etc/inc/interfaces.inc:1661 #, php-format msgid "" "Device %s does not exist. PPP link cannot start without the modem device." msgstr "" -#: src/etc/inc/interfaces.inc:1670 +#: src/etc/inc/interfaces.inc:1666 #, php-format msgid "Unknown %s configured as ppp interface." msgstr "" -#: src/etc/inc/interfaces.inc:1990 +#: src/etc/inc/interfaces.inc:1986 #, php-format msgid "Error: cannot open mpd_%1$s.conf in interface_ppps_configure().%2$s" msgstr "" -#: src/etc/inc/interfaces.inc:2089 +#: src/etc/inc/interfaces.inc:2081 #, php-format msgid "Starting 3gstats.php on device '%1$s' for interface '%2$s'" msgstr "" -#: src/etc/inc/interfaces.inc:2106 +#: src/etc/inc/interfaces.inc:2098 msgid "Configuring CARP settings..." msgstr "" -#: src/etc/inc/interfaces.inc:2147 +#: src/etc/inc/interfaces.inc:2139 msgid "waiting for pfsync..." msgstr "" -#: src/etc/inc/interfaces.inc:2153 +#: src/etc/inc/interfaces.inc:2145 #, php-format msgid "pfsync done in %s seconds." msgstr "" -#: src/etc/inc/interfaces.inc:2154 +#: src/etc/inc/interfaces.inc:2146 msgid "Configuring CARP settings finalize..." msgstr "" -#: src/etc/inc/interfaces.inc:2377 +#: src/etc/inc/interfaces.inc:2369 #, php-format msgid "" "Interface specified for the virtual IP address %s does not exist. Skipping " "this VIP." msgstr "" -#: src/etc/inc/interfaces.inc:2437 +#: src/etc/inc/interfaces.inc:2429 #, php-format msgid "Interface %s changed to hostap mode" msgstr "" -#: src/etc/inc/interfaces.inc:2441 +#: src/etc/inc/interfaces.inc:2433 #, php-format msgid "Interface %s changed to adhoc mode" msgstr "" -#: src/etc/inc/interfaces.inc:2445 +#: src/etc/inc/interfaces.inc:2437 #, php-format msgid "Interface %s changed to infrastructure mode" msgstr "" -#: src/etc/inc/interfaces.inc:2458 +#: src/etc/inc/interfaces.inc:2450 #, php-format msgid "Cloning new wireless interface %s" msgstr "" -#: src/etc/inc/interfaces.inc:2463 +#: src/etc/inc/interfaces.inc:2455 #, php-format msgid "Failed to clone interface %1$s with error code %2$s, output %3$s" msgstr "" -#: src/etc/inc/interfaces.inc:3048 +#: src/etc/inc/interfaces.inc:3047 #, php-format msgid "OpenVPN: Resync server %s" msgstr "" -#: src/etc/inc/interfaces.inc:3061 +#: src/etc/inc/interfaces.inc:3060 #, php-format msgid "OpenVPN: Resync client %s" msgstr "" -#: src/etc/inc/interfaces.inc:3196 +#: src/etc/inc/interfaces.inc:3195 #, php-format msgid "Deny router advertisements for interface %s" msgstr "" -#: src/etc/inc/interfaces.inc:3221 +#: src/etc/inc/interfaces.inc:3220 msgid "Generating new MAC address." msgstr "" -#: src/etc/inc/interfaces.inc:3227 +#: src/etc/inc/interfaces.inc:3226 #, php-format msgid "" "The INVALID MAC address (ff:ff:ff:ff:ff:ff) on interface %1$s has been " "automatically replaced with %2$s" msgstr "" -#: src/etc/inc/interfaces.inc:3293 +#: src/etc/inc/interfaces.inc:3292 #, php-format msgid "There is a conflict on MTU between parent %1$s and VLAN(%2$s)" msgstr "" -#: src/etc/inc/interfaces.inc:3484 src/etc/inc/interfaces.inc:3553 +#: src/etc/inc/interfaces.inc:3483 src/etc/inc/interfaces.inc:3553 #: src/etc/inc/interfaces.inc:3617 #, php-format msgid "Interface %1$s tracking non-existent interface %2$s" msgstr "" -#: src/etc/inc/interfaces.inc:3491 src/etc/inc/interfaces.inc:3497 +#: src/etc/inc/interfaces.inc:3490 src/etc/inc/interfaces.inc:3496 #, php-format msgid "Interface %1$s configured via %2$s type %3$s" msgstr "" @@ -2304,49 +2275,49 @@ msgstr "" msgid "sixto4 %1$s with ipv6 address %2$s based on %3$s ipv4 %4$s" msgstr "" -#: src/etc/inc/interfaces.inc:4150 +#: src/etc/inc/interfaces.inc:4169 #, php-format msgid "Error: cannot open %s in DHCP6_Config_File_Override() for reading." msgstr "" -#: src/etc/inc/interfaces.inc:4178 +#: src/etc/inc/interfaces.inc:4197 #, php-format msgid "" "Error: cannot open dhclient_%s.conf in interface_dhcp_configure() for " "writing." msgstr "" -#: src/etc/inc/interfaces.inc:4191 +#: src/etc/inc/interfaces.inc:4210 #, php-format msgid "Invalid interface \"%s\" in interface_dhcp_configure()" msgstr "" -#: src/etc/inc/interfaces.inc:4247 +#: src/etc/inc/interfaces.inc:4266 #, php-format msgid "Could not bring up %s interface in interface_dhcp_configure()" msgstr "" -#: src/etc/inc/interfaces.inc:4340 +#: src/etc/inc/interfaces.inc:4359 #, php-format msgid "Error: cannot open %s in DHCP_Config_File_Override() for reading.\n" msgstr "" -#: src/etc/inc/interfaces.inc:5345 src/etc/inc/service-utils.inc:358 -#: src/usr/local/www/diag_backup.php:534 +#: src/etc/inc/interfaces.inc:5364 src/etc/inc/service-utils.inc:358 +#: src/usr/local/www/diag_backup.php:489 #: src/usr/local/www/diag_packet_capture.php:109 #: src/usr/local/www/firewall_nat_1to1_edit.php:405 #: src/usr/local/www/firewall_nat_edit.php:671 #: src/usr/local/www/firewall_nat_npt_edit.php:172 #: src/usr/local/www/firewall_rules.php:162 -#: src/usr/local/www/firewall_rules_edit.php:1037 -#: src/usr/local/www/head.inc:289 src/usr/local/www/head.inc:307 -#: src/usr/local/www/status_graph.php:61 src/usr/local/www/status_logs.php:53 +#: src/usr/local/www/firewall_rules_edit.php:1032 +#: src/usr/local/www/head.inc:287 src/usr/local/www/head.inc:305 +#: src/usr/local/www/status_graph.php:49 src/usr/local/www/status_logs.php:53 #: src/usr/local/www/status_logs_common.inc:96 -#: src/usr/local/www/status_logs_settings.php:212 +#: src/usr/local/www/status_logs_settings.php:220 #: src/usr/local/www/status_openvpn.php:30 #: src/usr/local/www/vpn_openvpn_client.php:392 #: src/usr/local/www/vpn_openvpn_csc.php:278 -#: src/usr/local/www/vpn_openvpn_server.php:559 +#: src/usr/local/www/vpn_openvpn_server.php:563 #: src/usr/local/www/widgets/include/openvpn.inc:22 msgid "OpenVPN" msgstr "" @@ -2380,12 +2351,12 @@ msgid "Kernel Interface" msgstr "" #: src/etc/inc/ipsec.inc:33 src/etc/inc/ipsec.inc:63 -#: src/usr/local/www/system_advanced_admin.php:299 +#: src/usr/local/www/system_advanced_admin.php:297 #: src/usr/local/www/system_advanced_firewall.php:384 -#: src/usr/local/www/system_advanced_misc.php:302 +#: src/usr/local/www/system_advanced_misc.php:301 #: src/usr/local/www/system_advanced_network.php:140 #: src/usr/local/www/system_advanced_network.php:153 -#: src/usr/local/www/system_advanced_notifications.php:195 +#: src/usr/local/www/system_advanced_notifications.php:202 #: src/usr/local/www/system_advanced_sysctl.php:143 msgid "Networking" msgstr "" @@ -2451,7 +2422,7 @@ msgid "My IP address" msgstr "" #: src/etc/inc/ipsec.inc:77 src/etc/inc/ipsec.inc:89 -#: src/usr/local/www/diag_arp.php:334 src/usr/local/www/services_dhcp.php:1304 +#: src/usr/local/www/diag_arp.php:333 src/usr/local/www/services_dhcp.php:1317 #: src/usr/local/www/services_dnsmasq_domainoverride_edit.php:67 #: src/usr/local/www/services_dnsmasq_edit.php:77 #: src/usr/local/www/services_unbound_domainoverride_edit.php:63 @@ -2459,7 +2430,7 @@ msgstr "" #: src/usr/local/www/status_captiveportal.php:150 #: src/usr/local/www/status_dhcp_leases.php:346 #: src/usr/local/www/system_advanced_network.php:180 -#: src/usr/local/www/system_certmanager.php:727 +#: src/usr/local/www/system_certmanager.php:740 #: src/usr/local/www/vpn_l2tp_users.php:96 #: src/usr/local/www/widgets/widgets/captive_portal_status.widget.php:82 msgid "IP address" @@ -2481,12 +2452,12 @@ msgstr "" msgid "KeyID tag" msgstr "" -#: src/etc/inc/ipsec.inc:82 src/usr/local/www/head.inc:269 +#: src/etc/inc/ipsec.inc:82 src/usr/local/www/head.inc:267 #: src/usr/local/www/services_checkip.php:65 #: src/usr/local/www/services_checkip_edit.php:106 -#: src/usr/local/www/services_dhcp.php:977 -#: src/usr/local/www/services_dhcp_edit.php:570 -#: src/usr/local/www/services_dhcpv6.php:735 +#: src/usr/local/www/services_dhcp.php:990 +#: src/usr/local/www/services_dhcp_edit.php:577 +#: src/usr/local/www/services_dhcpv6.php:730 #: src/usr/local/www/services_dyndns.php:66 #: src/usr/local/www/services_dyndns_edit.php:239 #: src/usr/local/www/services_rfc2136.php:58 @@ -2494,16 +2465,16 @@ msgstr "" msgid "Dynamic DNS" msgstr "" -#: src/etc/inc/ipsec.inc:87 src/usr/local/www/diag_traceroute.php:136 +#: src/etc/inc/ipsec.inc:87 src/usr/local/www/diag_traceroute.php:142 #: src/usr/local/www/firewall_nat_1to1_edit.php:254 #: src/usr/local/www/firewall_nat_1to1_edit.php:296 #: src/usr/local/www/firewall_nat_edit.php:518 #: src/usr/local/www/firewall_nat_edit.php:558 #: src/usr/local/www/firewall_nat_edit.php:729 -#: src/usr/local/www/firewall_nat_out_edit.php:480 -#: src/usr/local/www/firewall_nat_out_edit.php:504 -#: src/usr/local/www/firewall_rules_edit.php:1434 -#: src/usr/local/www/interfaces.php:2916 +#: src/usr/local/www/firewall_nat_out_edit.php:495 +#: src/usr/local/www/firewall_nat_out_edit.php:519 +#: src/usr/local/www/firewall_rules_edit.php:1422 +#: src/usr/local/www/interfaces.php:2924 msgid "Any" msgstr "" @@ -2511,130 +2482,130 @@ msgstr "" msgid "Peer IP address" msgstr "" -#: src/etc/inc/ipsec.inc:163 +#: src/etc/inc/ipsec.inc:166 msgid "Hybrid RSA + Xauth" msgstr "" -#: src/etc/inc/ipsec.inc:164 +#: src/etc/inc/ipsec.inc:167 msgid "Mutual RSA + Xauth" msgstr "" -#: src/etc/inc/ipsec.inc:165 +#: src/etc/inc/ipsec.inc:168 msgid "Mutual PSK + Xauth" msgstr "" -#: src/etc/inc/ipsec.inc:166 +#: src/etc/inc/ipsec.inc:169 msgid "EAP-TLS" msgstr "" -#: src/etc/inc/ipsec.inc:167 +#: src/etc/inc/ipsec.inc:170 msgid "EAP-RADIUS" msgstr "" -#: src/etc/inc/ipsec.inc:168 +#: src/etc/inc/ipsec.inc:171 msgid "EAP-MSChapv2" msgstr "" -#: src/etc/inc/ipsec.inc:169 +#: src/etc/inc/ipsec.inc:172 msgid "Mutual RSA" msgstr "" -#: src/etc/inc/ipsec.inc:170 +#: src/etc/inc/ipsec.inc:173 msgid "Mutual PSK" msgstr "" -#: src/etc/inc/ipsec.inc:181 +#: src/etc/inc/ipsec.inc:184 msgid "Tunnel IPv4" msgstr "" -#: src/etc/inc/ipsec.inc:182 +#: src/etc/inc/ipsec.inc:185 msgid "Tunnel IPv6" msgstr "" -#: src/etc/inc/ipsec.inc:183 src/usr/local/www/system_authservers.php:233 +#: src/etc/inc/ipsec.inc:186 src/usr/local/www/system_authservers.php:233 #: src/usr/local/www/system_authservers.php:524 msgid "Transport" msgstr "" -#: src/etc/inc/ipsec.inc:194 +#: src/etc/inc/ipsec.inc:197 msgid "off" msgstr "" -#: src/etc/inc/ipsec.inc:195 +#: src/etc/inc/ipsec.inc:198 msgid "1 (768 bit)" msgstr "" -#: src/etc/inc/ipsec.inc:196 +#: src/etc/inc/ipsec.inc:199 msgid "2 (1024 bit)" msgstr "" -#: src/etc/inc/ipsec.inc:197 +#: src/etc/inc/ipsec.inc:200 msgid "5 (1536 bit)" msgstr "" -#: src/etc/inc/ipsec.inc:198 +#: src/etc/inc/ipsec.inc:201 msgid "14 (2048 bit)" msgstr "" -#: src/etc/inc/ipsec.inc:199 +#: src/etc/inc/ipsec.inc:202 msgid "15 (3072 bit)" msgstr "" -#: src/etc/inc/ipsec.inc:200 +#: src/etc/inc/ipsec.inc:203 msgid "16 (4096 bit)" msgstr "" -#: src/etc/inc/ipsec.inc:201 +#: src/etc/inc/ipsec.inc:204 msgid "17 (6144 bit)" msgstr "" -#: src/etc/inc/ipsec.inc:202 +#: src/etc/inc/ipsec.inc:205 msgid "18 (8192 bit)" msgstr "" -#: src/etc/inc/ipsec.inc:203 +#: src/etc/inc/ipsec.inc:206 msgid "19 (nist ecp256)" msgstr "" -#: src/etc/inc/ipsec.inc:204 +#: src/etc/inc/ipsec.inc:207 msgid "20 (nist ecp384)" msgstr "" -#: src/etc/inc/ipsec.inc:205 +#: src/etc/inc/ipsec.inc:208 msgid "21 (nist ecp521)" msgstr "" -#: src/etc/inc/ipsec.inc:206 +#: src/etc/inc/ipsec.inc:209 msgid "28 (brainpool ecp256)" msgstr "" -#: src/etc/inc/ipsec.inc:207 +#: src/etc/inc/ipsec.inc:210 msgid "29 (brainpool ecp384)" msgstr "" -#: src/etc/inc/ipsec.inc:208 +#: src/etc/inc/ipsec.inc:211 msgid "30 (brainpool ecp512)" msgstr "" -#: src/etc/inc/ipsec.inc:405 src/usr/local/www/vpn_ipsec.php:318 +#: src/etc/inc/ipsec.inc:408 src/usr/local/www/vpn_ipsec.php:318 msgid "Mobile Client" msgstr "" -#: src/etc/inc/ipsec.inc:408 src/etc/inc/pfsense-utils.inc:3149 -#: src/etc/inc/shaper.inc:3862 src/etc/inc/shaper.inc:4166 +#: src/etc/inc/ipsec.inc:411 src/etc/inc/pfsense-utils.inc:2984 +#: src/etc/inc/shaper.inc:3864 src/etc/inc/shaper.inc:4168 #: src/usr/local/www/diag_pftop.php:116 #: src/usr/local/www/firewall_nat_edit.php:893 -#: src/usr/local/www/firewall_rules_edit.php:1545 -#: src/usr/local/www/interfaces.php:1616 src/usr/local/www/interfaces.php:1617 -#: src/usr/local/www/interfaces.php:1641 src/usr/local/www/interfaces.php:1654 +#: src/usr/local/www/firewall_rules_edit.php:1533 +#: src/usr/local/www/interfaces.php:1619 src/usr/local/www/interfaces.php:1620 +#: src/usr/local/www/interfaces.php:1644 src/usr/local/www/interfaces.php:1657 #: src/usr/local/www/services_ntpd_gps.php:240 #: src/usr/local/www/services_ntpd_pps.php:148 -#: src/usr/local/www/system_advanced_misc.php:438 -#: src/usr/local/www/vpn_ipsec_phase2.php:546 +#: src/usr/local/www/system_advanced_misc.php:437 +#: src/usr/local/www/vpn_ipsec_phase2.php:541 msgid "None" msgstr "" -#: src/etc/inc/ipsec.inc:602 +#: src/etc/inc/ipsec.inc:605 msgid "" "Unable to find IPsec daemon leases file. Could not display mobile user stats!" msgstr "" @@ -2679,26 +2650,41 @@ msgstr "" msgid "New alert found: %s" msgstr "" -#: src/etc/inc/notices.inc:365 +#: src/etc/inc/notices.inc:377 #, php-format -msgid "Message sent to %s OK" +msgid "Could not send the message to %1$s -- Error: %2$s" msgstr "" -#: src/etc/inc/notices.inc:368 src/etc/inc/notices.inc:369 +#: src/etc/inc/notices.inc:383 #, php-format -msgid "Could not send the message to %1$s -- Error: %2$s" +msgid "Message sent to %s OK" msgstr "" -#: src/etc/inc/notices.inc:409 src/etc/inc/notices.inc:442 +#: src/etc/inc/notices.inc:420 src/etc/inc/notices.inc:476 msgid "" "Growl IP Address is invalid. Check the setting in System Advanced " "Notifications." msgstr "" -#: src/etc/inc/openvpn.inc:43 src/usr/local/www/firewall_rules.php:747 -#: src/usr/local/www/firewall_rules_edit.php:1584 -#: src/usr/local/www/firewall_rules_edit.php:1625 -#: src/usr/local/www/firewall_rules_edit.php:1632 +#: src/etc/inc/notices.inc:439 +#, php-format +msgid "%s (%s) - Notification" +msgstr "" + +#: src/etc/inc/notices.inc:443 +#, php-format +msgid "Could not send Growl notification to %1$s -- Error: %2$s" +msgstr "" + +#: src/etc/inc/notices.inc:501 +#, php-format +msgid "Could not send register Growl on %1$s -- Error: %2$s" +msgstr "" + +#: src/etc/inc/openvpn.inc:43 src/usr/local/www/firewall_rules.php:746 +#: src/usr/local/www/firewall_rules_edit.php:1572 +#: src/usr/local/www/firewall_rules_edit.php:1613 +#: src/usr/local/www/firewall_rules_edit.php:1620 #: src/usr/local/www/status_ipsec.php:329 #: src/usr/local/www/vpn_ipsec_mobile.php:462 #: src/usr/local/www/vpn_openvpn_client.php:501 @@ -2706,7 +2692,7 @@ msgid "none" msgstr "" #: src/etc/inc/openvpn.inc:44 src/usr/local/www/diag_pftop.php:94 -#: src/usr/local/www/firewall_rules_edit.php:1587 +#: src/usr/local/www/firewall_rules_edit.php:1575 #: src/usr/local/www/services_captiveportal.php:976 msgid "default" msgstr "" @@ -2760,126 +2746,130 @@ msgid "No Preference" msgstr "" #: src/etc/inc/openvpn.inc:103 -msgid "Disabled - No Compression" +msgid "No Preference and Adaptive Compression Disabled" msgstr "" #: src/etc/inc/openvpn.inc:104 -msgid "Enabled with Adaptive Compression" +msgid "Disabled - No Compression" msgstr "" #: src/etc/inc/openvpn.inc:105 +msgid "Enabled with Adaptive Compression" +msgstr "" + +#: src/etc/inc/openvpn.inc:106 msgid "Enabled without Adaptive Compression" msgstr "" -#: src/etc/inc/openvpn.inc:109 +#: src/etc/inc/openvpn.inc:110 msgid "Subnet -- One IP address per client in a common subnet" msgstr "" -#: src/etc/inc/openvpn.inc:110 +#: src/etc/inc/openvpn.inc:111 msgid "net30 -- Isolated /30 network per client" msgstr "" -#: src/etc/inc/openvpn.inc:184 +#: src/etc/inc/openvpn.inc:185 msgid "None (Username and/or Password required)" msgstr "" -#: src/etc/inc/openvpn.inc:192 +#: src/etc/inc/openvpn.inc:193 msgid "===== Server Certificates =====" msgstr "" -#: src/etc/inc/openvpn.inc:193 +#: src/etc/inc/openvpn.inc:194 msgid "===== Non-Server Certificates =====" msgstr "" -#: src/etc/inc/openvpn.inc:203 +#: src/etc/inc/openvpn.inc:204 msgid "Server: Yes" msgstr "" -#: src/etc/inc/openvpn.inc:205 +#: src/etc/inc/openvpn.inc:206 msgid "Server: NO" msgstr "" -#: src/etc/inc/openvpn.inc:208 +#: src/etc/inc/openvpn.inc:209 #, php-format msgid "CA: %s" msgstr "" -#: src/etc/inc/openvpn.inc:211 src/usr/local/www/system_certmanager.php:931 +#: src/etc/inc/openvpn.inc:212 src/usr/local/www/system_certmanager.php:952 #: src/usr/local/www/system_crlmanager.php:579 msgid "In Use" msgstr "" -#: src/etc/inc/openvpn.inc:214 src/usr/local/www/system_certmanager.php:994 +#: src/etc/inc/openvpn.inc:215 src/usr/local/www/system_certmanager.php:1015 msgid "Revoked" msgstr "" -#: src/etc/inc/openvpn.inc:377 +#: src/etc/inc/openvpn.inc:378 msgid "None (No Encryption)" msgstr "" -#: src/etc/inc/openvpn.inc:391 +#: src/etc/inc/openvpn.inc:392 msgid "None (No Authentication)" msgstr "" -#: src/etc/inc/openvpn.inc:396 +#: src/etc/inc/openvpn.inc:397 msgid "No Hardware Crypto Acceleration" msgstr "" -#: src/etc/inc/openvpn.inc:440 +#: src/etc/inc/openvpn.inc:441 #, php-format msgid "The field '%s' must contain a valid IP address or domain name." msgstr "" -#: src/etc/inc/openvpn.inc:448 +#: src/etc/inc/openvpn.inc:449 #, php-format msgid "The field '%s' must contain a valid port, ranging from 0 to 65535." msgstr "" -#: src/etc/inc/openvpn.inc:462 +#: src/etc/inc/openvpn.inc:463 #, php-format msgid "The field '%1$s' must contain a single valid %2$s CIDR range." msgstr "" -#: src/etc/inc/openvpn.inc:477 +#: src/etc/inc/openvpn.inc:478 #, php-format msgid "" "The field '%1$s' must contain only valid %2$s CIDR range(s) separated by " "commas." msgstr "" -#: src/etc/inc/openvpn.inc:1091 +#: src/etc/inc/openvpn.inc:1099 #, php-format msgid "OpenVPN ID %1$s PID %2$s still running, killing." msgstr "" -#: src/etc/inc/openvpn.inc:1316 +#: src/etc/inc/openvpn.inc:1320 #, php-format msgid "Resyncing OpenVPN instances for interface %s." msgstr "" -#: src/etc/inc/openvpn.inc:1318 +#: src/etc/inc/openvpn.inc:1322 msgid "Resyncing OpenVPN instances." msgstr "" -#: src/etc/inc/openvpn.inc:1351 +#: src/etc/inc/openvpn.inc:1355 #, php-format msgid "Resyncing OpenVPN for gateway group %1$s server %2$s." msgstr "" -#: src/etc/inc/openvpn.inc:1360 +#: src/etc/inc/openvpn.inc:1364 #, php-format msgid "Resyncing OpenVPN for gateway group %1$s client %2$s." msgstr "" -#: src/etc/inc/openvpn.inc:1369 +#: src/etc/inc/openvpn.inc:1373 msgid "openvpn_resync_gwgroup called with null gwgroup parameter." msgstr "" -#: src/etc/inc/openvpn.inc:1470 src/etc/inc/openvpn.inc:1597 +#: src/etc/inc/openvpn.inc:1474 src/etc/inc/openvpn.inc:1601 msgid "Unable to contact daemon" msgstr "" -#: src/etc/inc/openvpn.inc:1471 src/etc/inc/openvpn.inc:1598 +#: src/etc/inc/openvpn.inc:1475 src/etc/inc/openvpn.inc:1602 msgid "Service not running?" msgstr "" @@ -3007,132 +2997,132 @@ msgstr "" msgid "Magic Packet sent (%1$s) to (%2$s) MAC=%3$s" msgstr "" -#: src/etc/inc/pfsense-utils.inc:817 src/etc/inc/pfsense-utils.inc:839 +#: src/etc/inc/pfsense-utils.inc:816 src/etc/inc/pfsense-utils.inc:836 #, php-format msgid "Restored %s of config file (maybe from CARP partner)" msgstr "" -#: src/etc/inc/pfsense-utils.inc:974 +#: src/etc/inc/pfsense-utils.inc:970 msgid "reload_interfaces_sync() is starting." msgstr "" -#: src/etc/inc/pfsense-utils.inc:983 +#: src/etc/inc/pfsense-utils.inc:979 msgid "Enabling system routing" msgstr "" -#: src/etc/inc/pfsense-utils.inc:987 +#: src/etc/inc/pfsense-utils.inc:983 msgid "Cleaning up Interfaces" msgstr "" -#: src/etc/inc/pfsense-utils.inc:1380 +#: src/etc/inc/pfsense-utils.inc:1365 msgid "No history data found!" msgstr "" -#: src/etc/inc/pfsense-utils.inc:1512 +#: src/etc/inc/pfsense-utils.inc:1497 msgid "device not present! Is the modem attached to the system?" msgstr "" -#: src/etc/inc/pfsense-utils.inc:1581 +#: src/etc/inc/pfsense-utils.inc:1566 msgid "running" msgstr "" -#: src/etc/inc/pfsense-utils.inc:1582 src/usr/local/www/graph.php:196 +#: src/etc/inc/pfsense-utils.inc:1567 src/usr/local/www/graph.php:196 msgid "up" msgstr "" -#: src/etc/inc/pfsense-utils.inc:1627 +#: src/etc/inc/pfsense-utils.inc:1612 msgid "blocking" msgstr "" -#: src/etc/inc/pfsense-utils.inc:1627 +#: src/etc/inc/pfsense-utils.inc:1612 msgid "check for ethernet loops" msgstr "" -#: src/etc/inc/pfsense-utils.inc:1630 +#: src/etc/inc/pfsense-utils.inc:1615 msgid "learning" msgstr "" -#: src/etc/inc/pfsense-utils.inc:1633 +#: src/etc/inc/pfsense-utils.inc:1618 msgid "forwarding" msgstr "" -#: src/etc/inc/pfsense-utils.inc:1767 +#: src/etc/inc/pfsense-utils.inc:1752 #, php-format msgid "DNSCACHE: Found old IP %1$s and new IP %2$s" msgstr "" -#: src/etc/inc/pfsense-utils.inc:1787 +#: src/etc/inc/pfsense-utils.inc:1772 #, php-format msgid "Loading %s cryptographic accelerator module." msgstr "" -#: src/etc/inc/pfsense-utils.inc:1804 +#: src/etc/inc/pfsense-utils.inc:1789 #, php-format msgid "Loading %s thermal monitor module." msgstr "" -#: src/etc/inc/pfsense-utils.inc:1880 src/etc/inc/pfsense-utils.inc:1935 +#: src/etc/inc/pfsense-utils.inc:1865 src/etc/inc/pfsense-utils.inc:1920 #, php-format msgid "Download file failed with status code %1$s. URL: %2$s" msgstr "" -#: src/etc/inc/pfsense-utils.inc:2131 +#: src/etc/inc/pfsense-utils.inc:2116 #, php-format msgid "Could not process non-existent file from alias: %s" msgstr "" -#: src/etc/inc/pfsense-utils.inc:2136 +#: src/etc/inc/pfsense-utils.inc:2121 #, php-format msgid "Could not process empty file from alias: %s" msgstr "" -#: src/etc/inc/pfsense-utils.inc:2141 +#: src/etc/inc/pfsense-utils.inc:2126 #, php-format msgid "Could not process aliases from alias: %s" msgstr "" -#: src/etc/inc/pfsense-utils.inc:2198 +#: src/etc/inc/pfsense-utils.inc:2183 #, php-format msgid "Failed to download alias %s" msgstr "" -#: src/etc/inc/pfsense-utils.inc:2227 +#: src/etc/inc/pfsense-utils.inc:2212 msgid "" "Alias archive is a .tar/tgz file which cannot be decompressed because " "utility is missing!" msgstr "" -#: src/etc/inc/pfsense-utils.inc:2237 +#: src/etc/inc/pfsense-utils.inc:2222 #, php-format msgid "Could not open %s/aliases for writing!" msgstr "" -#: src/etc/inc/pfsense-utils.inc:2243 +#: src/etc/inc/pfsense-utils.inc:2228 #, php-format msgid "The following file could not be read %1$s from %2$s" msgstr "" -#: src/etc/inc/pfsense-utils.inc:2969 +#: src/etc/inc/pfsense-utils.inc:2804 msgid "English" msgstr "" -#: src/etc/inc/pfsense-utils.inc:2970 +#: src/etc/inc/pfsense-utils.inc:2805 msgid "Portuguese (Brazil)" msgstr "" -#: src/etc/inc/pfsense-utils.inc:2971 +#: src/etc/inc/pfsense-utils.inc:2806 msgid "Turkish" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3157 src/etc/inc/pfsense-utils.inc:3172 -#: src/etc/inc/pfsense-utils.inc:3197 +#: src/etc/inc/pfsense-utils.inc:2992 src/etc/inc/pfsense-utils.inc:3007 +#: src/etc/inc/pfsense-utils.inc:3032 msgid "No Service" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3167 src/etc/inc/pfsense-utils.inc:3209 +#: src/etc/inc/pfsense-utils.inc:3002 src/etc/inc/pfsense-utils.inc:3044 #: src/usr/local/www/firewall_nat_out.php:229 #: src/usr/local/www/firewall_nat_out.php:233 -#: src/usr/local/www/interfaces.php:840 src/usr/local/www/interfaces.php:2899 +#: src/usr/local/www/interfaces.php:840 src/usr/local/www/interfaces.php:2907 #: src/usr/local/www/interfaces_wireless.php:100 #: src/usr/local/www/interfaces_wireless_edit.php:81 #: src/usr/local/www/interfaces_wireless_edit.php:187 @@ -3143,93 +3133,93 @@ msgstr "" #: src/usr/local/www/load_balancer_virtual_server_edit.php:75 #: src/usr/local/www/status_lb_pool.php:130 src/usr/local/www/vpn_ipsec.php:251 #: src/usr/local/www/vpn_ipsec.php:393 -#: src/usr/local/www/vpn_ipsec_phase2.php:509 +#: src/usr/local/www/vpn_ipsec_phase2.php:504 msgid "Mode" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3173 +#: src/etc/inc/pfsense-utils.inc:3008 msgid "Restricted Service" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3174 +#: src/etc/inc/pfsense-utils.inc:3009 msgid "Valid Service" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3175 +#: src/etc/inc/pfsense-utils.inc:3010 msgid "Restricted Regional Service" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3176 +#: src/etc/inc/pfsense-utils.inc:3011 msgid "Powersaving Service" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3182 +#: src/etc/inc/pfsense-utils.inc:3017 msgid "Invalid SIM/locked State" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3183 +#: src/etc/inc/pfsense-utils.inc:3018 msgid "Valid SIM State" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3184 +#: src/etc/inc/pfsense-utils.inc:3019 msgid "Invalid SIM CS State" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3185 +#: src/etc/inc/pfsense-utils.inc:3020 msgid "Invalid SIM PS State" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3186 +#: src/etc/inc/pfsense-utils.inc:3021 msgid "Invalid SIM CS/PS State" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3187 +#: src/etc/inc/pfsense-utils.inc:3022 msgid "Missing SIM State" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3198 +#: src/etc/inc/pfsense-utils.inc:3033 msgid "Limited Service" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3214 +#: src/etc/inc/pfsense-utils.inc:3049 msgid "Initializing Service" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3215 +#: src/etc/inc/pfsense-utils.inc:3050 msgid "Network Lock error Service" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3216 +#: src/etc/inc/pfsense-utils.inc:3051 msgid "Network Locked Service" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3217 +#: src/etc/inc/pfsense-utils.inc:3052 msgid "Unlocked or correct MCC/MNC Service" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3223 +#: src/etc/inc/pfsense-utils.inc:3058 msgid "No action State" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3224 +#: src/etc/inc/pfsense-utils.inc:3059 msgid "Network lock State" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3225 +#: src/etc/inc/pfsense-utils.inc:3060 msgid "(U)SIM card lock State" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3226 +#: src/etc/inc/pfsense-utils.inc:3061 msgid "Network Lock and (U)SIM card Lock State" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3317 +#: src/etc/inc/pfsense-utils.inc:3152 #, php-format msgid "" "Alias table restore failed exited with %1$s, the error is: %2$s %3$s%4$s" msgstr "" -#: src/etc/inc/pfsense-utils.inc:3319 +#: src/etc/inc/pfsense-utils.inc:3154 #, php-format msgid "" "Alias table restore succeeded exited with %1$s, the result is: %2$s %3$s%4$s" @@ -3239,406 +3229,414 @@ msgstr "" msgid "Warning, could not open log for writing." msgstr "" -#: src/etc/inc/pkg-utils.inc:187 +#: src/etc/inc/pkg-utils.inc:183 #, php-format msgid "" "ERROR!!! An error occurred on pkg execution (rc = %d) with parameters '%s':" msgstr "" -#: src/etc/inc/pkg-utils.inc:386 src/etc/inc/pkg-utils.inc:389 +#: src/etc/inc/pkg-utils.inc:379 src/etc/inc/pkg-utils.inc:382 msgid "ERROR: Error trying to get packages list. Aborting..." msgstr "" -#: src/etc/inc/pkg-utils.inc:421 src/etc/inc/pkg-utils.inc:424 +#: src/etc/inc/pkg-utils.inc:414 src/etc/inc/pkg-utils.inc:417 msgid "ERROR: Error trying to get package version. Aborting..." msgstr "" -#: src/etc/inc/pkg-utils.inc:473 +#: src/etc/inc/pkg-utils.inc:466 #, php-format msgid "Running last steps of %s installation." msgstr "" -#: src/etc/inc/pkg-utils.inc:486 +#: src/etc/inc/pkg-utils.inc:479 msgid "Resyncing configuration for all packages." msgstr "" -#: src/etc/inc/pkg-utils.inc:509 +#: src/etc/inc/pkg-utils.inc:501 msgid "Syncing packages..." msgstr "" -#: src/etc/inc/pkg-utils.inc:532 +#: src/etc/inc/pkg-utils.inc:523 msgid "Removing package..." msgstr "" -#: src/etc/inc/pkg-utils.inc:565 +#: src/etc/inc/pkg-utils.inc:556 #, php-format msgid "" "The %s package is missing its configuration file and must be reinstalled." msgstr "" -#: src/etc/inc/pkg-utils.inc:581 +#: src/etc/inc/pkg-utils.inc:572 #, php-format msgid "Reinstalling package %1$s because its include file(%2$s) is missing!" msgstr "" -#: src/etc/inc/pkg-utils.inc:584 +#: src/etc/inc/pkg-utils.inc:575 #, php-format msgid "Reinstalling package %s failed. Take appropriate measures!!!" msgstr "" -#: src/etc/inc/pkg-utils.inc:678 +#: src/etc/inc/pkg-utils.inc:668 msgid "Beginning package installation." msgstr "" -#: src/etc/inc/pkg-utils.inc:679 +#: src/etc/inc/pkg-utils.inc:669 #, php-format msgid "Beginning package installation for %s ." msgstr "" -#: src/etc/inc/pkg-utils.inc:683 +#: src/etc/inc/pkg-utils.inc:673 msgid "Saving updated package information..." msgstr "" -#: src/etc/inc/pkg-utils.inc:686 +#: src/etc/inc/pkg-utils.inc:676 #, php-format msgid "Installed %s package." msgstr "" -#: src/etc/inc/pkg-utils.inc:690 +#: src/etc/inc/pkg-utils.inc:680 #, php-format msgid "Overwrote previous installation of %s." msgstr "" -#: src/etc/inc/pkg-utils.inc:691 +#: src/etc/inc/pkg-utils.inc:681 msgid "overwrite!" msgstr "" -#: src/etc/inc/pkg-utils.inc:694 +#: src/etc/inc/pkg-utils.inc:684 #, php-format msgid "Intermediate config write during package install for %s." msgstr "" -#: src/etc/inc/pkg-utils.inc:699 +#: src/etc/inc/pkg-utils.inc:688 #, php-format msgid "The %s package is not installed.%sInstallation aborted." msgstr "" -#: src/etc/inc/pkg-utils.inc:703 src/etc/inc/pkg-utils.inc:735 -#: src/etc/inc/pkg-utils.inc:801 +#: src/etc/inc/pkg-utils.inc:692 src/etc/inc/pkg-utils.inc:724 +#: src/etc/inc/pkg-utils.inc:790 #, php-format msgid "Failed to install package: %s." msgstr "" -#: src/etc/inc/pkg-utils.inc:704 src/etc/inc/pkg-utils.inc:736 -#: src/etc/inc/pkg-utils.inc:802 +#: src/etc/inc/pkg-utils.inc:693 src/etc/inc/pkg-utils.inc:725 +#: src/etc/inc/pkg-utils.inc:791 msgid "Failed to install package." msgstr "" -#: src/etc/inc/pkg-utils.inc:709 +#: src/etc/inc/pkg-utils.inc:698 msgid "Loading package configuration... " msgstr "" -#: src/etc/inc/pkg-utils.inc:712 +#: src/etc/inc/pkg-utils.inc:701 msgid "Configuring package components..." msgstr "" -#: src/etc/inc/pkg-utils.inc:724 src/etc/inc/pkg-utils.inc:898 +#: src/etc/inc/pkg-utils.inc:713 src/etc/inc/pkg-utils.inc:885 msgid "Loading package instructions..." msgstr "" -#: src/etc/inc/pkg-utils.inc:731 +#: src/etc/inc/pkg-utils.inc:720 #, php-format msgid "Include %s is missing!" msgstr "" -#: src/etc/inc/pkg-utils.inc:742 +#: src/etc/inc/pkg-utils.inc:731 msgid "Custom commands..." msgstr "" -#: src/etc/inc/pkg-utils.inc:745 +#: src/etc/inc/pkg-utils.inc:734 msgid "Executing custom_php_global_functions()..." msgstr "" -#: src/etc/inc/pkg-utils.inc:750 +#: src/etc/inc/pkg-utils.inc:739 msgid "Executing custom_php_install_command()..." msgstr "" -#: src/etc/inc/pkg-utils.inc:755 +#: src/etc/inc/pkg-utils.inc:744 msgid "Executing custom_php_resync_config_command()..." msgstr "" -#: src/etc/inc/pkg-utils.inc:762 src/etc/inc/pkg-utils.inc:846 +#: src/etc/inc/pkg-utils.inc:751 src/etc/inc/pkg-utils.inc:833 msgid "Menu items... " msgstr "" -#: src/etc/inc/pkg-utils.inc:779 src/etc/inc/pkg-utils.inc:861 +#: src/etc/inc/pkg-utils.inc:768 src/etc/inc/pkg-utils.inc:848 msgid "Services... " msgstr "" -#: src/etc/inc/pkg-utils.inc:796 +#: src/etc/inc/pkg-utils.inc:785 msgid "Loading package configuration... failed!" msgstr "" -#: src/etc/inc/pkg-utils.inc:796 +#: src/etc/inc/pkg-utils.inc:785 msgid "Installation aborted." msgstr "" -#: src/etc/inc/pkg-utils.inc:797 +#: src/etc/inc/pkg-utils.inc:786 msgid "Unable to load package configuration. Installation aborted." msgstr "" -#: src/etc/inc/pkg-utils.inc:811 +#: src/etc/inc/pkg-utils.inc:800 msgid "Writing configuration... " msgstr "" -#: src/etc/inc/pkg-utils.inc:813 +#: src/etc/inc/pkg-utils.inc:802 #, php-format msgid "Successfully installed package: %s." msgstr "" -#: src/etc/inc/pkg-utils.inc:829 +#: src/etc/inc/pkg-utils.inc:817 #, php-format msgid "The %s package is not installed.%sDeletion aborted." msgstr "" -#: src/etc/inc/pkg-utils.inc:835 +#: src/etc/inc/pkg-utils.inc:822 #, php-format msgid "Removing %s package... " msgstr "" -#: src/etc/inc/pkg-utils.inc:836 +#: src/etc/inc/pkg-utils.inc:823 #, php-format msgid "Removing %s components..." msgstr "" -#: src/etc/inc/pkg-utils.inc:889 +#: src/etc/inc/pkg-utils.inc:876 #, php-format msgid "Intermediate config write during package removal for %s." msgstr "" -#: src/etc/inc/pkg-utils.inc:905 +#: src/etc/inc/pkg-utils.inc:892 #, php-format msgid "Include file %s could not be found for inclusion." msgstr "" -#: src/etc/inc/pkg-utils.inc:923 +#: src/etc/inc/pkg-utils.inc:910 msgid "Deinstall commands... " msgstr "" -#: src/etc/inc/pkg-utils.inc:928 +#: src/etc/inc/pkg-utils.inc:915 msgid "Not executing custom deinstall hook because an include is missing." msgstr "" -#: src/etc/inc/pkg-utils.inc:935 +#: src/etc/inc/pkg-utils.inc:922 msgid "Syslog entries... " msgstr "" -#: src/etc/inc/pkg-utils.inc:943 +#: src/etc/inc/pkg-utils.inc:930 msgid "Configuration... " msgstr "" -#: src/etc/inc/pkg-utils.inc:946 +#: src/etc/inc/pkg-utils.inc:933 #, php-format msgid "Removed %s package." msgstr "" -#: src/etc/inc/pkg-utils.inc:974 +#: src/etc/inc/pkg-utils.inc:960 msgid "" "Waiting for Internet connection to update pkg metadata and finish package " "reinstallation" msgstr "" -#: src/etc/inc/pkg-utils.inc:987 src/etc/inc/pkg-utils.inc:1023 +#: src/etc/inc/pkg-utils.inc:973 src/etc/inc/pkg-utils.inc:1012 msgid "Package reinstall" msgstr "" -#: src/etc/inc/pkg-utils.inc:988 +#: src/etc/inc/pkg-utils.inc:974 msgid "" "Package reinstall process was ABORTED due to lack of internet connectivity" msgstr "" -#: src/etc/inc/pkg-utils.inc:1024 +#: src/etc/inc/pkg-utils.inc:1013 #, php-format msgid "" "Package %s does not exist in current %s version and it has been removed." msgstr "" -#: src/etc/inc/pkg-utils.inc:1045 +#: src/etc/inc/pkg-utils.inc:1034 msgid "Stopping all packages." msgstr "" #: src/etc/inc/priv/user.priv.inc:6 -msgid "User - Services: Captive Portal login" +msgid "System - HA node sync" msgstr "" #: src/etc/inc/priv/user.priv.inc:7 -msgid "Indicates whether the user is able to login on the captive portal." +msgid "Allow access to authenticate this user for HA sync via XMLRPC" msgstr "" #: src/etc/inc/priv/user.priv.inc:10 -msgid "WebCfg - Help pages" +msgid "User - Services: Captive Portal login" msgstr "" #: src/etc/inc/priv/user.priv.inc:11 +msgid "Indicates whether the user is able to login on the captive portal." +msgstr "" + +#: src/etc/inc/priv/user.priv.inc:14 +msgid "WebCfg - Help pages" +msgstr "" + +#: src/etc/inc/priv/user.priv.inc:15 msgid "Show all items on help menu and allow access to Help shortcut links" msgstr "" -#: src/etc/inc/priv/user.priv.inc:16 +#: src/etc/inc/priv/user.priv.inc:20 msgid "WebCfg - Dashboard (all)" msgstr "" -#: src/etc/inc/priv/user.priv.inc:17 +#: src/etc/inc/priv/user.priv.inc:21 msgid "Allow access to all pages required for the dashboard." msgstr "" -#: src/etc/inc/priv/user.priv.inc:28 +#: src/etc/inc/priv/user.priv.inc:32 msgid "WebCfg - Dashboard widgets (direct access)." msgstr "" -#: src/etc/inc/priv/user.priv.inc:29 +#: src/etc/inc/priv/user.priv.inc:33 msgid "" "Allow direct access to all Dashboard widget pages, required for some widgets " "using AJAX." msgstr "" -#: src/etc/inc/priv/user.priv.inc:34 +#: src/etc/inc/priv/user.priv.inc:38 msgid "User - Config: Deny Config Write" msgstr "" -#: src/etc/inc/priv/user.priv.inc:35 +#: src/etc/inc/priv/user.priv.inc:39 msgid "If present, ignores requests from this user to write config.xml." msgstr "" -#: src/etc/inc/priv/user.priv.inc:38 +#: src/etc/inc/priv/user.priv.inc:42 msgid "User - System: Shell account access" msgstr "" -#: src/etc/inc/priv/user.priv.inc:39 +#: src/etc/inc/priv/user.priv.inc:43 msgid "Indicates whether the user is able to login for example via SSH." msgstr "" -#: src/etc/inc/priv/user.priv.inc:42 +#: src/etc/inc/priv/user.priv.inc:46 msgid "User - System: Copy files (scp)" msgstr "" -#: src/etc/inc/priv/user.priv.inc:43 +#: src/etc/inc/priv/user.priv.inc:47 msgid "Indicates whether the user is allowed to copy files " msgstr "" -#: src/etc/inc/priv/user.priv.inc:49 +#: src/etc/inc/priv/user.priv.inc:53 msgid "User - System: SSH tunneling" msgstr "" -#: src/etc/inc/priv/user.priv.inc:50 +#: src/etc/inc/priv/user.priv.inc:54 msgid "" "Indicates whether the user is able to login for tunneling via SSH when they " "have no shell access. Note: User - System - Copy files conflicts with this " "privilege." msgstr "" -#: src/etc/inc/priv/user.priv.inc:56 +#: src/etc/inc/priv/user.priv.inc:60 msgid "User - VPN: IPsec xauth Dialin" msgstr "" -#: src/etc/inc/priv/user.priv.inc:57 +#: src/etc/inc/priv/user.priv.inc:61 msgid "" "Indicates whether the user is allowed to dial in via IPsec xauth (Note: Does " "not allow shell access, but may allow the user to create SSH tunnels)" msgstr "" -#: src/etc/inc/priv/user.priv.inc:62 +#: src/etc/inc/priv/user.priv.inc:66 msgid "User - VPN: L2TP Dialin" msgstr "" -#: src/etc/inc/priv/user.priv.inc:63 +#: src/etc/inc/priv/user.priv.inc:67 msgid "Indicates whether the user is allowed to dial in via L2TP" msgstr "" -#: src/etc/inc/priv/user.priv.inc:66 +#: src/etc/inc/priv/user.priv.inc:70 msgid "User - VPN: PPPOE Dialin" msgstr "" -#: src/etc/inc/priv/user.priv.inc:67 +#: src/etc/inc/priv/user.priv.inc:71 msgid "Indicates whether the user is allowed to dial in via PPPOE" msgstr "" -#: src/etc/inc/priv/user.priv.inc:70 +#: src/etc/inc/priv/user.priv.inc:74 msgid "WebCfg - Status: System Logs: Portal Auth" msgstr "" -#: src/etc/inc/priv/user.priv.inc:71 +#: src/etc/inc/priv/user.priv.inc:75 msgid "Allow access to the 'Status: System Logs: Portal Auth' page." msgstr "" -#: src/etc/inc/priv/user.priv.inc:76 +#: src/etc/inc/priv/user.priv.inc:80 msgid "WebCfg - Status: Logs: DHCP" msgstr "" -#: src/etc/inc/priv/user.priv.inc:77 +#: src/etc/inc/priv/user.priv.inc:81 msgid "Allow access to the 'Status: Logs: DHCP' page." msgstr "" -#: src/etc/inc/priv/user.priv.inc:82 +#: src/etc/inc/priv/user.priv.inc:86 msgid "WebCfg - Status: Logs: Gateways" msgstr "" -#: src/etc/inc/priv/user.priv.inc:83 +#: src/etc/inc/priv/user.priv.inc:87 msgid "Allow access to the 'Status: Logs: System: Gateways' page." msgstr "" -#: src/etc/inc/priv/user.priv.inc:88 +#: src/etc/inc/priv/user.priv.inc:92 msgid "WebCfg - Status: Logs: Resolver" msgstr "" -#: src/etc/inc/priv/user.priv.inc:89 +#: src/etc/inc/priv/user.priv.inc:93 msgid "Allow access to the 'Status: Logs: System: Resolver' page." msgstr "" -#: src/etc/inc/priv/user.priv.inc:94 src/etc/inc/priv/user.priv.inc:112 +#: src/etc/inc/priv/user.priv.inc:98 src/etc/inc/priv/user.priv.inc:116 msgid "WebCfg - Status: System Logs: IPsec VPN" msgstr "" -#: src/etc/inc/priv/user.priv.inc:95 src/etc/inc/priv/user.priv.inc:113 +#: src/etc/inc/priv/user.priv.inc:99 src/etc/inc/priv/user.priv.inc:117 msgid "Allow access to the 'Status: System Logs: IPsec VPN' page." msgstr "" -#: src/etc/inc/priv/user.priv.inc:100 +#: src/etc/inc/priv/user.priv.inc:104 msgid "WebCfg - Status: System Logs: NTP" msgstr "" -#: src/etc/inc/priv/user.priv.inc:101 +#: src/etc/inc/priv/user.priv.inc:105 msgid "Allow access to the 'Status: System Logs: NTP' page." msgstr "" -#: src/etc/inc/priv/user.priv.inc:106 +#: src/etc/inc/priv/user.priv.inc:110 msgid "WebCfg - Status: System Logs: OpenVPN" msgstr "" -#: src/etc/inc/priv/user.priv.inc:107 +#: src/etc/inc/priv/user.priv.inc:111 msgid "Allow access to the 'Status: System Logs: OpenVPN' page." msgstr "" -#: src/etc/inc/priv/user.priv.inc:118 +#: src/etc/inc/priv/user.priv.inc:122 msgid "WebCfg - Status: System Logs: Load Balancer" msgstr "" -#: src/etc/inc/priv/user.priv.inc:119 +#: src/etc/inc/priv/user.priv.inc:123 msgid "Allow access to the 'Status: System Logs: Load Balancer' page." msgstr "" -#: src/etc/inc/priv/user.priv.inc:124 +#: src/etc/inc/priv/user.priv.inc:128 msgid "WebCfg - Status: System Logs: Routing" msgstr "" -#: src/etc/inc/priv/user.priv.inc:125 +#: src/etc/inc/priv/user.priv.inc:129 msgid "Allow access to the 'Status: System Logs: System: Routing' page." msgstr "" -#: src/etc/inc/priv/user.priv.inc:130 +#: src/etc/inc/priv/user.priv.inc:134 msgid "WebCfg - Status: System Logs: Wireless" msgstr "" -#: src/etc/inc/priv/user.priv.inc:131 +#: src/etc/inc/priv/user.priv.inc:135 msgid "Allow access to the 'Status: System Logs: System: Wireless' page." msgstr "" @@ -3763,1591 +3761,1575 @@ msgid "Allows access to the 'Diagnostics: Limiter Info' page" msgstr "" #: src/etc/inc/priv.defs.inc:109 -msgid "WebCfg - Diagnostics: NanoBSD" -msgstr "" - -#: src/etc/inc/priv.defs.inc:110 -msgid "Allow access to the 'Diagnostics: NanoBSD' page." -msgstr "" - -#: src/etc/inc/priv.defs.inc:115 msgid "WebCfg - Diagnostics: NDP Table" msgstr "" -#: src/etc/inc/priv.defs.inc:116 +#: src/etc/inc/priv.defs.inc:110 msgid "Allow access to the 'Diagnostics: NDP Table' page." msgstr "" -#: src/etc/inc/priv.defs.inc:121 +#: src/etc/inc/priv.defs.inc:115 msgid "WebCfg - Diagnostics: Packet Capture" msgstr "" -#: src/etc/inc/priv.defs.inc:122 +#: src/etc/inc/priv.defs.inc:116 msgid "Allow access to the 'Diagnostics: Packet Capture' page." msgstr "" -#: src/etc/inc/priv.defs.inc:127 +#: src/etc/inc/priv.defs.inc:121 msgid "WebCfg - Diagnostics: pfInfo" msgstr "" -#: src/etc/inc/priv.defs.inc:128 +#: src/etc/inc/priv.defs.inc:122 msgid "Allows access to the 'Diagnostics: pfInfo' page" msgstr "" -#: src/etc/inc/priv.defs.inc:133 +#: src/etc/inc/priv.defs.inc:127 msgid "WebCfg - Diagnostics: pfTop" msgstr "" -#: src/etc/inc/priv.defs.inc:134 +#: src/etc/inc/priv.defs.inc:128 msgid "Allows access to the 'Diagnostics: pfTop' page" msgstr "" -#: src/etc/inc/priv.defs.inc:139 +#: src/etc/inc/priv.defs.inc:133 msgid "WebCfg - Diagnostics: Ping" msgstr "" -#: src/etc/inc/priv.defs.inc:140 +#: src/etc/inc/priv.defs.inc:134 msgid "Allow access to the 'Diagnostics: Ping' page." msgstr "" -#: src/etc/inc/priv.defs.inc:145 +#: src/etc/inc/priv.defs.inc:139 msgid "WebCfg - Diagnostics: Reboot System" msgstr "" -#: src/etc/inc/priv.defs.inc:146 +#: src/etc/inc/priv.defs.inc:140 msgid "Allow access to the 'Diagnostics: Reboot System' page." msgstr "" -#: src/etc/inc/priv.defs.inc:151 +#: src/etc/inc/priv.defs.inc:145 msgid "WebCfg - Diagnostics: Reset states" msgstr "" -#: src/etc/inc/priv.defs.inc:152 +#: src/etc/inc/priv.defs.inc:146 msgid "Allow access to the 'Diagnostics: Reset states' page." msgstr "" -#: src/etc/inc/priv.defs.inc:157 +#: src/etc/inc/priv.defs.inc:151 msgid "WebCfg - Diagnostics: Routing tables" msgstr "" -#: src/etc/inc/priv.defs.inc:158 +#: src/etc/inc/priv.defs.inc:152 msgid "Allow access to the 'Diagnostics: Routing tables' page." msgstr "" -#: src/etc/inc/priv.defs.inc:163 +#: src/etc/inc/priv.defs.inc:157 msgid "WebCfg - Diagnostics: S.M.A.R.T. Status" msgstr "" -#: src/etc/inc/priv.defs.inc:164 +#: src/etc/inc/priv.defs.inc:158 msgid "Allow access to the 'Diagnostics: S.M.A.R.T. Status' page." msgstr "" -#: src/etc/inc/priv.defs.inc:169 +#: src/etc/inc/priv.defs.inc:163 msgid "WebCfg - Diagnostics: Sockets" msgstr "" -#: src/etc/inc/priv.defs.inc:170 +#: src/etc/inc/priv.defs.inc:164 msgid "Allow access to the 'Diagnostics: Sockets' page." msgstr "" -#: src/etc/inc/priv.defs.inc:175 +#: src/etc/inc/priv.defs.inc:169 msgid "WebCfg - Diagnostics: States Summary" msgstr "" -#: src/etc/inc/priv.defs.inc:176 +#: src/etc/inc/priv.defs.inc:170 msgid "Allow access to the 'Diagnostics: States Summary' page." msgstr "" -#: src/etc/inc/priv.defs.inc:181 +#: src/etc/inc/priv.defs.inc:175 msgid "WebCfg - Diagnostics: System Activity" msgstr "" -#: src/etc/inc/priv.defs.inc:182 +#: src/etc/inc/priv.defs.inc:176 msgid "Allows access to the 'Diagnostics: System Activity' page" msgstr "" -#: src/etc/inc/priv.defs.inc:187 +#: src/etc/inc/priv.defs.inc:181 msgid "WebCfg - Diagnostics: pf Table IP addresses" msgstr "" -#: src/etc/inc/priv.defs.inc:188 +#: src/etc/inc/priv.defs.inc:182 msgid "Allow access to the 'Diagnostics: Tables' page." msgstr "" -#: src/etc/inc/priv.defs.inc:193 +#: src/etc/inc/priv.defs.inc:187 msgid "WebCfg - Diagnostics: Test Port" msgstr "" -#: src/etc/inc/priv.defs.inc:194 +#: src/etc/inc/priv.defs.inc:188 msgid "Allow access to the 'Diagnostics: Test Port' page." msgstr "" -#: src/etc/inc/priv.defs.inc:199 +#: src/etc/inc/priv.defs.inc:193 msgid "WebCfg - Diagnostics: Traceroute" msgstr "" -#: src/etc/inc/priv.defs.inc:200 +#: src/etc/inc/priv.defs.inc:194 msgid "Allow access to the 'Diagnostics: Traceroute' page." msgstr "" -#: src/etc/inc/priv.defs.inc:205 +#: src/etc/inc/priv.defs.inc:199 msgid "WebCfg - Firewall: Easy Rule add/status" msgstr "" -#: src/etc/inc/priv.defs.inc:206 +#: src/etc/inc/priv.defs.inc:200 msgid "Allow access to the 'Firewall: Easy Rule' add/status page." msgstr "" -#: src/etc/inc/priv.defs.inc:211 +#: src/etc/inc/priv.defs.inc:205 msgid "WebCfg - Firewall: Aliases" msgstr "" -#: src/etc/inc/priv.defs.inc:212 +#: src/etc/inc/priv.defs.inc:206 msgid "Allow access to the 'Firewall: Aliases' page." msgstr "" -#: src/etc/inc/priv.defs.inc:217 +#: src/etc/inc/priv.defs.inc:211 msgid "WebCfg - Firewall: Alias: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:218 +#: src/etc/inc/priv.defs.inc:212 msgid "Allow access to the 'Firewall: Alias: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:223 +#: src/etc/inc/priv.defs.inc:217 msgid "WebCfg - Firewall: Alias: Import" msgstr "" -#: src/etc/inc/priv.defs.inc:224 +#: src/etc/inc/priv.defs.inc:218 msgid "Allow access to the 'Firewall: Alias: Import' page." msgstr "" -#: src/etc/inc/priv.defs.inc:229 +#: src/etc/inc/priv.defs.inc:223 msgid "WebCfg - Firewall: NAT: Port Forward" msgstr "" -#: src/etc/inc/priv.defs.inc:230 +#: src/etc/inc/priv.defs.inc:224 msgid "Allow access to the 'Firewall: NAT: Port Forward' page." msgstr "" -#: src/etc/inc/priv.defs.inc:235 +#: src/etc/inc/priv.defs.inc:229 msgid "WebCfg - Firewall: NAT: 1:1" msgstr "" -#: src/etc/inc/priv.defs.inc:236 +#: src/etc/inc/priv.defs.inc:230 msgid "Allow access to the 'Firewall: NAT: 1:1' page." msgstr "" -#: src/etc/inc/priv.defs.inc:241 +#: src/etc/inc/priv.defs.inc:235 msgid "WebCfg - Firewall: NAT: 1:1: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:242 +#: src/etc/inc/priv.defs.inc:236 msgid "Allow access to the 'Firewall: NAT: 1:1: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:247 +#: src/etc/inc/priv.defs.inc:241 msgid "WebCfg - Firewall: NAT: Port Forward: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:248 +#: src/etc/inc/priv.defs.inc:242 msgid "Allow access to the 'Firewall: NAT: Port Forward: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:253 +#: src/etc/inc/priv.defs.inc:247 msgid "WebCfg - Firewall: NAT: NPt" msgstr "" -#: src/etc/inc/priv.defs.inc:254 +#: src/etc/inc/priv.defs.inc:248 msgid "Allow access to the 'Firewall: NAT: NPt' page." msgstr "" -#: src/etc/inc/priv.defs.inc:259 +#: src/etc/inc/priv.defs.inc:253 msgid "WebCfg - Firewall: NAT: NPt: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:260 +#: src/etc/inc/priv.defs.inc:254 msgid "Allow access to the 'Firewall: NAT: NPt: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:265 +#: src/etc/inc/priv.defs.inc:259 msgid "WebCfg - Firewall: NAT: Outbound" msgstr "" -#: src/etc/inc/priv.defs.inc:266 +#: src/etc/inc/priv.defs.inc:260 msgid "Allow access to the 'Firewall: NAT: Outbound' page." msgstr "" -#: src/etc/inc/priv.defs.inc:271 +#: src/etc/inc/priv.defs.inc:265 msgid "WebCfg - Firewall: NAT: Outbound: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:272 +#: src/etc/inc/priv.defs.inc:266 msgid "Allow access to the 'Firewall: NAT: Outbound: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:277 +#: src/etc/inc/priv.defs.inc:271 msgid "WebCfg - Firewall: Rules" msgstr "" -#: src/etc/inc/priv.defs.inc:278 +#: src/etc/inc/priv.defs.inc:272 msgid "Allow access to the 'Firewall: Rules' page." msgstr "" -#: src/etc/inc/priv.defs.inc:283 +#: src/etc/inc/priv.defs.inc:277 msgid "WebCfg - Firewall: Rules: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:284 +#: src/etc/inc/priv.defs.inc:278 msgid "Allow access to the 'Firewall: Rules: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:289 +#: src/etc/inc/priv.defs.inc:283 msgid "WebCfg - Firewall: Schedules" msgstr "" -#: src/etc/inc/priv.defs.inc:290 +#: src/etc/inc/priv.defs.inc:284 msgid "Allow access to the 'Firewall: Schedules' page." msgstr "" -#: src/etc/inc/priv.defs.inc:295 +#: src/etc/inc/priv.defs.inc:289 msgid "WebCfg - Firewall: Schedules: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:296 +#: src/etc/inc/priv.defs.inc:290 msgid "Allow access to the 'Firewall: Schedules: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:301 +#: src/etc/inc/priv.defs.inc:295 msgid "WebCfg - Firewall: Traffic Shaper" msgstr "" -#: src/etc/inc/priv.defs.inc:302 +#: src/etc/inc/priv.defs.inc:296 msgid "Allow access to the 'Firewall: Traffic Shaper' page." msgstr "" -#: src/etc/inc/priv.defs.inc:307 +#: src/etc/inc/priv.defs.inc:301 msgid "WebCfg - Firewall: Traffic Shaper: Queues" msgstr "" -#: src/etc/inc/priv.defs.inc:308 +#: src/etc/inc/priv.defs.inc:302 msgid "Allow access to the 'Firewall: Traffic Shaper: Queues' page." msgstr "" -#: src/etc/inc/priv.defs.inc:313 +#: src/etc/inc/priv.defs.inc:307 msgid "WebCfg - Firewall: Traffic Shaper: Limiters" msgstr "" -#: src/etc/inc/priv.defs.inc:314 +#: src/etc/inc/priv.defs.inc:308 msgid "Allow access to the 'Firewall: Traffic Shaper: Limiters' page." msgstr "" -#: src/etc/inc/priv.defs.inc:319 +#: src/etc/inc/priv.defs.inc:313 msgid "WebCfg - Firewall: Traffic Shaper: Wizard" msgstr "" -#: src/etc/inc/priv.defs.inc:320 +#: src/etc/inc/priv.defs.inc:314 msgid "Allow access to the 'Firewall: Traffic Shaper: Wizard' page." msgstr "" -#: src/etc/inc/priv.defs.inc:325 +#: src/etc/inc/priv.defs.inc:319 msgid "WebCfg - Firewall: Virtual IP Addresses" msgstr "" -#: src/etc/inc/priv.defs.inc:326 +#: src/etc/inc/priv.defs.inc:320 msgid "Allow access to the 'Firewall: Virtual IP Addresses' page." msgstr "" -#: src/etc/inc/priv.defs.inc:331 +#: src/etc/inc/priv.defs.inc:325 msgid "WebCfg - Firewall: Virtual IP Address: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:332 +#: src/etc/inc/priv.defs.inc:326 msgid "Allow access to the 'Firewall: Virtual IP Address: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:337 +#: src/etc/inc/priv.defs.inc:331 msgid "WebCfg - AJAX: Get Service Providers" msgstr "" -#: src/etc/inc/priv.defs.inc:338 +#: src/etc/inc/priv.defs.inc:332 msgid "Allow access to the 'AJAX: Service Providers' page." msgstr "" -#: src/etc/inc/priv.defs.inc:343 +#: src/etc/inc/priv.defs.inc:337 msgid "WebCfg - AJAX: Get Stats" msgstr "" -#: src/etc/inc/priv.defs.inc:344 +#: src/etc/inc/priv.defs.inc:338 msgid "Allow access to the 'AJAX: Get Stats' page." msgstr "" -#: src/etc/inc/priv.defs.inc:349 +#: src/etc/inc/priv.defs.inc:343 msgid "WebCfg - Diagnostics: Interface Traffic" msgstr "" -#: src/etc/inc/priv.defs.inc:350 +#: src/etc/inc/priv.defs.inc:344 msgid "Allow access to the 'Diagnostics: Interface Traffic' page." msgstr "" -#: src/etc/inc/priv.defs.inc:355 +#: src/etc/inc/priv.defs.inc:349 msgid "WebCfg - Diagnostics: CPU Utilization" msgstr "" -#: src/etc/inc/priv.defs.inc:356 +#: src/etc/inc/priv.defs.inc:350 msgid "Allow access to the 'Diagnostics: CPU Utilization' page." msgstr "" -#: src/etc/inc/priv.defs.inc:362 +#: src/etc/inc/priv.defs.inc:356 msgid "WebCfg - XMLRPC Interface Stats" msgstr "" -#: src/etc/inc/priv.defs.inc:363 +#: src/etc/inc/priv.defs.inc:357 msgid "Allow access to the 'XMLRPC Interface Stats' page." msgstr "" -#: src/etc/inc/priv.defs.inc:368 +#: src/etc/inc/priv.defs.inc:362 msgid "WebCfg - System: Login / Logout / Dashboard" msgstr "" -#: src/etc/inc/priv.defs.inc:369 +#: src/etc/inc/priv.defs.inc:363 msgid "Allow access to the 'System: Login / Logout' page and Dashboard." msgstr "" -#: src/etc/inc/priv.defs.inc:374 +#: src/etc/inc/priv.defs.inc:368 msgid "WebCfg - Interfaces: WAN" msgstr "" -#: src/etc/inc/priv.defs.inc:375 +#: src/etc/inc/priv.defs.inc:369 msgid "Allow access to the 'Interfaces' page." msgstr "" -#: src/etc/inc/priv.defs.inc:380 +#: src/etc/inc/priv.defs.inc:374 msgid "WebCfg - Interfaces: Interface Assignments" msgstr "" -#: src/etc/inc/priv.defs.inc:381 +#: src/etc/inc/priv.defs.inc:375 msgid "Allow access to the 'Interfaces: Interface Assignments' page." msgstr "" -#: src/etc/inc/priv.defs.inc:386 +#: src/etc/inc/priv.defs.inc:380 msgid "WebCfg - Interfaces: Bridge" msgstr "" -#: src/etc/inc/priv.defs.inc:387 +#: src/etc/inc/priv.defs.inc:381 msgid "Allow access to the 'Interfaces: Bridge' page." msgstr "" -#: src/etc/inc/priv.defs.inc:392 +#: src/etc/inc/priv.defs.inc:386 msgid "WebCfg - Interfaces: Bridge edit" msgstr "" -#: src/etc/inc/priv.defs.inc:393 +#: src/etc/inc/priv.defs.inc:387 msgid "Allow access to the 'Interfaces: Bridge : Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:398 +#: src/etc/inc/priv.defs.inc:392 msgid "WebCfg - Interfaces: GIF" msgstr "" -#: src/etc/inc/priv.defs.inc:399 +#: src/etc/inc/priv.defs.inc:393 msgid "Allow access to the 'Interfaces: GIF' page." msgstr "" -#: src/etc/inc/priv.defs.inc:404 +#: src/etc/inc/priv.defs.inc:398 msgid "WebCfg - Interfaces: GIF: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:405 +#: src/etc/inc/priv.defs.inc:399 msgid "Allow access to the 'Interfaces: GIF: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:410 +#: src/etc/inc/priv.defs.inc:404 msgid "WebCfg - Interfaces: GRE" msgstr "" -#: src/etc/inc/priv.defs.inc:411 +#: src/etc/inc/priv.defs.inc:405 msgid "Allow access to the 'Interfaces: GRE' page." msgstr "" -#: src/etc/inc/priv.defs.inc:416 +#: src/etc/inc/priv.defs.inc:410 msgid "WebCfg - Interfaces: GRE: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:417 +#: src/etc/inc/priv.defs.inc:411 msgid "Allow access to the 'Interfaces: GRE: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:422 +#: src/etc/inc/priv.defs.inc:416 msgid "WebCfg - Interfaces: Groups" msgstr "" -#: src/etc/inc/priv.defs.inc:423 +#: src/etc/inc/priv.defs.inc:417 msgid "Create interface groups" msgstr "" -#: src/etc/inc/priv.defs.inc:428 +#: src/etc/inc/priv.defs.inc:422 msgid "WebCfg - Interfaces: Groups: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:429 +#: src/etc/inc/priv.defs.inc:423 msgid "Allow access to the 'Interfaces: Groups: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:434 +#: src/etc/inc/priv.defs.inc:428 msgid "WebCfg - Interfaces: LAGG:" msgstr "" -#: src/etc/inc/priv.defs.inc:435 +#: src/etc/inc/priv.defs.inc:429 msgid "Allow access to the 'Interfaces: LAGG' page." msgstr "" -#: src/etc/inc/priv.defs.inc:440 +#: src/etc/inc/priv.defs.inc:434 msgid "WebCfg - Interfaces: LAGG: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:441 +#: src/etc/inc/priv.defs.inc:435 msgid "Allow access to the 'Interfaces: LAGG: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:446 +#: src/etc/inc/priv.defs.inc:440 msgid "WebCfg - Interfaces: PPPs" msgstr "" -#: src/etc/inc/priv.defs.inc:447 +#: src/etc/inc/priv.defs.inc:441 msgid "Allow access to the 'Interfaces: PPPs' page." msgstr "" -#: src/etc/inc/priv.defs.inc:452 +#: src/etc/inc/priv.defs.inc:446 msgid "WebCfg - Interfaces: PPPs: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:453 +#: src/etc/inc/priv.defs.inc:447 msgid "Allow access to the 'Interfaces: PPPs: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:458 +#: src/etc/inc/priv.defs.inc:452 msgid "WebCfg - Interfaces: QinQ" msgstr "" -#: src/etc/inc/priv.defs.inc:459 +#: src/etc/inc/priv.defs.inc:453 msgid "Allow access to the 'Interfaces: QinQ' page." msgstr "" -#: src/etc/inc/priv.defs.inc:464 +#: src/etc/inc/priv.defs.inc:458 msgid "WebCfg - Interfaces: QinQ: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:465 +#: src/etc/inc/priv.defs.inc:459 msgid "Allow access to 'Interfaces: QinQ: Edit' page" msgstr "" -#: src/etc/inc/priv.defs.inc:470 +#: src/etc/inc/priv.defs.inc:464 msgid "WebCfg - Interfaces: VLAN" msgstr "" -#: src/etc/inc/priv.defs.inc:471 +#: src/etc/inc/priv.defs.inc:465 msgid "Allow access to the 'Interfaces: VLAN' page." msgstr "" -#: src/etc/inc/priv.defs.inc:476 +#: src/etc/inc/priv.defs.inc:470 msgid "WebCfg - Interfaces: VLAN: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:477 +#: src/etc/inc/priv.defs.inc:471 msgid "Allow access to the 'Interfaces: VLAN: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:482 +#: src/etc/inc/priv.defs.inc:476 msgid "WebCfg - Interfaces: Wireless" msgstr "" -#: src/etc/inc/priv.defs.inc:483 +#: src/etc/inc/priv.defs.inc:477 msgid "Allow access to the 'Interfaces: Wireless' page." msgstr "" -#: src/etc/inc/priv.defs.inc:488 +#: src/etc/inc/priv.defs.inc:482 msgid "WebCfg - Interfaces: Wireless: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:489 +#: src/etc/inc/priv.defs.inc:483 msgid "Allow access to the 'Interfaces: Wireless: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:494 +#: src/etc/inc/priv.defs.inc:488 msgid "WebCfg - System: License" msgstr "" -#: src/etc/inc/priv.defs.inc:495 +#: src/etc/inc/priv.defs.inc:489 msgid "Allow access to the 'System: License' page." msgstr "" -#: src/etc/inc/priv.defs.inc:500 +#: src/etc/inc/priv.defs.inc:494 msgid "WebCfg - Services: Load Balancer: Monitors" msgstr "" -#: src/etc/inc/priv.defs.inc:501 +#: src/etc/inc/priv.defs.inc:495 msgid "Allow access to the 'Services: Load Balancer: Monitors' page." msgstr "" -#: src/etc/inc/priv.defs.inc:506 +#: src/etc/inc/priv.defs.inc:500 msgid "WebCfg - Services: Load Balancer: Monitor: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:507 +#: src/etc/inc/priv.defs.inc:501 msgid "Allow access to the 'Services: Load Balancer: Monitor: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:512 +#: src/etc/inc/priv.defs.inc:506 msgid "WebCfg - Load Balancer: Pool" msgstr "" -#: src/etc/inc/priv.defs.inc:513 +#: src/etc/inc/priv.defs.inc:507 msgid "Allow access to the 'Load Balancer: Pool' page." msgstr "" -#: src/etc/inc/priv.defs.inc:518 +#: src/etc/inc/priv.defs.inc:512 msgid "WebCfg - Load Balancer: Pool: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:519 +#: src/etc/inc/priv.defs.inc:513 msgid "Allow access to the 'Load Balancer: Pool: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:524 +#: src/etc/inc/priv.defs.inc:518 msgid "WebCfg - Services: Load Balancer: Settings" msgstr "" -#: src/etc/inc/priv.defs.inc:525 +#: src/etc/inc/priv.defs.inc:519 msgid "Allow access to the 'Settings: Load Balancer: Settings' page." msgstr "" -#: src/etc/inc/priv.defs.inc:530 +#: src/etc/inc/priv.defs.inc:524 msgid "WebCfg - Services: Load Balancer: Virtual Servers" msgstr "" -#: src/etc/inc/priv.defs.inc:531 +#: src/etc/inc/priv.defs.inc:525 msgid "Allow access to the 'Services: Load Balancer: Virtual Servers' page." msgstr "" -#: src/etc/inc/priv.defs.inc:536 +#: src/etc/inc/priv.defs.inc:530 msgid "WebCfg - Load Balancer: Virtual Server: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:537 +#: src/etc/inc/priv.defs.inc:531 msgid "Allow access to the 'Load Balancer: Virtual Server: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:542 +#: src/etc/inc/priv.defs.inc:536 msgid "WebCfg - Package: Settings" msgstr "" -#: src/etc/inc/priv.defs.inc:543 +#: src/etc/inc/priv.defs.inc:537 msgid "Allow access to the 'Package: Settings' page." msgstr "" -#: src/etc/inc/priv.defs.inc:548 +#: src/etc/inc/priv.defs.inc:542 msgid "WebCfg - Package: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:549 +#: src/etc/inc/priv.defs.inc:543 msgid "Allow access to the 'Package: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:554 +#: src/etc/inc/priv.defs.inc:548 msgid "WebCfg - System: Package Manager" msgstr "" -#: src/etc/inc/priv.defs.inc:555 +#: src/etc/inc/priv.defs.inc:549 msgid "Allow access to the 'System: Package Manager' page." msgstr "" -#: src/etc/inc/priv.defs.inc:560 +#: src/etc/inc/priv.defs.inc:554 msgid "WebCfg - System: Package Manager: Install Package" msgstr "" -#: src/etc/inc/priv.defs.inc:561 +#: src/etc/inc/priv.defs.inc:555 msgid "Allow access to the 'System: Package Manager: Install Package' page." msgstr "" -#: src/etc/inc/priv.defs.inc:566 +#: src/etc/inc/priv.defs.inc:560 msgid "WebCfg - System: Package Manager: Installed" msgstr "" -#: src/etc/inc/priv.defs.inc:567 +#: src/etc/inc/priv.defs.inc:561 msgid "Allow access to the 'System: Package Manager: Installed' page." msgstr "" -#: src/etc/inc/priv.defs.inc:572 -msgid "WebCfg - Diagnostics: Restart Web Server Daemon" -msgstr "" - -#: src/etc/inc/priv.defs.inc:573 -msgid "Allow access to the 'Diagnostics: Restart Web Server Daemon' page." -msgstr "" - -#: src/etc/inc/priv.defs.inc:578 +#: src/etc/inc/priv.defs.inc:566 msgid "WebCfg - Services: Captive portal" msgstr "" -#: src/etc/inc/priv.defs.inc:579 +#: src/etc/inc/priv.defs.inc:567 msgid "Allow access to the 'Services: Captive portal' page." msgstr "" -#: src/etc/inc/priv.defs.inc:584 +#: src/etc/inc/priv.defs.inc:572 msgid "WebCfg - Services: Captive portal: File Manager" msgstr "" -#: src/etc/inc/priv.defs.inc:585 +#: src/etc/inc/priv.defs.inc:573 msgid "Allow access to the 'Services: Captive portal: File Manager' page." msgstr "" -#: src/etc/inc/priv.defs.inc:590 +#: src/etc/inc/priv.defs.inc:578 msgid "WebCfg - Services: Captive portal: Allowed Hostnames" msgstr "" -#: src/etc/inc/priv.defs.inc:591 +#: src/etc/inc/priv.defs.inc:579 msgid "Allow access to the 'Services: Captive portal: Allowed Hostnames' page." msgstr "" -#: src/etc/inc/priv.defs.inc:596 +#: src/etc/inc/priv.defs.inc:584 msgid "WebCfg - Services: Captive portal: Edit Allowed Hostnames" msgstr "" -#: src/etc/inc/priv.defs.inc:597 +#: src/etc/inc/priv.defs.inc:585 msgid "" "Allow access to the 'Services: Captive portal: Edit Allowed Hostnames' page." msgstr "" -#: src/etc/inc/priv.defs.inc:602 +#: src/etc/inc/priv.defs.inc:590 msgid "WebCfg - Services: Captive portal: Allowed IPs" msgstr "" -#: src/etc/inc/priv.defs.inc:603 +#: src/etc/inc/priv.defs.inc:591 msgid "Allow access to the 'Services: Captive portal: Allowed IPs' page." msgstr "" -#: src/etc/inc/priv.defs.inc:608 +#: src/etc/inc/priv.defs.inc:596 msgid "WebCfg - Services: Captive portal: Edit Allowed IPs" msgstr "" -#: src/etc/inc/priv.defs.inc:609 +#: src/etc/inc/priv.defs.inc:597 msgid "Allow access to the 'Services: Captive portal: Edit Allowed IPs' page." msgstr "" -#: src/etc/inc/priv.defs.inc:614 +#: src/etc/inc/priv.defs.inc:602 msgid "WebCfg - Services: Captive portal: Mac Addresses" msgstr "" -#: src/etc/inc/priv.defs.inc:615 +#: src/etc/inc/priv.defs.inc:603 msgid "Allow access to the 'Services: Captive portal: Mac Addresses' page." msgstr "" -#: src/etc/inc/priv.defs.inc:620 +#: src/etc/inc/priv.defs.inc:608 msgid "WebCfg - Services: Captive portal: Edit MAC Addresses" msgstr "" -#: src/etc/inc/priv.defs.inc:621 +#: src/etc/inc/priv.defs.inc:609 msgid "" "Allow access to the 'Services: Captive portal: Edit MAC Addresses' page." msgstr "" -#: src/etc/inc/priv.defs.inc:626 +#: src/etc/inc/priv.defs.inc:614 msgid "WebCfg - Services: Captive portal Vouchers" msgstr "" -#: src/etc/inc/priv.defs.inc:627 +#: src/etc/inc/priv.defs.inc:615 msgid "Allow access to the 'Services: Captive portal Vouchers' page." msgstr "" -#: src/etc/inc/priv.defs.inc:632 +#: src/etc/inc/priv.defs.inc:620 msgid "WebCfg - Services: Captive portal Voucher Rolls" msgstr "" -#: src/etc/inc/priv.defs.inc:633 +#: src/etc/inc/priv.defs.inc:621 msgid "Allow access to the 'Services: Captive portal Edit Voucher Rolls' page." msgstr "" -#: src/etc/inc/priv.defs.inc:638 +#: src/etc/inc/priv.defs.inc:626 msgid "WebCfg - Services: Captive portal Zones" msgstr "" -#: src/etc/inc/priv.defs.inc:639 +#: src/etc/inc/priv.defs.inc:627 msgid "Allow access to the 'Services: Captive portal Zones' page." msgstr "" -#: src/etc/inc/priv.defs.inc:644 +#: src/etc/inc/priv.defs.inc:632 msgid "WebCfg - Services: Captive portal: Edit Zones" msgstr "" -#: src/etc/inc/priv.defs.inc:645 +#: src/etc/inc/priv.defs.inc:633 msgid "Allow access to the 'Services: Captive portal: Edit Zones' page." msgstr "" -#: src/etc/inc/priv.defs.inc:650 +#: src/etc/inc/priv.defs.inc:638 msgid "WebCfg - Services: Check IP Service" msgstr "" -#: src/etc/inc/priv.defs.inc:651 +#: src/etc/inc/priv.defs.inc:639 msgid "Allow access to the 'Services: Check IP Service' page." msgstr "" -#: src/etc/inc/priv.defs.inc:656 +#: src/etc/inc/priv.defs.inc:644 msgid "WebCfg - Services: Check IP Service: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:657 +#: src/etc/inc/priv.defs.inc:645 msgid "Allow access to the 'Services: Check IP Service: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:662 +#: src/etc/inc/priv.defs.inc:650 msgid "WebCfg - Services: DHCP Server" msgstr "" -#: src/etc/inc/priv.defs.inc:663 +#: src/etc/inc/priv.defs.inc:651 msgid "Allow access to the 'Services: DHCP Server' page." msgstr "" -#: src/etc/inc/priv.defs.inc:668 +#: src/etc/inc/priv.defs.inc:656 msgid "WebCfg - Services: DHCP Server: Edit static mapping" msgstr "" -#: src/etc/inc/priv.defs.inc:669 +#: src/etc/inc/priv.defs.inc:657 msgid "Allow access to the 'Services: DHCP Server: Edit static mapping' page." msgstr "" -#: src/etc/inc/priv.defs.inc:674 +#: src/etc/inc/priv.defs.inc:662 msgid "WebCfg - Services: DHCP Relay" msgstr "" -#: src/etc/inc/priv.defs.inc:675 +#: src/etc/inc/priv.defs.inc:663 msgid "Allow access to the 'Services: DHCP Relay' page." msgstr "" -#: src/etc/inc/priv.defs.inc:680 +#: src/etc/inc/priv.defs.inc:668 msgid "WebCfg - Services: DHCPv6 server" msgstr "" -#: src/etc/inc/priv.defs.inc:681 +#: src/etc/inc/priv.defs.inc:669 msgid "Allow access to the 'Services: DHCPv6 server' page." msgstr "" -#: src/etc/inc/priv.defs.inc:686 +#: src/etc/inc/priv.defs.inc:674 msgid "WebCfg - Services: DHCPv6 Server: Edit static mapping" msgstr "" -#: src/etc/inc/priv.defs.inc:687 +#: src/etc/inc/priv.defs.inc:675 msgid "" "Allow access to the 'Services: DHCPv6 Server : Edit static mapping' page." msgstr "" -#: src/etc/inc/priv.defs.inc:692 +#: src/etc/inc/priv.defs.inc:680 msgid "WebCfg - Services: DHCPv6 Relay" msgstr "" -#: src/etc/inc/priv.defs.inc:693 +#: src/etc/inc/priv.defs.inc:681 msgid "Allow access to the 'Services: DHCPv6 Relay' page." msgstr "" -#: src/etc/inc/priv.defs.inc:698 +#: src/etc/inc/priv.defs.inc:686 msgid "WebCfg - Services: DNS Forwarder" msgstr "" -#: src/etc/inc/priv.defs.inc:699 +#: src/etc/inc/priv.defs.inc:687 msgid "Allow access to the 'Services: DNS Forwarder' page." msgstr "" -#: src/etc/inc/priv.defs.inc:704 +#: src/etc/inc/priv.defs.inc:692 msgid "WebCfg - Services: DNS Forwarder: Edit Domain Override" msgstr "" -#: src/etc/inc/priv.defs.inc:705 +#: src/etc/inc/priv.defs.inc:693 msgid "" "Allow access to the 'Services: DNS Forwarder: Edit Domain Override' page." msgstr "" -#: src/etc/inc/priv.defs.inc:710 +#: src/etc/inc/priv.defs.inc:698 msgid "WebCfg - Services: DNS Forwarder: Edit host" msgstr "" -#: src/etc/inc/priv.defs.inc:711 +#: src/etc/inc/priv.defs.inc:699 msgid "Allow access to the 'Services: DNS Forwarder: Edit host' page." msgstr "" -#: src/etc/inc/priv.defs.inc:716 +#: src/etc/inc/priv.defs.inc:704 msgid "WebCfg - Services: Dynamic DNS clients" msgstr "" -#: src/etc/inc/priv.defs.inc:717 +#: src/etc/inc/priv.defs.inc:705 msgid "Allow access to the 'Services: Dynamic DNS clients' page." msgstr "" -#: src/etc/inc/priv.defs.inc:722 +#: src/etc/inc/priv.defs.inc:710 msgid "WebCfg - Services: Dynamic DNS client" msgstr "" -#: src/etc/inc/priv.defs.inc:723 +#: src/etc/inc/priv.defs.inc:711 msgid "Allow access to the 'Services: Dynamic DNS client' page." msgstr "" -#: src/etc/inc/priv.defs.inc:728 +#: src/etc/inc/priv.defs.inc:716 msgid "WebCfg - Services: IGMP Proxy" msgstr "" -#: src/etc/inc/priv.defs.inc:729 +#: src/etc/inc/priv.defs.inc:717 msgid "Allow access to the 'Services: IGMP Proxy' page." msgstr "" -#: src/etc/inc/priv.defs.inc:734 +#: src/etc/inc/priv.defs.inc:722 msgid "WebCfg - Services: IGMP Proxy: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:735 +#: src/etc/inc/priv.defs.inc:723 msgid "Allow access to the 'Services: IGMP Proxy: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:740 +#: src/etc/inc/priv.defs.inc:728 msgid "WebCfg - Services: NTP Settings" msgstr "" -#: src/etc/inc/priv.defs.inc:741 +#: src/etc/inc/priv.defs.inc:729 msgid "Allow access to the 'Services: NTP Settings' page." msgstr "" -#: src/etc/inc/priv.defs.inc:746 +#: src/etc/inc/priv.defs.inc:734 msgid "WebCfg - Services: NTP ACL Settings" msgstr "" -#: src/etc/inc/priv.defs.inc:747 +#: src/etc/inc/priv.defs.inc:735 msgid "Allow access to the 'Services: NTP ACL Settings' page." msgstr "" -#: src/etc/inc/priv.defs.inc:752 +#: src/etc/inc/priv.defs.inc:740 msgid "WebCfg - Services: NTP Serial GPS" msgstr "" -#: src/etc/inc/priv.defs.inc:753 +#: src/etc/inc/priv.defs.inc:741 msgid "Allow access to the 'Services: NTP Serial GPS' page." msgstr "" -#: src/etc/inc/priv.defs.inc:758 +#: src/etc/inc/priv.defs.inc:746 msgid "WebCfg - Services: NTP PPS" msgstr "" -#: src/etc/inc/priv.defs.inc:759 +#: src/etc/inc/priv.defs.inc:747 msgid "Allow access to the 'Services: NTP PPS' page." msgstr "" -#: src/etc/inc/priv.defs.inc:764 +#: src/etc/inc/priv.defs.inc:752 msgid "WebCfg - Services: PPPoE Server" msgstr "" -#: src/etc/inc/priv.defs.inc:765 +#: src/etc/inc/priv.defs.inc:753 msgid "Allow access to the 'Services: PPPoE Server' page." msgstr "" -#: src/etc/inc/priv.defs.inc:770 +#: src/etc/inc/priv.defs.inc:758 msgid "WebCfg - Services: PPPoE Server: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:771 +#: src/etc/inc/priv.defs.inc:759 msgid "Allow access to the 'Services: PPPoE Server: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:776 +#: src/etc/inc/priv.defs.inc:764 msgid "WebCfg - Services: RFC 2136 Clients" msgstr "" -#: src/etc/inc/priv.defs.inc:777 +#: src/etc/inc/priv.defs.inc:765 msgid "Allow access to the 'Services: RFC 2136 Clients' page." msgstr "" -#: src/etc/inc/priv.defs.inc:782 +#: src/etc/inc/priv.defs.inc:770 msgid "WebCfg - Services: RFC 2136 Client: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:783 +#: src/etc/inc/priv.defs.inc:771 msgid "Allow access to the 'Services: RFC 2136 Client: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:788 +#: src/etc/inc/priv.defs.inc:776 msgid "WebCfg - Services: Router Advertisements" msgstr "" -#: src/etc/inc/priv.defs.inc:789 +#: src/etc/inc/priv.defs.inc:777 msgid "Allow access to the 'Services: Router Advertisements' page." msgstr "" -#: src/etc/inc/priv.defs.inc:794 +#: src/etc/inc/priv.defs.inc:782 msgid "WebCfg - Services: SNMP" msgstr "" -#: src/etc/inc/priv.defs.inc:795 +#: src/etc/inc/priv.defs.inc:783 msgid "Allow access to the 'Services: SNMP' page." msgstr "" -#: src/etc/inc/priv.defs.inc:800 +#: src/etc/inc/priv.defs.inc:788 msgid "WebCfg - Services: DNS Resolver" msgstr "" -#: src/etc/inc/priv.defs.inc:801 +#: src/etc/inc/priv.defs.inc:789 msgid "Allow access to the 'Services: DNS Resolver' page." msgstr "" -#: src/etc/inc/priv.defs.inc:806 +#: src/etc/inc/priv.defs.inc:794 msgid "WebCfg - Services: DNS Resolver: Access Lists" msgstr "" -#: src/etc/inc/priv.defs.inc:807 +#: src/etc/inc/priv.defs.inc:795 msgid "Allow access to the 'Services: DNS Resolver: Access Lists' page." msgstr "" -#: src/etc/inc/priv.defs.inc:812 +#: src/etc/inc/priv.defs.inc:800 msgid "WebCfg - Services: DNS Resolver: Advanced" msgstr "" -#: src/etc/inc/priv.defs.inc:813 +#: src/etc/inc/priv.defs.inc:801 msgid "Allow access to the 'Services: DNS Resolver: Advanced' page." msgstr "" -#: src/etc/inc/priv.defs.inc:818 +#: src/etc/inc/priv.defs.inc:806 msgid "WebCfg - Services: DNS Resolver: Edit Domain Override" msgstr "" -#: src/etc/inc/priv.defs.inc:819 +#: src/etc/inc/priv.defs.inc:807 msgid "" "Allow access to the 'Services: DNS Resolver: Edit Domain Override' page." msgstr "" -#: src/etc/inc/priv.defs.inc:824 +#: src/etc/inc/priv.defs.inc:812 msgid "WebCfg - Services: DNS Resolver: Edit host" msgstr "" -#: src/etc/inc/priv.defs.inc:825 +#: src/etc/inc/priv.defs.inc:813 msgid "Allow access to the 'Services: DNS Resolver: Edit host' page." msgstr "" -#: src/etc/inc/priv.defs.inc:830 +#: src/etc/inc/priv.defs.inc:818 msgid "WebCfg - Services: Wake-on-LAN" msgstr "" -#: src/etc/inc/priv.defs.inc:831 +#: src/etc/inc/priv.defs.inc:819 msgid "Allow access to the 'Services: Wake-on-LAN' page." msgstr "" -#: src/etc/inc/priv.defs.inc:836 +#: src/etc/inc/priv.defs.inc:824 msgid "WebCfg - Services: Wake-on-LAN: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:837 +#: src/etc/inc/priv.defs.inc:825 msgid "Allow access to the 'Services: Wake-on-LAN: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:842 +#: src/etc/inc/priv.defs.inc:830 msgid "WebCfg - Hidden: Detailed Status" msgstr "" -#: src/etc/inc/priv.defs.inc:843 +#: src/etc/inc/priv.defs.inc:831 msgid "Allow access to the 'Hidden: Detailed Status' page." msgstr "" -#: src/etc/inc/priv.defs.inc:848 +#: src/etc/inc/priv.defs.inc:836 msgid "WebCfg - Status: Captive portal" msgstr "" -#: src/etc/inc/priv.defs.inc:849 +#: src/etc/inc/priv.defs.inc:837 msgid "Allow access to the 'Status: Captive portal' page." msgstr "" -#: src/etc/inc/priv.defs.inc:854 +#: src/etc/inc/priv.defs.inc:842 msgid "WebCfg - Status: Captive Portal: Expire Vouchers" msgstr "" -#: src/etc/inc/priv.defs.inc:855 +#: src/etc/inc/priv.defs.inc:843 msgid "Allow access to the 'Status: Captive Portal: Expire Vouchers' page." msgstr "" -#: src/etc/inc/priv.defs.inc:860 +#: src/etc/inc/priv.defs.inc:848 msgid "WebCfg - Status: Captive Portal: Test Vouchers" msgstr "" -#: src/etc/inc/priv.defs.inc:861 +#: src/etc/inc/priv.defs.inc:849 msgid "Allow access to the 'Status: Captive Portal: Test Vouchers' page." msgstr "" -#: src/etc/inc/priv.defs.inc:866 +#: src/etc/inc/priv.defs.inc:854 msgid "WebCfg - Status: Captive portal Voucher Rolls" msgstr "" -#: src/etc/inc/priv.defs.inc:867 +#: src/etc/inc/priv.defs.inc:855 msgid "Allow access to the 'Status: Captive portal Voucher Rolls' page." msgstr "" -#: src/etc/inc/priv.defs.inc:872 +#: src/etc/inc/priv.defs.inc:860 msgid "WebCfg - Status: Captive portal Vouchers" msgstr "" -#: src/etc/inc/priv.defs.inc:873 +#: src/etc/inc/priv.defs.inc:861 msgid "Allow access to the 'Status: Captive portal Vouchers' page." msgstr "" -#: src/etc/inc/priv.defs.inc:878 +#: src/etc/inc/priv.defs.inc:866 msgid "WebCfg - Status: CARP" msgstr "" -#: src/etc/inc/priv.defs.inc:879 +#: src/etc/inc/priv.defs.inc:867 msgid "Allow access to the 'Status: CARP' page." msgstr "" -#: src/etc/inc/priv.defs.inc:884 +#: src/etc/inc/priv.defs.inc:872 msgid "WebCfg - Status: DHCP leases" msgstr "" -#: src/etc/inc/priv.defs.inc:885 +#: src/etc/inc/priv.defs.inc:873 msgid "Allow access to the 'Status: DHCP leases' page." msgstr "" -#: src/etc/inc/priv.defs.inc:890 +#: src/etc/inc/priv.defs.inc:878 msgid "WebCfg - Status: DHCPv6 leases" msgstr "" -#: src/etc/inc/priv.defs.inc:891 +#: src/etc/inc/priv.defs.inc:879 msgid "Allow access to the 'Status: DHCPv6 leases' page." msgstr "" -#: src/etc/inc/priv.defs.inc:896 +#: src/etc/inc/priv.defs.inc:884 msgid "WebCfg - Status: Filter Reload Status" msgstr "" -#: src/etc/inc/priv.defs.inc:897 +#: src/etc/inc/priv.defs.inc:885 msgid "Allow access to the 'Status: Filter Reload Status' page." msgstr "" -#: src/etc/inc/priv.defs.inc:902 +#: src/etc/inc/priv.defs.inc:890 msgid "WebCfg - Status: Gateway Groups" msgstr "" -#: src/etc/inc/priv.defs.inc:903 +#: src/etc/inc/priv.defs.inc:891 msgid "Allow access to the 'Status: Gateway Groups' page." msgstr "" -#: src/etc/inc/priv.defs.inc:908 +#: src/etc/inc/priv.defs.inc:896 msgid "WebCfg - Status: Gateways" msgstr "" -#: src/etc/inc/priv.defs.inc:909 +#: src/etc/inc/priv.defs.inc:897 msgid "Allow access to the 'Status: Gateways' page." msgstr "" -#: src/etc/inc/priv.defs.inc:914 +#: src/etc/inc/priv.defs.inc:902 msgid "WebCfg - Status: Traffic Graph" msgstr "" -#: src/etc/inc/priv.defs.inc:915 +#: src/etc/inc/priv.defs.inc:903 msgid "Allow access to the 'Status: Traffic Graph' page." msgstr "" -#: src/etc/inc/priv.defs.inc:923 +#: src/etc/inc/priv.defs.inc:911 msgid "WebCfg - Status: CPU load" msgstr "" -#: src/etc/inc/priv.defs.inc:924 +#: src/etc/inc/priv.defs.inc:912 msgid "Allow access to the 'Status: CPU load' page." msgstr "" -#: src/etc/inc/priv.defs.inc:929 +#: src/etc/inc/priv.defs.inc:917 msgid "WebCfg - Status: Interfaces" msgstr "" -#: src/etc/inc/priv.defs.inc:930 +#: src/etc/inc/priv.defs.inc:918 msgid "Allow access to the 'Status: Interfaces' page." msgstr "" -#: src/etc/inc/priv.defs.inc:935 +#: src/etc/inc/priv.defs.inc:923 msgid "WebCfg - Status: IPsec" msgstr "" -#: src/etc/inc/priv.defs.inc:936 +#: src/etc/inc/priv.defs.inc:924 msgid "Allow access to the 'Status: IPsec' page." msgstr "" -#: src/etc/inc/priv.defs.inc:941 +#: src/etc/inc/priv.defs.inc:929 msgid "WebCfg - Status: IPsec: Leases" msgstr "" -#: src/etc/inc/priv.defs.inc:942 +#: src/etc/inc/priv.defs.inc:930 msgid "Allow access to the 'Status: IPsec: Leases' page." msgstr "" -#: src/etc/inc/priv.defs.inc:947 +#: src/etc/inc/priv.defs.inc:935 msgid "WebCfg - Status: IPsec: SADs" msgstr "" -#: src/etc/inc/priv.defs.inc:948 +#: src/etc/inc/priv.defs.inc:936 msgid "Allow access to the 'Status: IPsec: SADs' page." msgstr "" -#: src/etc/inc/priv.defs.inc:953 +#: src/etc/inc/priv.defs.inc:941 msgid "WebCfg - Status: IPsec: SPD" msgstr "" -#: src/etc/inc/priv.defs.inc:954 +#: src/etc/inc/priv.defs.inc:942 msgid "Allow access to the 'Status: IPsec: SPD' page." msgstr "" -#: src/etc/inc/priv.defs.inc:959 +#: src/etc/inc/priv.defs.inc:947 msgid "WebCfg - Status: Load Balancer: Pool" msgstr "" -#: src/etc/inc/priv.defs.inc:960 +#: src/etc/inc/priv.defs.inc:948 msgid "Allow access to the 'Status: Load Balancer: Pool' page." msgstr "" -#: src/etc/inc/priv.defs.inc:965 +#: src/etc/inc/priv.defs.inc:953 msgid "WebCfg - Status: Load Balancer: Virtual Server" msgstr "" -#: src/etc/inc/priv.defs.inc:966 +#: src/etc/inc/priv.defs.inc:954 msgid "Allow access to the 'Status: Load Balancer: Virtual Server' page." msgstr "" -#: src/etc/inc/priv.defs.inc:971 +#: src/etc/inc/priv.defs.inc:959 msgid "WebCfg - Status: Logs: System" msgstr "" -#: src/etc/inc/priv.defs.inc:972 +#: src/etc/inc/priv.defs.inc:960 msgid "Allow access to the 'Status: System Logs: General' page." msgstr "" -#: src/etc/inc/priv.defs.inc:977 +#: src/etc/inc/priv.defs.inc:965 msgid "WebCfg - Status: Logs: Firewall" msgstr "" -#: src/etc/inc/priv.defs.inc:978 +#: src/etc/inc/priv.defs.inc:966 msgid "Allow access to the 'Status: Logs: Firewall' page." msgstr "" -#: src/etc/inc/priv.defs.inc:983 +#: src/etc/inc/priv.defs.inc:971 msgid "WebCfg - Status: System Logs: Firewall (Dynamic View)" msgstr "" -#: src/etc/inc/priv.defs.inc:984 +#: src/etc/inc/priv.defs.inc:972 msgid "Allow access to the 'Status: System Logs: Firewall (Dynamic View)' page" msgstr "" -#: src/etc/inc/priv.defs.inc:989 +#: src/etc/inc/priv.defs.inc:977 msgid "WebCfg - Status: System Logs: Firewall Log Summary" msgstr "" -#: src/etc/inc/priv.defs.inc:990 +#: src/etc/inc/priv.defs.inc:978 msgid "Allow access to the 'Status: System Logs: Firewall Log Summary' page" msgstr "" -#: src/etc/inc/priv.defs.inc:995 +#: src/etc/inc/priv.defs.inc:983 msgid "WebCfg - Status: Logs: Settings" msgstr "" -#: src/etc/inc/priv.defs.inc:996 +#: src/etc/inc/priv.defs.inc:984 msgid "Allow access to the 'Status: Logs: Settings' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1001 +#: src/etc/inc/priv.defs.inc:989 msgid "WebCfg - Status: Logs: VPN" msgstr "" -#: src/etc/inc/priv.defs.inc:1002 +#: src/etc/inc/priv.defs.inc:990 msgid "Allow access to the 'Status: Logs: VPN' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1007 +#: src/etc/inc/priv.defs.inc:995 msgid "WebCfg - Status: NTP" msgstr "" -#: src/etc/inc/priv.defs.inc:1008 +#: src/etc/inc/priv.defs.inc:996 msgid "Allow access to the 'Status: NTP' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1013 +#: src/etc/inc/priv.defs.inc:1001 msgid "WebCfg - Status: OpenVPN" msgstr "" -#: src/etc/inc/priv.defs.inc:1014 +#: src/etc/inc/priv.defs.inc:1002 msgid "Allow access to the 'Status: OpenVPN' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1019 +#: src/etc/inc/priv.defs.inc:1007 msgid "WebCfg - Status: Package logs" msgstr "" -#: src/etc/inc/priv.defs.inc:1020 +#: src/etc/inc/priv.defs.inc:1008 msgid "Allow access to the 'Status: Package logs' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1025 +#: src/etc/inc/priv.defs.inc:1013 msgid "WebCfg - Status: Traffic shaper: Queues" msgstr "" -#: src/etc/inc/priv.defs.inc:1026 +#: src/etc/inc/priv.defs.inc:1014 msgid "Allow access to the 'Status: Traffic shaper: Queues' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1031 +#: src/etc/inc/priv.defs.inc:1019 msgid "WebCfg - Status: Services" msgstr "" -#: src/etc/inc/priv.defs.inc:1032 +#: src/etc/inc/priv.defs.inc:1020 msgid "Allow access to the 'Status: Services' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1037 +#: src/etc/inc/priv.defs.inc:1025 msgid "WebCfg - Status: UPnP Status" msgstr "" -#: src/etc/inc/priv.defs.inc:1038 +#: src/etc/inc/priv.defs.inc:1026 msgid "Allow access to the 'Status: UPnP Status' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1043 +#: src/etc/inc/priv.defs.inc:1031 msgid "WebCfg - Status: Wireless" msgstr "" -#: src/etc/inc/priv.defs.inc:1044 +#: src/etc/inc/priv.defs.inc:1032 msgid "Allow access to the 'Status: Wireless' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1049 +#: src/etc/inc/priv.defs.inc:1037 msgid "WebCfg - System: General Setup" msgstr "" -#: src/etc/inc/priv.defs.inc:1050 +#: src/etc/inc/priv.defs.inc:1038 msgid "Allow access to the 'System: General Setup' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1055 +#: src/etc/inc/priv.defs.inc:1043 msgid "WebCfg - System: Advanced: Admin Access Page" msgstr "" -#: src/etc/inc/priv.defs.inc:1056 +#: src/etc/inc/priv.defs.inc:1044 msgid "Allow access to the 'System: Advanced: Admin Access' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1061 +#: src/etc/inc/priv.defs.inc:1049 msgid "WebCfg - System: Advanced: Firewall & NAT" msgstr "" -#: src/etc/inc/priv.defs.inc:1062 +#: src/etc/inc/priv.defs.inc:1050 msgid "Allow access to the 'System: Advanced: Firewall & NAT' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1067 +#: src/etc/inc/priv.defs.inc:1055 msgid "WebCfg - System: Advanced: Miscellaneous" msgstr "" -#: src/etc/inc/priv.defs.inc:1068 +#: src/etc/inc/priv.defs.inc:1056 msgid "Allow access to the 'System: Advanced: Miscellaneous' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1073 +#: src/etc/inc/priv.defs.inc:1061 msgid "WebCfg - System: Advanced: Networking" msgstr "" -#: src/etc/inc/priv.defs.inc:1074 +#: src/etc/inc/priv.defs.inc:1062 msgid "Allow access to the 'System: Advanced: Networking' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1079 +#: src/etc/inc/priv.defs.inc:1067 msgid "WebCfg - System: Advanced: Notifications" msgstr "" -#: src/etc/inc/priv.defs.inc:1080 +#: src/etc/inc/priv.defs.inc:1068 msgid "Allow access to the 'System: Advanced: Notifications' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1085 +#: src/etc/inc/priv.defs.inc:1073 msgid "WebCfg - System: Advanced: Tunables" msgstr "" -#: src/etc/inc/priv.defs.inc:1086 +#: src/etc/inc/priv.defs.inc:1074 msgid "Allow access to the 'System: Advanced: Tunables' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1091 +#: src/etc/inc/priv.defs.inc:1079 msgid "WebCfg - System: Authentication Servers" msgstr "" -#: src/etc/inc/priv.defs.inc:1092 +#: src/etc/inc/priv.defs.inc:1080 msgid "Allow access to the 'System: Authentication Servers' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1097 +#: src/etc/inc/priv.defs.inc:1085 msgid "WebCfg - System: CA Manager" msgstr "" -#: src/etc/inc/priv.defs.inc:1098 +#: src/etc/inc/priv.defs.inc:1086 msgid "Allow access to the 'System: CA Manager' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1103 +#: src/etc/inc/priv.defs.inc:1091 msgid "WebCfg - System: Certificate Manager" msgstr "" -#: src/etc/inc/priv.defs.inc:1104 +#: src/etc/inc/priv.defs.inc:1092 msgid "Allow access to the 'System: Certificate Manager' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1109 +#: src/etc/inc/priv.defs.inc:1097 msgid "WebCfg - System: CRL Manager" msgstr "" -#: src/etc/inc/priv.defs.inc:1110 +#: src/etc/inc/priv.defs.inc:1098 msgid "Allow access to the 'System: CRL Manager' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1115 +#: src/etc/inc/priv.defs.inc:1103 msgid "WebCfg - System: Gateway Groups" msgstr "" -#: src/etc/inc/priv.defs.inc:1116 +#: src/etc/inc/priv.defs.inc:1104 msgid "Allow access to the 'System: Gateway Groups' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1121 +#: src/etc/inc/priv.defs.inc:1109 msgid "WebCfg - System: Gateways: Edit Gateway Groups" msgstr "" -#: src/etc/inc/priv.defs.inc:1122 +#: src/etc/inc/priv.defs.inc:1110 msgid "Allow access to the 'System: Gateways: Edit Gateway Groups' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1127 +#: src/etc/inc/priv.defs.inc:1115 msgid "WebCfg - System: Gateways" msgstr "" -#: src/etc/inc/priv.defs.inc:1128 +#: src/etc/inc/priv.defs.inc:1116 msgid "Allow access to the 'System: Gateways' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1133 +#: src/etc/inc/priv.defs.inc:1121 msgid "WebCfg - System: Gateways: Edit Gateway" msgstr "" -#: src/etc/inc/priv.defs.inc:1134 +#: src/etc/inc/priv.defs.inc:1122 msgid "Allow access to the 'System: Gateways: Edit Gateway' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1139 +#: src/etc/inc/priv.defs.inc:1127 msgid "WebCfg - System: Group manager" msgstr "" -#: src/etc/inc/priv.defs.inc:1140 +#: src/etc/inc/priv.defs.inc:1128 msgid "Allow access to the 'System: Group manager' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1145 +#: src/etc/inc/priv.defs.inc:1133 msgid "WebCfg - System: Group Manager: Add Privileges" msgstr "" -#: src/etc/inc/priv.defs.inc:1146 +#: src/etc/inc/priv.defs.inc:1134 msgid "Allow access to the 'System: Group Manager: Add Privileges' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1151 +#: src/etc/inc/priv.defs.inc:1139 msgid "WebCfg - System: High Availability Sync" msgstr "" -#: src/etc/inc/priv.defs.inc:1152 +#: src/etc/inc/priv.defs.inc:1140 msgid "Allow access to the 'System: High Availability Sync' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1157 +#: src/etc/inc/priv.defs.inc:1145 msgid "WebCfg - System: Static Routes" msgstr "" -#: src/etc/inc/priv.defs.inc:1158 +#: src/etc/inc/priv.defs.inc:1146 msgid "Allow access to the 'System: Static Routes' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1163 +#: src/etc/inc/priv.defs.inc:1151 msgid "WebCfg - System: Static Routes: Edit route" msgstr "" -#: src/etc/inc/priv.defs.inc:1164 +#: src/etc/inc/priv.defs.inc:1152 msgid "Allow access to the 'System: Static Routes: Edit route' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1169 +#: src/etc/inc/priv.defs.inc:1157 msgid "WebCfg - System: Update: Settings" msgstr "" -#: src/etc/inc/priv.defs.inc:1170 +#: src/etc/inc/priv.defs.inc:1158 msgid "Allow access to the 'System: Update: Settings' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1175 +#: src/etc/inc/priv.defs.inc:1163 msgid "WebCfg - System: User Settings" msgstr "" -#: src/etc/inc/priv.defs.inc:1176 +#: src/etc/inc/priv.defs.inc:1164 msgid "Allow access to the 'System: User Settings' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1181 +#: src/etc/inc/priv.defs.inc:1169 msgid "WebCfg - System: User Manager" msgstr "" -#: src/etc/inc/priv.defs.inc:1182 +#: src/etc/inc/priv.defs.inc:1170 msgid "Allow access to the 'System: User Manager' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1187 +#: src/etc/inc/priv.defs.inc:1175 msgid "WebCfg - System: User Manager: Add Privileges" msgstr "" -#: src/etc/inc/priv.defs.inc:1188 +#: src/etc/inc/priv.defs.inc:1176 msgid "Allow access to the 'System: User Manager: Add Privileges' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1193 +#: src/etc/inc/priv.defs.inc:1181 msgid "WebCfg - System: User Password Manager" msgstr "" -#: src/etc/inc/priv.defs.inc:1194 +#: src/etc/inc/priv.defs.inc:1182 msgid "Allow access to the 'System: User Password Manager' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1199 +#: src/etc/inc/priv.defs.inc:1187 msgid "WebCfg - System: User Manager: Settings" msgstr "" -#: src/etc/inc/priv.defs.inc:1200 +#: src/etc/inc/priv.defs.inc:1188 msgid "Allow access to the 'System: User Manager: Settings' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1205 +#: src/etc/inc/priv.defs.inc:1193 msgid "WebCfg - Hidden: Upload Configuration" msgstr "" -#: src/etc/inc/priv.defs.inc:1206 +#: src/etc/inc/priv.defs.inc:1194 msgid "Allow access to the 'Hidden: Upload Configuration' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1211 +#: src/etc/inc/priv.defs.inc:1199 msgid "WebCfg - VPN: IPsec" msgstr "" -#: src/etc/inc/priv.defs.inc:1212 +#: src/etc/inc/priv.defs.inc:1200 msgid "Allow access to the 'VPN: IPsec' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1217 +#: src/etc/inc/priv.defs.inc:1205 msgid "WebCfg - VPN: IPsec: Pre-Shared Keys List" msgstr "" -#: src/etc/inc/priv.defs.inc:1218 +#: src/etc/inc/priv.defs.inc:1206 msgid "Allow access to the 'VPN: IPsec: Pre-Shared Keys List' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1223 +#: src/etc/inc/priv.defs.inc:1211 msgid "WebCfg - VPN: IPsec: Edit Pre-Shared Keys" msgstr "" -#: src/etc/inc/priv.defs.inc:1224 +#: src/etc/inc/priv.defs.inc:1212 msgid "Allow access to the 'VPN: IPsec: Edit Pre-Shared Keys' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1229 +#: src/etc/inc/priv.defs.inc:1217 msgid "WebCfg - VPN: IPsec: Mobile" msgstr "" -#: src/etc/inc/priv.defs.inc:1230 +#: src/etc/inc/priv.defs.inc:1218 msgid "Allow access to the 'VPN: IPsec: Mobile' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1235 +#: src/etc/inc/priv.defs.inc:1223 msgid "WebCfg - VPN: IPsec: Edit Phase 1" msgstr "" -#: src/etc/inc/priv.defs.inc:1236 +#: src/etc/inc/priv.defs.inc:1224 msgid "Allow access to the 'VPN: IPsec: Edit Phase 1' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1241 +#: src/etc/inc/priv.defs.inc:1229 msgid "WebCfg - VPN: IPsec: Edit Phase 2" msgstr "" -#: src/etc/inc/priv.defs.inc:1242 +#: src/etc/inc/priv.defs.inc:1230 msgid "Allow access to the 'VPN: IPsec: Edit Phase 2' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1247 +#: src/etc/inc/priv.defs.inc:1235 msgid "WebCfg - VPN: IPsec: Settings" msgstr "" -#: src/etc/inc/priv.defs.inc:1248 +#: src/etc/inc/priv.defs.inc:1236 msgid "Allow access to the 'VPN: IPsec: Settings' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1253 +#: src/etc/inc/priv.defs.inc:1241 msgid "WebCfg - VPN: L2TP" msgstr "" -#: src/etc/inc/priv.defs.inc:1254 +#: src/etc/inc/priv.defs.inc:1242 msgid "Allow access to the 'VPN: L2TP' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1259 +#: src/etc/inc/priv.defs.inc:1247 msgid "WebCfg - VPN: L2TP: Users" msgstr "" -#: src/etc/inc/priv.defs.inc:1260 +#: src/etc/inc/priv.defs.inc:1248 msgid "Allow access to the 'VPN: L2TP: Users' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1265 +#: src/etc/inc/priv.defs.inc:1253 msgid "WebCfg - VPN: L2TP: Users: Edit" msgstr "" -#: src/etc/inc/priv.defs.inc:1266 +#: src/etc/inc/priv.defs.inc:1254 msgid "Allow access to the 'VPN: L2TP: Users: Edit' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1271 +#: src/etc/inc/priv.defs.inc:1259 msgid "WebCfg - OpenVPN: Clients" msgstr "" -#: src/etc/inc/priv.defs.inc:1272 +#: src/etc/inc/priv.defs.inc:1260 msgid "Allow access to the 'OpenVPN: Clients' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1277 +#: src/etc/inc/priv.defs.inc:1265 msgid "WebCfg - OpenVPN: Client Specific Override" msgstr "" -#: src/etc/inc/priv.defs.inc:1278 +#: src/etc/inc/priv.defs.inc:1266 msgid "Allow access to the 'OpenVPN: Client Specific Override' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1283 +#: src/etc/inc/priv.defs.inc:1271 msgid "WebCfg - OpenVPN: Servers" msgstr "" -#: src/etc/inc/priv.defs.inc:1284 +#: src/etc/inc/priv.defs.inc:1272 msgid "Allow access to the 'OpenVPN: Servers' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1289 +#: src/etc/inc/priv.defs.inc:1277 msgid "WebCfg - pfSense wizard subsystem" msgstr "" -#: src/etc/inc/priv.defs.inc:1290 +#: src/etc/inc/priv.defs.inc:1278 msgid "Allow access to the 'pfSense wizard subsystem' page." msgstr "" -#: src/etc/inc/priv.defs.inc:1295 +#: src/etc/inc/priv.defs.inc:1283 msgid "WebCfg - XMLRPC Library" msgstr "" -#: src/etc/inc/priv.defs.inc:1296 +#: src/etc/inc/priv.defs.inc:1284 msgid "Allow access to the 'XMLRPC Library' page." msgstr "" @@ -5417,15 +5399,15 @@ msgstr "" msgid "Router Advertisement Daemon" msgstr "" -#: src/etc/inc/service-utils.inc:248 src/usr/local/www/diag_backup.php:526 -#: src/usr/local/www/head.inc:259 src/usr/local/www/services_dnsmasq.php:182 +#: src/etc/inc/service-utils.inc:248 src/usr/local/www/diag_backup.php:481 +#: src/usr/local/www/head.inc:257 src/usr/local/www/services_dnsmasq.php:182 #: src/usr/local/www/services_dnsmasq_domainoverride_edit.php:120 #: src/usr/local/www/services_dnsmasq_edit.php:199 msgid "DNS Forwarder" msgstr "" -#: src/etc/inc/service-utils.inc:255 src/usr/local/www/diag_backup.php:527 -#: src/usr/local/www/head.inc:260 src/usr/local/www/services_unbound.php:238 +#: src/etc/inc/service-utils.inc:255 src/usr/local/www/diag_backup.php:482 +#: src/usr/local/www/head.inc:258 src/usr/local/www/services_unbound.php:238 #: src/usr/local/www/services_unbound_acls.php:174 #: src/usr/local/www/services_unbound_advanced.php:187 #: src/usr/local/www/services_unbound_domainoverride_edit.php:112 @@ -5439,8 +5421,8 @@ msgstr "" msgid "NTP clock sync" msgstr "" -#: src/etc/inc/service-utils.inc:270 src/usr/local/www/diag_backup.php:524 -#: src/usr/local/www/head.inc:258 src/usr/local/www/head.inc:296 +#: src/etc/inc/service-utils.inc:270 src/usr/local/www/diag_backup.php:479 +#: src/usr/local/www/head.inc:256 src/usr/local/www/head.inc:294 #: src/usr/local/www/services_captiveportal.php:64 #: src/usr/local/www/services_captiveportal_filemanager.php:67 #: src/usr/local/www/services_captiveportal_hostname.php:62 @@ -5458,16 +5440,16 @@ msgstr "" #: src/usr/local/www/status_captiveportal_test.php:53 #: src/usr/local/www/status_captiveportal_voucher_rolls.php:52 #: src/usr/local/www/status_captiveportal_vouchers.php:52 -#: src/usr/local/www/system_certmanager.php:1012 +#: src/usr/local/www/system_certmanager.php:1033 msgid "Captive Portal" msgstr "" -#: src/etc/inc/service-utils.inc:288 src/usr/local/www/head.inc:261 +#: src/etc/inc/service-utils.inc:288 src/usr/local/www/head.inc:259 #: src/usr/local/www/services_dhcp_relay.php:120 msgid "DHCP Relay" msgstr "" -#: src/etc/inc/service-utils.inc:295 src/usr/local/www/head.inc:262 +#: src/etc/inc/service-utils.inc:295 src/usr/local/www/head.inc:260 #: src/usr/local/www/services_dhcpv6_relay.php:118 msgid "DHCPv6 Relay" msgstr "" @@ -5508,67 +5490,72 @@ msgstr "" msgid "Not available." msgstr "" -#: src/etc/inc/service-utils.inc:461 src/usr/local/www/status_services.php:124 +#: src/etc/inc/service-utils.inc:461 msgid "Running" msgstr "" -#: src/etc/inc/service-utils.inc:462 src/etc/inc/service-utils.inc:471 -#, php-format -msgid "%s Service is" -msgstr "" - -#: src/etc/inc/service-utils.inc:470 src/usr/local/www/status_services.php:124 +#: src/etc/inc/service-utils.inc:468 msgid "Stopped" msgstr "" -#: src/etc/inc/service-utils.inc:470 +#: src/etc/inc/service-utils.inc:472 #: src/usr/local/www/firewall_nat_1to1_edit.php:368 #: src/usr/local/www/firewall_nat_edit.php:634 #: src/usr/local/www/firewall_nat_npt_edit.php:191 -#: src/usr/local/www/firewall_nat_out_edit.php:418 -#: src/usr/local/www/firewall_rules_edit.php:1119 -#: src/usr/local/www/interfaces.php:2581 -#: src/usr/local/www/interfaces_ppps_edit.php:726 +#: src/usr/local/www/firewall_nat_out_edit.php:433 +#: src/usr/local/www/firewall_rules_edit.php:1114 +#: src/usr/local/www/interfaces.php:2589 +#: src/usr/local/www/interfaces_ppps_edit.php:748 #: src/usr/local/www/load_balancer_pool_edit.php:405 -#: src/usr/local/www/services_router_advertisements.php:112 +#: src/usr/local/www/services_router_advertisements.php:107 #: src/usr/local/www/system_gateways_edit.php:579 #: src/usr/local/www/system_routes_edit.php:265 -#: src/usr/local/www/system_usermanager.php:572 -#: src/usr/local/www/system_usermanager.php:690 -#: src/usr/local/www/vpn_ipsec_phase1.php:657 -#: src/usr/local/www/vpn_ipsec_phase2.php:502 +#: src/usr/local/www/system_usermanager.php:566 +#: src/usr/local/www/system_usermanager.php:684 +#: src/usr/local/www/vpn_ipsec_phase1.php:653 +#: src/usr/local/www/vpn_ipsec_phase2.php:497 #: src/usr/local/www/vpn_openvpn_client.php:428 #: src/usr/local/www/vpn_openvpn_csc.php:639 -#: src/usr/local/www/vpn_openvpn_server.php:597 +#: src/usr/local/www/vpn_openvpn_server.php:601 msgid "Disabled" msgstr "" -#: src/etc/inc/service-utils.inc:565 +#: src/etc/inc/service-utils.inc:485 +#, php-format +msgid "%s Service is %s" +msgstr "" + +#: src/etc/inc/service-utils.inc:487 src/etc/inc/service-utils.inc:489 +#, php-format +msgid "%s, %s Service is %s" +msgstr "" + +#: src/etc/inc/service-utils.inc:588 #, php-format msgid "Restart %sService" msgstr "" -#: src/etc/inc/service-utils.inc:578 +#: src/etc/inc/service-utils.inc:601 #, php-format msgid "Stop %sService" msgstr "" -#: src/etc/inc/service-utils.inc:584 +#: src/etc/inc/service-utils.inc:607 #, php-format msgid "Start %sService" msgstr "" -#: src/etc/inc/service-utils.inc:656 +#: src/etc/inc/service-utils.inc:679 #, php-format msgid "%s has been started." msgstr "" -#: src/etc/inc/service-utils.inc:726 +#: src/etc/inc/service-utils.inc:749 #, php-format msgid "%s has been stopped." msgstr "" -#: src/etc/inc/service-utils.inc:795 +#: src/etc/inc/service-utils.inc:818 #, php-format msgid "%s has been restarted." msgstr "" @@ -5581,146 +5568,141 @@ msgstr "" msgid "Shutting down Router Advertisment daemon cleanly" msgstr "" -#: src/etc/inc/services.inc:475 +#: src/etc/inc/services.inc:479 #, php-format msgid "DHCP leases restore failed exited with %1$s, the error is: %2$s%3$s" msgstr "" -#: src/etc/inc/services.inc:502 +#: src/etc/inc/services.inc:506 msgid "Starting DHCP service..." msgstr "" -#: src/etc/inc/services.inc:595 +#: src/etc/inc/services.inc:613 msgid "Warning! DHCP Failover setup and no CARP virtual IPs defined!" msgstr "" -#: src/etc/inc/services.inc:762 +#: src/etc/inc/services.inc:780 #, php-format msgid "" "Invalid DHCP pool %s - %s for %s subnet %s/%s detected. Please correct the " "settings in Services, DHCP Server" msgstr "" -#: src/etc/inc/services.inc:1106 +#: src/etc/inc/services.inc:1143 #, php-format msgid "Error: cannot open dhcpd.conf in services_dhcpdv4_configure().%s" msgstr "" -#: src/etc/inc/services.inc:1233 -#, php-format -msgid "DHCP leases v6 restore failed exited with %1$s, the error is: %2$s" -msgstr "" - -#: src/etc/inc/services.inc:1625 +#: src/etc/inc/services.inc:1647 msgid "Could not write Igmpproxy configuration file!" msgstr "" -#: src/etc/inc/services.inc:1638 +#: src/etc/inc/services.inc:1660 msgid "Started IGMP proxy service." msgstr "" -#: src/etc/inc/services.inc:1662 +#: src/etc/inc/services.inc:1684 msgid "Starting DHCP relay service..." msgstr "" -#: src/etc/inc/services.inc:1687 +#: src/etc/inc/services.inc:1709 msgid "No destination IP has been configured!" msgstr "" -#: src/etc/inc/services.inc:1760 +#: src/etc/inc/services.inc:1782 msgid "No suitable interface found for running dhcrelay!" msgstr "" -#: src/etc/inc/services.inc:1796 +#: src/etc/inc/services.inc:1818 msgid "Starting DHCPv6 relay service..." msgstr "" -#: src/etc/inc/services.inc:1884 +#: src/etc/inc/services.inc:1906 msgid "No suitable interface found for running dhcrelay -6!" msgstr "" -#: src/etc/inc/services.inc:1944 +#: src/etc/inc/services.inc:1966 msgid "Starting DynDNS clients..." msgstr "" -#: src/etc/inc/services.inc:2038 +#: src/etc/inc/services.inc:2072 msgid "Starting DNS forwarder..." msgstr "" -#: src/etc/inc/services.inc:2204 +#: src/etc/inc/services.inc:2238 msgid "Starting DNS Resolver..." msgstr "" -#: src/etc/inc/services.inc:2249 +#: src/etc/inc/services.inc:2283 msgid "Starting SNMP daemon... " msgstr "" -#: src/etc/inc/services.inc:2255 +#: src/etc/inc/services.inc:2289 #, php-format msgid "Error: cannot open snmpd.conf in services_snmpd_configure().%s" msgstr "" -#: src/etc/inc/services.inc:2533 +#: src/etc/inc/services.inc:2574 #, php-format msgid "DynDNS updated IP Address (A) for %1$s on %2$s (%3$s) to %4$s" msgstr "" -#: src/etc/inc/services.inc:2538 +#: src/etc/inc/services.inc:2579 #, php-format msgid "" "phpDynDNS: Not updating %s A record because the IP address has not changed." msgstr "" -#: src/etc/inc/services.inc:2549 +#: src/etc/inc/services.inc:2590 #, php-format msgid "DynDNS updated IPv6 Address (AAAA) for %1$s on %2$s (%3$s) to %4$s" msgstr "" -#: src/etc/inc/services.inc:2551 +#: src/etc/inc/services.inc:2592 #, php-format msgid "phpDynDNS: updating cache file %1$s.ipv6: %2$s" msgstr "" -#: src/etc/inc/services.inc:2554 +#: src/etc/inc/services.inc:2595 #, php-format msgid "" "phpDynDNS: Not updating %s AAAA record because the IPv6 address has not " "changed." msgstr "" -#: src/etc/inc/services.inc:2606 +#: src/etc/inc/services.inc:2645 msgid "Created:" msgstr "" -#: src/etc/inc/services.inc:2628 +#: src/etc/inc/services.inc:2667 msgid "If possible do not add items to this file manually." msgstr "" -#: src/etc/inc/services.inc:2629 +#: src/etc/inc/services.inc:2668 msgid "" "If done so, this file must be terminated with a blank line (e.g. new line)" msgstr "" -#: src/etc/inc/services.inc:2680 +#: src/etc/inc/services.inc:2718 msgid "Starting UPnP service... " msgstr "" -#: src/etc/inc/services.inc:2720 +#: src/etc/inc/services.inc:2758 #, php-format msgid "Installed cron job for %s" msgstr "" -#: src/etc/inc/services.inc:2724 +#: src/etc/inc/services.inc:2762 #, php-format msgid "Checked cron job for %s, no change needed" msgstr "" -#: src/etc/inc/services.inc:2727 +#: src/etc/inc/services.inc:2765 #, php-format msgid "Updated cron job for %s" msgstr "" -#: src/etc/inc/services.inc:2733 +#: src/etc/inc/services.inc:2771 #, php-format msgid "Removed cron job for %s" msgstr "" @@ -5738,17 +5720,17 @@ msgstr "" #: src/etc/inc/shaper.inc:436 src/etc/inc/shaper.inc:1901 #: src/etc/inc/shaper.inc:2264 src/etc/inc/shaper.inc:2648 -#: src/etc/inc/shaper.inc:2776 src/etc/inc/shaper.inc:2928 -#: src/etc/inc/shaper.inc:3047 src/etc/inc/shaper.inc:3273 -#: src/etc/inc/shaper.inc:3851 src/usr/local/www/interfaces_ppps_edit.php:888 +#: src/etc/inc/shaper.inc:2776 src/etc/inc/shaper.inc:2930 +#: src/etc/inc/shaper.inc:3049 src/etc/inc/shaper.inc:3275 +#: src/etc/inc/shaper.inc:3853 src/usr/local/www/interfaces_ppps_edit.php:910 #: src/usr/local/www/status_queues.php:163 #: src/usr/local/www/status_queues.php:167 msgid "Bandwidth" msgstr "" #: src/etc/inc/shaper.inc:438 src/etc/inc/shaper.inc:1903 -#: src/etc/inc/shaper.inc:2650 src/etc/inc/shaper.inc:2930 -#: src/etc/inc/shaper.inc:3277 +#: src/etc/inc/shaper.inc:2650 src/etc/inc/shaper.inc:2932 +#: src/etc/inc/shaper.inc:3279 msgid "Bandwidthtype" msgstr "" @@ -5830,7 +5812,7 @@ msgstr "" msgid "The priority must be an integer between 1 and 15." msgstr "" -#: src/etc/inc/shaper.inc:1222 src/etc/inc/shaper.inc:3292 +#: src/etc/inc/shaper.inc:1222 src/etc/inc/shaper.inc:3294 msgid "Queue limit must be an integer" msgstr "" @@ -5839,7 +5821,7 @@ msgid "Queue limit must be positive" msgstr "" #: src/etc/inc/shaper.inc:1228 src/etc/inc/shaper.inc:1231 -#: src/etc/inc/shaper.inc:3295 src/etc/inc/shaper.inc:3298 +#: src/etc/inc/shaper.inc:3297 src/etc/inc/shaper.inc:3300 msgid "Queue names must be alphanumeric and _ or - only." msgstr "" @@ -5873,7 +5855,7 @@ msgstr "" msgid "Scheduler options" msgstr "" -#: src/etc/inc/shaper.inc:1450 src/usr/local/www/firewall_rules_edit.php:1667 +#: src/etc/inc/shaper.inc:1450 src/usr/local/www/firewall_rules_edit.php:1655 msgid "Default Queue" msgstr "" @@ -5912,12 +5894,12 @@ msgstr "" msgid "Select options for this queue" msgstr "" -#: src/etc/inc/shaper.inc:1487 src/etc/inc/shaper.inc:3887 -#: src/etc/inc/shaper.inc:4191 src/usr/local/www/firewall_aliases.php:198 +#: src/etc/inc/shaper.inc:1487 src/etc/inc/shaper.inc:3889 +#: src/etc/inc/shaper.inc:4193 src/usr/local/www/firewall_aliases.php:198 #: src/usr/local/www/firewall_aliases_edit.php:647 #: src/usr/local/www/firewall_aliases_edit.php:704 #: src/usr/local/www/firewall_aliases_import.php:234 -#: src/usr/local/www/firewall_nat.php:213 +#: src/usr/local/www/firewall_nat.php:215 #: src/usr/local/www/firewall_nat_1to1.php:154 #: src/usr/local/www/firewall_nat_1to1_edit.php:477 #: src/usr/local/www/firewall_nat_edit.php:864 @@ -5925,16 +5907,16 @@ msgstr "" #: src/usr/local/www/firewall_nat_npt_edit.php:235 #: src/usr/local/www/firewall_nat_out.php:286 #: src/usr/local/www/firewall_nat_out.php:539 -#: src/usr/local/www/firewall_nat_out_edit.php:607 -#: src/usr/local/www/firewall_rules.php:384 -#: src/usr/local/www/firewall_rules_edit.php:1406 +#: src/usr/local/www/firewall_nat_out_edit.php:629 +#: src/usr/local/www/firewall_rules.php:383 +#: src/usr/local/www/firewall_rules_edit.php:1394 #: src/usr/local/www/firewall_schedule.php:95 #: src/usr/local/www/firewall_schedule_edit.php:371 #: src/usr/local/www/firewall_schedule_edit.php:615 #: src/usr/local/www/firewall_virtual_ip.php:265 #: src/usr/local/www/firewall_virtual_ip_edit.php:431 -#: src/usr/local/www/guiconfig.inc:1072 src/usr/local/www/interfaces.php:1695 -#: src/usr/local/www/interfaces.php:1855 src/usr/local/www/interfaces.php:3161 +#: src/usr/local/www/guiconfig.inc:1073 src/usr/local/www/interfaces.php:1698 +#: src/usr/local/www/interfaces.php:1858 src/usr/local/www/interfaces.php:3169 #: src/usr/local/www/interfaces_bridge.php:104 #: src/usr/local/www/interfaces_bridge_edit.php:408 #: src/usr/local/www/interfaces_gif.php:99 @@ -5945,7 +5927,7 @@ msgstr "" #: src/usr/local/www/interfaces_lagg.php:106 #: src/usr/local/www/interfaces_lagg_edit.php:254 #: src/usr/local/www/interfaces_ppps.php:99 -#: src/usr/local/www/interfaces_ppps_edit.php:573 +#: src/usr/local/www/interfaces_ppps_edit.php:593 #: src/usr/local/www/interfaces_qinq.php:112 #: src/usr/local/www/interfaces_qinq_edit.php:253 #: src/usr/local/www/interfaces_vlan.php:110 @@ -5960,7 +5942,7 @@ msgstr "" #: src/usr/local/www/load_balancer_virtual_server.php:146 #: src/usr/local/www/load_balancer_virtual_server_edit.php:183 #: src/usr/local/www/pkg_mgr.php:67 src/usr/local/www/pkg_mgr.php:157 -#: src/usr/local/www/pkg_mgr_installed.php:80 +#: src/usr/local/www/pkg_mgr_installed.php:78 #: src/usr/local/www/services_captiveportal_hostname.php:118 #: src/usr/local/www/services_captiveportal_hostname_edit.php:191 #: src/usr/local/www/services_captiveportal_ip.php:113 @@ -5970,10 +5952,10 @@ msgstr "" #: src/usr/local/www/services_captiveportal_zones.php:81 #: src/usr/local/www/services_checkip.php:90 #: src/usr/local/www/services_checkip_edit.php:165 -#: src/usr/local/www/services_dhcp.php:657 -#: src/usr/local/www/services_dhcp.php:1306 -#: src/usr/local/www/services_dhcp_edit.php:456 -#: src/usr/local/www/services_dhcpv6.php:986 +#: src/usr/local/www/services_dhcp.php:663 +#: src/usr/local/www/services_dhcp.php:1319 +#: src/usr/local/www/services_dhcp_edit.php:463 +#: src/usr/local/www/services_dhcpv6.php:981 #: src/usr/local/www/services_dhcpv6_edit.php:241 #: src/usr/local/www/services_dnsmasq.php:322 #: src/usr/local/www/services_dnsmasq.php:396 @@ -6001,7 +5983,7 @@ msgstr "" #: src/usr/local/www/status_dhcp_leases.php:349 #: src/usr/local/www/status_gateway_groups.php:65 #: src/usr/local/www/status_gateways.php:66 -#: src/usr/local/www/status_graph.php:178 +#: src/usr/local/www/status_graph.php:166 #: src/usr/local/www/status_ipsec.php:475 #: src/usr/local/www/status_lb_pool.php:133 #: src/usr/local/www/status_lb_vs.php:66 @@ -6014,21 +5996,21 @@ msgstr "" #: src/usr/local/www/system_gateway_groups_edit.php:337 #: src/usr/local/www/system_gateways.php:246 #: src/usr/local/www/system_gateways_edit.php:664 -#: src/usr/local/www/system_groupmanager.php:237 -#: src/usr/local/www/system_groupmanager.php:296 -#: src/usr/local/www/system_groupmanager.php:401 +#: src/usr/local/www/system_groupmanager.php:231 +#: src/usr/local/www/system_groupmanager.php:290 +#: src/usr/local/www/system_groupmanager.php:395 #: src/usr/local/www/system_routes.php:246 #: src/usr/local/www/system_routes_edit.php:273 -#: src/usr/local/www/system_usermanager.php:445 -#: src/usr/local/www/vpn_ipsec_phase1.php:694 -#: src/usr/local/www/vpn_ipsec_phase2.php:586 +#: src/usr/local/www/system_usermanager.php:439 +#: src/usr/local/www/vpn_ipsec_phase1.php:690 +#: src/usr/local/www/vpn_ipsec_phase2.php:581 #: src/usr/local/www/vpn_openvpn_client.php:528 #: src/usr/local/www/vpn_openvpn_client.php:793 #: src/usr/local/www/vpn_openvpn_csc.php:342 #: src/usr/local/www/vpn_openvpn_csc.php:641 -#: src/usr/local/www/vpn_openvpn_server.php:662 -#: src/usr/local/www/vpn_openvpn_server.php:1175 -#: src/usr/local/www/widgets/widgets/ipsec.widget.php:205 +#: src/usr/local/www/vpn_openvpn_server.php:666 +#: src/usr/local/www/vpn_openvpn_server.php:1187 +#: src/usr/local/www/widgets/widgets/ipsec.widget.php:206 #: src/usr/local/www/widgets/widgets/load_balancer_status.widget.php:62 #: src/usr/local/www/widgets/widgets/services_status.widget.php:75 msgid "Description" @@ -6105,7 +6087,7 @@ msgid "Service Curve (sc)" msgstr "" #: src/etc/inc/shaper.inc:2284 src/etc/inc/shaper.inc:2796 -#: src/etc/inc/shaper.inc:3067 +#: src/etc/inc/shaper.inc:3069 msgid "Choose the amount of bandwidth for this queue" msgstr "" @@ -6140,105 +6122,109 @@ msgstr "" msgid "Priority must be an integer between 1 and 7." msgstr "" +#: src/etc/inc/shaper.inc:2774 +msgid "NOTITLE" +msgstr "" + #: src/etc/inc/shaper.inc:2802 msgid "Scheduler option" msgstr "" -#: src/etc/inc/shaper.inc:2925 +#: src/etc/inc/shaper.inc:2927 msgid "Priority must be an integer between 1 and 255." msgstr "" -#: src/etc/inc/shaper.inc:3073 +#: src/etc/inc/shaper.inc:3075 msgid "Scheduler specific options" msgstr "" -#: src/etc/inc/shaper.inc:3076 +#: src/etc/inc/shaper.inc:3078 msgid "Number of buckets available" msgstr "" -#: src/etc/inc/shaper.inc:3083 +#: src/etc/inc/shaper.inc:3085 msgid "Bandwidth limit for hosts to not saturate link" msgstr "" -#: src/etc/inc/shaper.inc:3285 +#: src/etc/inc/shaper.inc:3287 msgid "Packet Loss Rate must be a value between 0 and 1." msgstr "" -#: src/etc/inc/shaper.inc:3289 +#: src/etc/inc/shaper.inc:3291 msgid "Buckets must be an integer between 16 and 65535." msgstr "" -#: src/etc/inc/shaper.inc:3302 +#: src/etc/inc/shaper.inc:3304 msgid "IPv4 bit mask must be blank or numeric value between 1 and 32." msgstr "" -#: src/etc/inc/shaper.inc:3307 +#: src/etc/inc/shaper.inc:3309 msgid "IPv6 bit mask must be blank or numeric value between 1 and 128." msgstr "" -#: src/etc/inc/shaper.inc:3403 +#: src/etc/inc/shaper.inc:3405 #, php-format msgid "SHAPER: Could not create queue %1$s on interface %2$s because: %3$s" msgstr "" -#: src/etc/inc/shaper.inc:3461 +#: src/etc/inc/shaper.inc:3463 #, php-format msgid "Bandwidth for schedule %s must be an integer." msgstr "" -#: src/etc/inc/shaper.inc:3463 +#: src/etc/inc/shaper.inc:3465 #, php-format msgid "Burst for schedule %s must be an integer." msgstr "" -#: src/etc/inc/shaper.inc:3470 +#: src/etc/inc/shaper.inc:3472 msgid "A schedule needs to be specified for every additional entry." msgstr "" -#: src/etc/inc/shaper.inc:3473 +#: src/etc/inc/shaper.inc:3475 msgid "" "If more than one bandwidth configured all schedules need to be selected." msgstr "" -#: src/etc/inc/shaper.inc:3476 +#: src/etc/inc/shaper.inc:3478 msgid "At least one bw specification is necessary." msgstr "" -#: src/etc/inc/shaper.inc:3479 +#: src/etc/inc/shaper.inc:3481 msgid "Delay must be an integer." msgstr "" -#: src/etc/inc/shaper.inc:3783 src/usr/local/www/firewall_aliases_edit.php:711 -#: src/usr/local/www/firewall_nat.php:450 +#: src/etc/inc/shaper.inc:3785 src/usr/local/www/firewall_aliases_edit.php:711 +#: src/usr/local/www/firewall_nat.php:452 #: src/usr/local/www/firewall_nat_1to1.php:245 #: src/usr/local/www/firewall_nat_npt.php:234 #: src/usr/local/www/firewall_nat_out.php:503 -#: src/usr/local/www/firewall_rules.php:816 +#: src/usr/local/www/firewall_rules.php:815 #: src/usr/local/www/firewall_schedule_edit.php:619 #: src/usr/local/www/firewall_schedule_edit.php:1116 #: src/usr/local/www/interfaces_assign.php:542 #: src/usr/local/www/interfaces_qinq_edit.php:298 #: src/usr/local/www/interfaces_vlan.php:133 -#: src/usr/local/www/pkg_edit.php:1430 src/usr/local/www/services_dhcp.php:1245 -#: src/usr/local/www/services_dhcpv6.php:927 +#: src/usr/local/www/pkg_edit.php:1430 src/usr/local/www/services_dhcp.php:1258 +#: src/usr/local/www/services_dhcpv6.php:922 #: src/usr/local/www/services_dnsmasq_edit.php:289 #: src/usr/local/www/services_igmpproxy_edit.php:231 #: src/usr/local/www/services_ntpd.php:249 #: src/usr/local/www/services_ntpd_acls.php:286 #: src/usr/local/www/services_pppoe_edit.php:523 -#: src/usr/local/www/services_router_advertisements.php:411 +#: src/usr/local/www/services_router_advertisements.php:406 #: src/usr/local/www/services_unbound_acls.php:266 #: src/usr/local/www/services_unbound_host_edit.php:290 -#: src/usr/local/www/system_certmanager.php:742 -#: src/usr/local/www/system_usermanager.php:620 +#: src/usr/local/www/system_certmanager.php:755 +#: src/usr/local/www/system_usermanager.php:614 msgid "Delete" msgstr "" -#: src/etc/inc/shaper.inc:3791 +#: src/etc/inc/shaper.inc:3793 msgid "Add Schedule" msgstr "" -#: src/etc/inc/shaper.inc:3814 src/etc/inc/shaper.inc:4127 +#: src/etc/inc/shaper.inc:3816 src/etc/inc/shaper.inc:4129 #: src/usr/local/www/firewall_shaper.php:383 #: src/usr/local/www/firewall_shaper_queues.php:212 #: src/usr/local/www/firewall_shaper_vinterface.php:39 @@ -6247,15 +6233,15 @@ msgstr "" msgid "Limiters" msgstr "" -#: src/etc/inc/shaper.inc:3818 src/etc/inc/shaper.inc:4131 +#: src/etc/inc/shaper.inc:3820 src/etc/inc/shaper.inc:4133 #: src/usr/local/www/firewall_nat_1to1_edit.php:488 -#: src/usr/local/www/firewall_rules.php:767 -#: src/usr/local/www/interfaces.php:1687 src/usr/local/www/interfaces.php:2959 +#: src/usr/local/www/firewall_rules.php:766 +#: src/usr/local/www/interfaces.php:1690 src/usr/local/www/interfaces.php:2967 #: src/usr/local/www/services_captiveportal.php:545 -#: src/usr/local/www/services_captiveportal_vouchers.php:481 +#: src/usr/local/www/services_captiveportal_vouchers.php:450 #: src/usr/local/www/services_checkip_edit.php:123 -#: src/usr/local/www/services_dhcp.php:757 -#: src/usr/local/www/services_dhcp.php:1132 +#: src/usr/local/www/services_dhcp.php:763 +#: src/usr/local/www/services_dhcp.php:1145 #: src/usr/local/www/services_dhcp_relay.php:144 #: src/usr/local/www/services_dhcpv6_relay.php:142 #: src/usr/local/www/services_dnsmasq.php:204 @@ -6264,25 +6250,25 @@ msgstr "" #: src/usr/local/www/services_snmp.php:196 #: src/usr/local/www/services_snmp.php:239 #: src/usr/local/www/services_unbound.php:267 -#: src/usr/local/www/vpn_ipsec_phase1.php:859 +#: src/usr/local/www/vpn_ipsec_phase1.php:855 #: src/usr/local/www/vpn_l2tp.php:196 src/usr/local/www/vpn_l2tp.php:282 -#: src/usr/local/www/diag_routes.php:81 +#: src/usr/local/www/diag_routes.php:82 msgid "Enable" msgstr "" -#: src/etc/inc/shaper.inc:3862 src/etc/inc/shaper.inc:4166 +#: src/etc/inc/shaper.inc:3864 src/etc/inc/shaper.inc:4168 msgid "Source addresses" msgstr "" -#: src/etc/inc/shaper.inc:3862 src/etc/inc/shaper.inc:4166 +#: src/etc/inc/shaper.inc:3864 src/etc/inc/shaper.inc:4168 msgid "Destination addresses" msgstr "" -#: src/etc/inc/shaper.inc:3860 src/etc/inc/shaper.inc:4164 +#: src/etc/inc/shaper.inc:3862 src/etc/inc/shaper.inc:4166 msgid "Mask" msgstr "" -#: src/etc/inc/shaper.inc:3863 src/etc/inc/shaper.inc:4167 +#: src/etc/inc/shaper.inc:3865 src/etc/inc/shaper.inc:4169 msgid "" "If \"source\" or \"destination\" slots is chosen a dynamic pipe with the " "bandwidth, delay, packet loss and queue size given above will be created for " @@ -6290,23 +6276,23 @@ msgid "" "possible to easily specify bandwidth limits per host." msgstr "" -#: src/etc/inc/shaper.inc:3874 src/etc/inc/shaper.inc:4178 +#: src/etc/inc/shaper.inc:3876 src/etc/inc/shaper.inc:4180 msgid "IPv4 mask bits<br />255.255.255.255/?" msgstr "" -#: src/etc/inc/shaper.inc:3881 src/etc/inc/shaper.inc:4185 +#: src/etc/inc/shaper.inc:3883 src/etc/inc/shaper.inc:4187 msgid "" "IPv6 mask bits<br /><span style=\"font-family:consolas\">ffff:ffff:ffff:ffff:" "ffff:ffff:ffff:ffff/?</span>" msgstr "" -#: src/etc/inc/shaper.inc:3890 src/etc/inc/shaper.inc:4194 +#: src/etc/inc/shaper.inc:3892 src/etc/inc/shaper.inc:4196 #: src/usr/local/www/firewall_aliases_edit.php:650 #: src/usr/local/www/firewall_aliases_import.php:237 #: src/usr/local/www/firewall_nat_1to1_edit.php:480 #: src/usr/local/www/firewall_nat_edit.php:867 #: src/usr/local/www/firewall_nat_npt_edit.php:238 -#: src/usr/local/www/firewall_nat_out_edit.php:610 +#: src/usr/local/www/firewall_nat_out_edit.php:632 #: src/usr/local/www/firewall_virtual_ip_edit.php:434 #: src/usr/local/www/interfaces_gif_edit.php:228 #: src/usr/local/www/interfaces_gre_edit.php:211 @@ -6315,7 +6301,7 @@ msgstr "" #: src/usr/local/www/services_captiveportal_hostname_edit.php:194 #: src/usr/local/www/services_captiveportal_zones_edit.php:95 #: src/usr/local/www/services_checkip_edit.php:168 -#: src/usr/local/www/services_dhcp_edit.php:459 +#: src/usr/local/www/services_dhcp_edit.php:466 #: src/usr/local/www/services_dhcpv6_edit.php:244 #: src/usr/local/www/services_dnsmasq_domainoverride_edit.php:161 #: src/usr/local/www/services_dnsmasq_edit.php:239 @@ -6327,46 +6313,46 @@ msgstr "" #: src/usr/local/www/services_wol_edit.php:143 #: src/usr/local/www/system_gateway_groups_edit.php:340 #: src/usr/local/www/system_routes_edit.php:276 -#: src/usr/local/www/vpn_ipsec_phase1.php:697 -#: src/usr/local/www/vpn_ipsec_phase2.php:589 +#: src/usr/local/www/vpn_ipsec_phase1.php:693 +#: src/usr/local/www/vpn_ipsec_phase2.php:584 #: src/usr/local/www/vpn_openvpn_client.php:531 -#: src/usr/local/www/vpn_openvpn_server.php:665 +#: src/usr/local/www/vpn_openvpn_server.php:669 msgid "" "A description may be entered here for administrative reference (not parsed)." msgstr "" -#: src/etc/inc/shaper.inc:3894 src/etc/inc/shaper.inc:4198 -#: src/usr/local/www/firewall_rules_edit.php:1421 -#: src/usr/local/www/firewall_rules_edit.php:1427 +#: src/etc/inc/shaper.inc:3896 src/etc/inc/shaper.inc:4200 +#: src/usr/local/www/firewall_rules_edit.php:1409 +#: src/usr/local/www/firewall_rules_edit.php:1415 #: src/usr/local/www/interfaces_bridge_edit.php:424 -#: src/usr/local/www/vpn_ipsec_phase1.php:824 +#: src/usr/local/www/vpn_ipsec_phase1.php:820 msgid "Advanced Options" msgstr "" -#: src/etc/inc/shaper.inc:3898 +#: src/etc/inc/shaper.inc:3900 msgid "Delay (ms)" msgstr "" -#: src/etc/inc/shaper.inc:3901 +#: src/etc/inc/shaper.inc:3903 msgid "" "In most cases, zero (0) should specified here (or leave the field empty)." msgstr "" -#: src/etc/inc/shaper.inc:3905 src/etc/inc/shaper.inc:4211 +#: src/etc/inc/shaper.inc:3907 src/etc/inc/shaper.inc:4213 msgid "Packet Loss Rate" msgstr "" -#: src/etc/inc/shaper.inc:3909 +#: src/etc/inc/shaper.inc:3911 msgid "" "In most cases, zero (0) should be specified here (or leave the field empty). " "A value of 0.001 means one packet in 1000 gets dropped." msgstr "" -#: src/etc/inc/shaper.inc:3914 src/etc/inc/shaper.inc:4220 +#: src/etc/inc/shaper.inc:3916 src/etc/inc/shaper.inc:4222 msgid "Queue size (slots)" msgstr "" -#: src/etc/inc/shaper.inc:3917 src/etc/inc/shaper.inc:4223 +#: src/etc/inc/shaper.inc:3919 src/etc/inc/shaper.inc:4225 msgid "" "In most cases, the field should be left empty. All packets in this pipe are " "placed into a fixed-size queue first, then they are delayed by value " @@ -6374,184 +6360,180 @@ msgid "" "destination." msgstr "" -#: src/etc/inc/shaper.inc:3922 src/etc/inc/shaper.inc:4228 +#: src/etc/inc/shaper.inc:3924 src/etc/inc/shaper.inc:4230 msgid "Bucket size (slots)" msgstr "" -#: src/etc/inc/shaper.inc:3925 +#: src/etc/inc/shaper.inc:3927 msgid "" "In most cases, this field should be left empty. It increases the hash size " "set." msgstr "" -#: src/etc/inc/shaper.inc:3996 +#: src/etc/inc/shaper.inc:3998 msgid "Weight must be an integer between 1 and 100." msgstr "" -#: src/etc/inc/shaper.inc:4202 src/usr/local/www/system_gateways_edit.php:691 +#: src/etc/inc/shaper.inc:4204 src/usr/local/www/system_gateways_edit.php:691 msgid "Weight" msgstr "" -#: src/etc/inc/shaper.inc:4206 +#: src/etc/inc/shaper.inc:4208 msgid "" "For queues under the same parent this specifies the share that a queue " "gets(values range from 1 to 100), it can be left blank otherwise." msgstr "" -#: src/etc/inc/shaper.inc:4215 +#: src/etc/inc/shaper.inc:4217 msgid "" "In most cases, zero (0) should be specified here (or leave the field empty). " "A value of 0.001 means one packet in 1000 gets dropped" msgstr "" -#: src/etc/inc/shaper.inc:4231 +#: src/etc/inc/shaper.inc:4233 msgid "" "In most cases, this field should be left empty. It increases the hash size " "set" msgstr "" -#: src/etc/inc/shaper.inc:4626 +#: src/etc/inc/shaper.inc:4628 msgid "Clone Shaper to this Interface" msgstr "" -#: src/etc/inc/shaper.inc:4635 +#: src/etc/inc/shaper.inc:4637 #, php-format msgid "Welcome to the %s Traffic Shaper." msgstr "" -#: src/etc/inc/shaper.inc:4638 +#: src/etc/inc/shaper.inc:4640 #, php-format msgid "The tree on the left navigates through the %s." msgstr "" -#: src/etc/inc/shaper.inc:4639 +#: src/etc/inc/shaper.inc:4641 msgid "queues" msgstr "" -#: src/etc/inc/shaper.inc:4640 +#: src/etc/inc/shaper.inc:4642 msgid "limiters" msgstr "" -#: src/etc/inc/shaper.inc:4642 +#: src/etc/inc/shaper.inc:4644 #, php-format msgid "" "Buttons at the bottom represent %s actions and are activated accordingly." msgstr "" -#: src/etc/inc/shaper.inc:4643 src/usr/local/www/diag_pftop.php:97 +#: src/etc/inc/shaper.inc:4645 src/usr/local/www/diag_pftop.php:97 msgid "queue" msgstr "" -#: src/etc/inc/shaper.inc:4644 +#: src/etc/inc/shaper.inc:4646 msgid "limiter" msgstr "" -#: src/etc/inc/system.inc:431 +#: src/etc/inc/system.inc:426 msgid "Error: cannot open hosts file in system_hosts_generate()." msgstr "" -#: src/etc/inc/system.inc:581 +#: src/etc/inc/system.inc:582 msgid "Not adding default route because OLSR dynamic gateway is enabled." msgstr "" -#: src/etc/inc/system.inc:609 +#: src/etc/inc/system.inc:610 #, php-format msgid "ROUTING: setting default route to %s" msgstr "" -#: src/etc/inc/system.inc:620 +#: src/etc/inc/system.inc:621 #, php-format msgid "ROUTING: setting IPv6 default route to %s" msgstr "" -#: src/etc/inc/system.inc:641 +#: src/etc/inc/system.inc:642 #, php-format msgid "Static Routes: Gateway IP could not be found for %s" msgstr "" -#: src/etc/inc/system.inc:856 +#: src/etc/inc/system.inc:857 msgid "Starting syslog..." msgstr "" -#: src/etc/inc/system.inc:1017 +#: src/etc/inc/system.inc:1030 #, php-format msgid "Error: cannot open syslog.conf in system_syslogd_start().%s" msgstr "" -#: src/etc/inc/system.inc:1081 +#: src/etc/inc/system.inc:1109 msgid "Creating SSL Certificate for this host" msgstr "" -#: src/etc/inc/system.inc:1085 +#: src/etc/inc/system.inc:1113 #, php-format msgid "webConfigurator default (%s)" msgstr "" -#: src/etc/inc/system.inc:1097 +#: src/etc/inc/system.inc:1125 #, php-format msgid "Error creating WebGUI Certificate: openssl library returns: %s" msgstr "" -#: src/etc/inc/system.inc:1106 +#: src/etc/inc/system.inc:1134 #, php-format msgid "Generated new self-signed HTTPS certificate (%s)" msgstr "" -#: src/etc/inc/system.inc:1114 +#: src/etc/inc/system.inc:1142 msgid "Starting webConfigurator..." msgstr "" -#: src/etc/inc/system.inc:1164 src/etc/inc/system.inc:2002 -#: src/etc/inc/system.inc:2005 +#: src/etc/inc/system.inc:1192 src/etc/inc/system.inc:2026 +#: src/etc/inc/system.inc:2029 msgid "failed!" msgstr "" -#: src/etc/inc/system.inc:1364 +#: src/etc/inc/system.inc:1394 #, php-format msgid "Error: cannot open certificate file in system_webgui_start().%s" msgstr "" -#: src/etc/inc/system.inc:1377 +#: src/etc/inc/system.inc:1407 #, php-format msgid "Error: cannot open certificate key file in system_webgui_start().%s" msgstr "" -#: src/etc/inc/system.inc:1404 +#: src/etc/inc/system.inc:1434 #, php-format msgid "Error: cannot open %s in system_generate_nginx_config().%s" msgstr "" -#: src/etc/inc/system.inc:1453 +#: src/etc/inc/system.inc:1483 msgid "Setting timezone..." msgstr "" -#: src/etc/inc/system.inc:1841 +#: src/etc/inc/system.inc:1865 #, php-format msgid "Could not open %s/ntpd.conf for writing" msgstr "" -#: src/etc/inc/system.inc:1954 +#: src/etc/inc/system.inc:1978 #, php-format msgid "Error: cannot open dmesg.boot in system_dmesg_save().%s" msgstr "" -#: src/etc/inc/system.inc:1981 +#: src/etc/inc/system.inc:2005 msgid "Setting hard disk standby... " msgstr "" -#: src/etc/inc/system.inc:2193 +#: src/etc/inc/system.inc:2212 msgid "PC Engines WRAP" msgstr "" -#: src/etc/inc/system.inc:2197 src/etc/inc/system.inc:2216 +#: src/etc/inc/system.inc:2216 src/etc/inc/system.inc:2235 msgid "PC Engines ALIX" msgstr "" -#: src/etc/inc/system.inc:2221 -msgid "embedded (unknown)" -msgstr "" - -#: src/etc/inc/unbound.inc:766 src/usr/local/www/services_dhcpv6.php:779 +#: src/etc/inc/unbound.inc:766 src/usr/local/www/services_dhcpv6.php:774 #: src/usr/local/www/services_unbound_acls.php:231 msgid "Deny" msgstr "" @@ -6816,22 +6798,7 @@ msgstr "" msgid "WARNING: A name must be given as parameter to try_lock() function." msgstr "" -#: src/etc/inc/util.inc:247 src/etc/inc/util.inc:272 -#, php-format -msgid "Could not open shared memory %s" -msgstr "" - -#: src/etc/inc/util.inc:280 -#, php-format -msgid "Reference %s is going negative, not doing unreference." -msgstr "" - -#: src/etc/inc/util.inc:299 -#, php-format -msgid "Could not open shared memory for read %s" -msgstr "" - -#: src/etc/inc/util.inc:1034 +#: src/etc/inc/util.inc:1012 #, php-format msgid "" "The %1$s name must be less than 32 characters long, may not consist of only " @@ -6839,240 +6806,200 @@ msgid "" "following characters: %2$s" msgstr "" -#: src/etc/inc/util.inc:1041 +#: src/etc/inc/util.inc:1019 #, php-format msgid "The %1$s name must not be either of the reserved words %2$s or %3$s." msgstr "" -#: src/etc/inc/util.inc:1048 +#: src/etc/inc/util.inc:1026 #, php-format msgid "" "The %1$s name must not be a well-known IP protocol name such as TCP, UDP, " "ICMP etc." msgstr "" -#: src/etc/inc/util.inc:1055 +#: src/etc/inc/util.inc:1033 #, php-format msgid "" "The %1$s name must not be a well-known TCP or UDP port name such as ssh, " "smtp, pop3, tftp, http, openvpn etc." msgstr "" -#: src/etc/inc/util.inc:1641 +#: src/etc/inc/util.inc:1619 #, php-format msgid "The command '%1$s' returned exit code '%2$d', the output was '%3$s' " msgstr "" -#: src/etc/inc/voucher.inc:64 src/etc/inc/voucher.inc:124 -#: src/etc/inc/voucher.inc:183 +#: src/etc/inc/voucher.inc:105 #, php-format -msgid "Captive Portal Voucher XMLRPC sync data %s." +msgid "Captive Portal Voucher database synchronized with %s:%s" msgstr "" -#: src/etc/inc/voucher.inc:70 src/etc/inc/voucher.inc:130 -#: src/etc/inc/voucher.inc:189 -#, php-format -msgid "" -"A communications error occurred while attempting CaptivePortalVoucherSync " -"XMLRPC sync with %s (pfsense.exec_php)." -msgstr "" - -#: src/etc/inc/voucher.inc:75 src/etc/inc/voucher.inc:135 -#: src/etc/inc/voucher.inc:194 -#, php-format -msgid "" -"An error code was received while attempting CaptivePortalVoucherSync XMLRPC " -"sync with %1$s - Code %2$s" -msgstr "" - -#: src/etc/inc/voucher.inc:80 src/etc/inc/voucher.inc:140 -#: src/etc/inc/voucher.inc:199 -#, php-format -msgid "" -"CaptivePortalVoucherSync XMLRPC reload data success with %s (pfsense." -"exec_php)." -msgstr "" - -#: src/etc/inc/voucher.inc:208 -#, php-format -msgid "Captive Portal Voucher database synchronized with %s" -msgstr "" - -#: src/etc/inc/voucher.inc:295 src/etc/inc/voucher.inc:437 +#: src/etc/inc/voucher.inc:192 src/etc/inc/voucher.inc:334 #, php-format msgid "%1$s (%2$s/%3$s): not found on any registered Roll" msgstr "" -#: src/etc/inc/voucher.inc:299 +#: src/etc/inc/voucher.inc:196 #, php-format msgid "%1$s invalid: %2$s!!" msgstr "" -#: src/etc/inc/voucher.inc:386 +#: src/etc/inc/voucher.inc:283 #, php-format msgid "%s invalid: Too short!" msgstr "" -#: src/etc/inc/voucher.inc:412 +#: src/etc/inc/voucher.inc:309 #, php-format msgid "%1$s (%2$s/%3$s) active and good for %4$d Minutes" msgstr "" -#: src/etc/inc/voucher.inc:424 +#: src/etc/inc/voucher.inc:321 #, php-format msgid "%1$s (%2$s/%3$s) already used and expired" msgstr "" -#: src/etc/inc/voucher.inc:432 +#: src/etc/inc/voucher.inc:329 #, php-format msgid "%1$s (%2$s/%3$s) good for %4$s Minutes" msgstr "" -#: src/etc/inc/voucher.inc:443 +#: src/etc/inc/voucher.inc:340 #, php-format msgid "%1$s invalid: %2$s !!" msgstr "" -#: src/etc/inc/voucher.inc:453 +#: src/etc/inc/voucher.inc:350 msgid "Access denied!" msgstr "" -#: src/etc/inc/voucher.inc:455 +#: src/etc/inc/voucher.inc:352 #, php-format msgid "Access granted for %d Minutes in total." msgstr "" -#: src/etc/inc/voucher.inc:524 +#: src/etc/inc/voucher.inc:421 msgid "Enabling voucher support... " msgstr "" -#: src/etc/inc/voucher.inc:567 +#: src/etc/inc/voucher.inc:464 #, php-format msgid "Error: cannot write voucher.cfg" msgstr "" -#: src/etc/inc/voucher.inc:622 +#: src/etc/inc/voucher.inc:519 #, php-format msgid "cant write %1$s/voucher_%2$s_used_%3$s.db" msgstr "" -#: src/etc/inc/voucher.inc:708 +#: src/etc/inc/voucher.inc:605 #, php-format msgid "cant read %1$s/voucher_%2$s_used_%3$s.db" msgstr "" -#: src/etc/inc/voucher.inc:725 +#: src/etc/inc/voucher.inc:622 #, php-format msgid "Voucher: %s" msgstr "" -#: src/etc/inc/voucher.inc:780 +#: src/etc/inc/voucher.inc:677 msgid "Syncing vouchers" msgstr "" -#: src/etc/inc/vpn.inc:240 +#: src/etc/inc/vpn.inc:232 msgid "Configuring IPsec VPN... " msgstr "" -#: src/etc/inc/vpn.inc:281 +#: src/etc/inc/vpn.inc:273 #, php-format msgid "" "IPsec ERROR: Could not find phase 1 source for connection %s. Omitting from " "configuration file." msgstr "" -#: src/etc/inc/vpn.inc:310 +#: src/etc/inc/vpn.inc:302 #, php-format msgid "The remote gateway %s already exists on another phase 1 entry" msgstr "" -#: src/etc/inc/vpn.inc:627 +#: src/etc/inc/vpn.inc:619 #, php-format msgid "Warning: Missing CRL data for %s" msgstr "" -#: src/etc/inc/vpn.inc:632 +#: src/etc/inc/vpn.inc:624 #, php-format msgid "Error: Cannot write IPsec CRL file for %s" msgstr "" -#: src/etc/inc/vpn.inc:656 +#: src/etc/inc/vpn.inc:648 #, php-format msgid "Error: Invalid phase1 certificate reference for %s" msgstr "" -#: src/etc/inc/vpn.inc:674 +#: src/etc/inc/vpn.inc:666 #, php-format msgid "Error: Cannot write phase1 key file for %s" msgstr "" -#: src/etc/inc/vpn.inc:681 +#: src/etc/inc/vpn.inc:673 #, php-format msgid "Error: Cannot write phase1 certificate file for %s" msgstr "" -#: src/etc/inc/vpn.inc:746 +#: src/etc/inc/vpn.inc:738 #, php-format msgid "Error: Invalid certificate hash info for %s" msgstr "" -#: src/etc/inc/vpn.inc:751 +#: src/etc/inc/vpn.inc:743 #, php-format msgid "Error: Cannot write IPsec CA file for %s" msgstr "" -#: src/etc/inc/vpn.inc:1380 +#: src/etc/inc/vpn.inc:1372 #, php-format msgid "No phase2 specifications for tunnel with REQID = %s" msgstr "" -#: src/etc/inc/vpn.inc:1499 +#: src/etc/inc/vpn.inc:1491 #, php-format msgid "Ignoring IPsec reload since there are no tunnels on interface %s" msgstr "" -#: src/etc/inc/vpn.inc:1505 +#: src/etc/inc/vpn.inc:1497 msgid "Forcefully reloading IPsec" msgstr "" -#: src/etc/inc/vpn.inc:1555 +#: src/etc/inc/vpn.inc:1547 msgid "Configuring PPPoE Server service... " msgstr "" -#: src/etc/inc/vpn.inc:1580 +#: src/etc/inc/vpn.inc:1572 #, php-format msgid "Error: cannot open mpd.conf in vpn_pppoe_configure()." msgstr "" -#: src/etc/inc/vpn.inc:1702 -#, php-format -msgid "Error: cannot open mpd.links in vpn_pppoe_configure()." -msgstr "" - -#: src/etc/inc/vpn.inc:1729 +#: src/etc/inc/vpn.inc:1689 #, php-format msgid "Error: cannot open mpd.secret in vpn_pppoe_configure()." msgstr "" -#: src/etc/inc/vpn.inc:1763 +#: src/etc/inc/vpn.inc:1723 msgid "done" msgstr "" -#: src/etc/inc/vpn.inc:1785 +#: src/etc/inc/vpn.inc:1745 msgid "Configuring l2tp VPN service... " msgstr "" -#: src/etc/inc/vpn.inc:1824 +#: src/etc/inc/vpn.inc:1784 #, php-format msgid "Error: cannot open mpd.conf in vpn_l2tp_configure()." msgstr "" -#: src/etc/inc/vpn.inc:1927 -#, php-format -msgid "Error: cannot open mpd.links in vpn_l2tp_configure()." -msgstr "" - -#: src/etc/inc/vpn.inc:1954 +#: src/etc/inc/vpn.inc:1881 #, php-format msgid "Error: cannot open mpd.secret in vpn_l2tp_configure()." msgstr "" @@ -7106,117 +7033,20 @@ msgstr "" msgid "Error returned while trying to parse %s" msgstr "" -#: src/etc/inc/xmlrpc.inc:90 +#: src/etc/inc/xmlrpc_client.inc:89 #, php-format -msgid "" -"webConfigurator authentication error for 'admin' from %s during sync " -"settings." -msgstr "" - -#: src/etc/inc/xmlrpc_client.inc:152 -msgid "Unknown method" +msgid "Beginning XMLRPC sync data to %s." msgstr "" -#: src/etc/inc/xmlrpc_client.inc:153 -msgid "Invalid return payload: enable debugging to examine incoming payload" -msgstr "" - -#: src/etc/inc/xmlrpc_client.inc:154 -msgid "Incorrect parameters passed to method" -msgstr "" - -#: src/etc/inc/xmlrpc_client.inc:155 -msgid "Can't introspect: method unknown" -msgstr "" - -#: src/etc/inc/xmlrpc_client.inc:156 -msgid "Didn't receive 200 OK from remote server." -msgstr "" - -#: src/etc/inc/xmlrpc_client.inc:157 -msgid "The requested method didn't return an XML_RPC_Response object." -msgstr "" - -#: src/etc/inc/xmlrpc_client.inc:158 -msgid "Invalid request payload" -msgstr "" - -#: src/etc/inc/xmlrpc_client.inc:260 -msgid "missing top level xmlrpc element" -msgstr "" - -#: src/etc/inc/xmlrpc_client.inc:268 -#, php-format -msgid "xmlrpc element %1$s cannot be child of %2$s" -msgstr "" - -#: src/etc/inc/xmlrpc_client.inc:431 -msgid "Non-numeric value received in INT or DOUBLE" -msgstr "" - -#: src/etc/inc/xmlrpc_client.inc:864 -#, php-format -msgid "send()'s %s parameter must be an XML_RPC_Message object." -msgstr "" - -#: src/etc/inc/xmlrpc_client.inc:945 +#: src/etc/inc/xmlrpc_client.inc:92 #, php-format msgid "" -"Connection to proxy server \n" -" %1$s:%2$s failed. %3$s" -msgstr "" - -#: src/etc/inc/xmlrpc_client.inc:951 -#, php-format -msgid "" -"Connection to RPC server \n" -" %1$s:%2$s failed. %3$s" -msgstr "" - -#: src/etc/inc/xmlrpc_client.inc:1316 -msgid "The submitted request did not contain this parameter" +"A communications error occurred while attempting XMLRPC sync with %s " +"(pfsense.%s)." msgstr "" -#: src/etc/inc/xmlrpc_client.inc:1347 -msgid "mb_convert_encoding() is not available" -msgstr "" - -#: src/etc/inc/xmlrpc_client.inc:1456 -#, php-format -msgid "HTTP error, got response: %s" -msgstr "" - -#: src/etc/inc/xmlrpc_client.inc:1579 -msgid "Scalar can have only one value" -msgstr "" - -#: src/etc/inc/xmlrpc_client.inc:1586 -#, php-format -msgid "Not a scalar type (%s)" -msgstr "" - -#: src/etc/inc/xmlrpc_client.inc:1622 src/etc/inc/xmlrpc_client.inc:1638 -#, php-format -msgid "Already initialized as a [%s]" -msgstr "" - -#: src/etc/inc/xmlrpc_server.inc:48 -msgid "" -"This method lists all the methods that the XML-RPC server knows how to " -"dispatch" -msgstr "" - -#: src/etc/inc/xmlrpc_server.inc:66 -msgid "" -"Returns an array of known signatures (an array of arrays) for the method " -"name passed. If no signatures are known, returns a none-array (test for " -"type != array to detect missing signature)" -msgstr "" - -#: src/etc/inc/xmlrpc_server.inc:86 -msgid "" -"Returns help text if defined for the method passed, otherwise returns an " -"empty string" +#: src/etc/inc/xmlrpc_client.inc:123 +msgid "Error code received" msgstr "" #: src/usr/local/bin/dhcpd_gather_stats.php:102 @@ -7263,14 +7093,14 @@ msgid "Confirm" msgstr "" #: src/usr/local/www/classes/Form.class.php:38 -#: src/usr/local/www/diag_confbak.php:173 src/usr/local/www/diag_edit.php:123 -#: src/usr/local/www/diag_edit.php:125 src/usr/local/www/firewall_nat.php:454 -#: src/usr/local/www/firewall_nat.php:468 +#: src/usr/local/www/diag_confbak.php:171 src/usr/local/www/diag_edit.php:121 +#: src/usr/local/www/diag_edit.php:123 src/usr/local/www/firewall_nat.php:456 +#: src/usr/local/www/firewall_nat.php:470 #: src/usr/local/www/firewall_nat_1to1.php:249 #: src/usr/local/www/firewall_nat_npt.php:238 #: src/usr/local/www/firewall_nat_out.php:507 -#: src/usr/local/www/firewall_rules.php:820 -#: src/usr/local/www/firewall_rules.php:871 +#: src/usr/local/www/firewall_rules.php:819 +#: src/usr/local/www/firewall_rules.php:870 #: src/usr/local/www/interfaces_assign.php:575 src/usr/local/www/pkg.php:593 #: src/usr/local/www/pkg_edit.php:589 #: src/usr/local/www/services_igmpproxy.php:139 @@ -7280,42 +7110,40 @@ msgstr "" #: src/usr/local/www/status_logs_common.inc:940 #: src/usr/local/www/system_advanced_sysctl.php:94 #: src/usr/local/www/system_authservers.php:80 -#: src/usr/local/www/system_camanager.php:313 -#: src/usr/local/www/system_camanager.php:343 +#: src/usr/local/www/system_camanager.php:318 +#: src/usr/local/www/system_camanager.php:348 #: src/usr/local/www/system_certmanager.php:219 -#: src/usr/local/www/system_certmanager.php:515 -#: src/usr/local/www/system_certmanager.php:545 +#: src/usr/local/www/system_certmanager.php:520 +#: src/usr/local/www/system_certmanager.php:550 #: src/usr/local/www/system_crlmanager.php:255 #: src/usr/local/www/system_crlmanager.php:339 #: src/usr/local/www/widgets/widgets/log.widget.php:262 #: src/usr/local/www/widgets/widgets/rss.widget.php:156 #: src/usr/local/www/widgets/widgets/services_status.widget.php:135 #: src/usr/local/www/widgets/widgets/thermal_sensors.widget.php:239 -#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:165 +#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:438 msgid "Save" msgstr "" -#: src/usr/local/www/crash_reporter.php:56 src/usr/local/www/diag_arp.php:270 +#: src/usr/local/www/crash_reporter.php:56 src/usr/local/www/diag_arp.php:269 #: src/usr/local/www/diag_authentication.php:69 -#: src/usr/local/www/diag_backup.php:563 src/usr/local/www/diag_command.php:91 -#: src/usr/local/www/diag_confbak.php:101 -#: src/usr/local/www/diag_defaults.php:40 src/usr/local/www/diag_dns.php:29 -#: src/usr/local/www/diag_dump_states.php:75 +#: src/usr/local/www/diag_backup.php:518 src/usr/local/www/diag_command.php:90 +#: src/usr/local/www/diag_confbak.php:99 src/usr/local/www/diag_defaults.php:40 +#: src/usr/local/www/diag_dns.php:29 src/usr/local/www/diag_dump_states.php:75 #: src/usr/local/www/diag_dump_states_sources.php:53 #: src/usr/local/www/diag_edit.php:31 src/usr/local/www/diag_gmirror.php:33 #: src/usr/local/www/diag_halt.php:45 -#: src/usr/local/www/diag_limiter_info.php:31 -#: src/usr/local/www/diag_nanobsd.php:40 src/usr/local/www/diag_ndp.php:96 +#: src/usr/local/www/diag_limiter_info.php:31 src/usr/local/www/diag_ndp.php:96 #: src/usr/local/www/diag_packet_capture.php:84 #: src/usr/local/www/diag_pf_info.php:31 src/usr/local/www/diag_pftop.php:31 #: src/usr/local/www/diag_ping.php:35 src/usr/local/www/diag_reboot.php:43 #: src/usr/local/www/diag_resetstate.php:56 -#: src/usr/local/www/diag_routes.php:64 src/usr/local/www/diag_smart.php:36 +#: src/usr/local/www/diag_routes.php:65 src/usr/local/www/diag_smart.php:36 #: src/usr/local/www/diag_sockets.php:31 -#: src/usr/local/www/diag_states_summary.php:187 +#: src/usr/local/www/diag_states_summary.php:192 #: src/usr/local/www/diag_system_activity.php:31 #: src/usr/local/www/diag_tables.php:29 src/usr/local/www/diag_testport.php:38 -#: src/usr/local/www/diag_traceroute.php:37 src/usr/local/www/head.inc:595 +#: src/usr/local/www/diag_traceroute.php:37 src/usr/local/www/head.inc:580 msgid "Diagnostics" msgstr "" @@ -7390,21 +7218,21 @@ msgstr "" msgid "The ARP cache entry for %s has been deleted." msgstr "" -#: src/usr/local/www/diag_arp.php:270 src/usr/local/www/diag_arp.php:326 -#: src/usr/local/www/head.inc:338 +#: src/usr/local/www/diag_arp.php:269 src/usr/local/www/diag_arp.php:325 +#: src/usr/local/www/head.inc:332 msgid "ARP Table" msgstr "" -#: src/usr/local/www/diag_arp.php:281 +#: src/usr/local/www/diag_arp.php:280 msgid " Loading, please wait..." msgstr "" -#: src/usr/local/www/diag_arp.php:333 +#: src/usr/local/www/diag_arp.php:332 #: src/usr/local/www/diag_dump_states.php:130 #: src/usr/local/www/diag_dump_states.php:179 #: src/usr/local/www/diag_ndp.php:111 -#: src/usr/local/www/diag_packet_capture.php:279 -#: src/usr/local/www/firewall_nat.php:205 +#: src/usr/local/www/diag_packet_capture.php:278 +#: src/usr/local/www/firewall_nat.php:207 #: src/usr/local/www/firewall_nat_1to1.php:150 #: src/usr/local/www/firewall_nat_1to1_edit.php:119 #: src/usr/local/www/firewall_nat_1to1_edit.php:122 @@ -7417,10 +7245,10 @@ msgstr "" #: src/usr/local/www/firewall_nat_npt_edit.php:198 #: src/usr/local/www/firewall_nat_out.php:278 #: src/usr/local/www/firewall_nat_out.php:531 -#: src/usr/local/www/firewall_nat_out_edit.php:151 -#: src/usr/local/www/firewall_nat_out_edit.php:460 -#: src/usr/local/www/firewall_rules_edit.php:1174 -#: src/usr/local/www/firewall_rules_edit.php:1182 +#: src/usr/local/www/firewall_nat_out_edit.php:152 +#: src/usr/local/www/firewall_nat_out_edit.php:475 +#: src/usr/local/www/firewall_rules_edit.php:1169 +#: src/usr/local/www/firewall_rules_edit.php:1177 #: src/usr/local/www/firewall_virtual_ip.php:263 #: src/usr/local/www/firewall_virtual_ip_edit.php:368 #: src/usr/local/www/interfaces_assign.php:513 @@ -7447,7 +7275,7 @@ msgstr "" #: src/usr/local/www/services_wol_edit.php:73 #: src/usr/local/www/services_wol_edit.php:126 #: src/usr/local/www/status_dhcp_leases.php:464 -#: src/usr/local/www/status_graph.php:148 +#: src/usr/local/www/status_graph.php:136 #: src/usr/local/www/status_logs_common.inc:470 #: src/usr/local/www/status_logs_common.inc:502 #: src/usr/local/www/status_logs_common.inc:505 @@ -7457,39 +7285,39 @@ msgstr "" #: src/usr/local/www/system_gateways_edit.php:108 #: src/usr/local/www/system_gateways_edit.php:587 #: src/usr/local/www/system_routes.php:245 -#: src/usr/local/www/vpn_ipsec_phase1.php:678 +#: src/usr/local/www/vpn_ipsec_phase1.php:674 #: src/usr/local/www/vpn_l2tp.php:215 #: src/usr/local/www/vpn_openvpn_client.php:456 -#: src/usr/local/www/vpn_openvpn_server.php:647 +#: src/usr/local/www/vpn_openvpn_server.php:651 #: src/usr/local/www/widgets/widgets/wake_on_lan.widget.php:40 msgid "Interface" msgstr "" -#: src/usr/local/www/diag_arp.php:335 src/usr/local/www/diag_ndp.php:109 +#: src/usr/local/www/diag_arp.php:334 src/usr/local/www/diag_ndp.php:109 #: src/usr/local/www/services_captiveportal_mac.php:177 #: src/usr/local/www/services_captiveportal_mac_edit.php:99 -#: src/usr/local/www/services_dhcp.php:1303 +#: src/usr/local/www/services_dhcp.php:1316 #: src/usr/local/www/services_wol.php:147 #: src/usr/local/www/services_wol.php:176 #: src/usr/local/www/services_wol_edit.php:73 #: src/usr/local/www/services_wol_edit.php:133 #: src/usr/local/www/status_captiveportal.php:153 #: src/usr/local/www/status_dhcp_leases.php:347 -#: src/usr/local/www/status_dhcpv6_leases.php:436 +#: src/usr/local/www/status_dhcpv6_leases.php:433 #: src/usr/local/www/widgets/widgets/captive_portal_status.widget.php:83 msgid "MAC address" msgstr "" -#: src/usr/local/www/diag_arp.php:336 src/usr/local/www/diag_dns.php:233 +#: src/usr/local/www/diag_arp.php:335 src/usr/local/www/diag_dns.php:222 #: src/usr/local/www/diag_ndp.php:110 src/usr/local/www/diag_ping.php:131 #: src/usr/local/www/diag_testport.php:221 -#: src/usr/local/www/diag_traceroute.php:119 -#: src/usr/local/www/interfaces.php:1909 +#: src/usr/local/www/diag_traceroute.php:125 +#: src/usr/local/www/interfaces.php:1912 #: src/usr/local/www/services_captiveportal_hostname.php:117 #: src/usr/local/www/services_captiveportal_hostname_edit.php:184 -#: src/usr/local/www/services_dhcp.php:1305 -#: src/usr/local/www/services_dhcp_edit.php:433 -#: src/usr/local/www/services_dhcpv6.php:985 +#: src/usr/local/www/services_dhcp.php:1318 +#: src/usr/local/www/services_dhcp_edit.php:440 +#: src/usr/local/www/services_dhcpv6.php:980 #: src/usr/local/www/services_dhcpv6_edit.php:234 #: src/usr/local/www/services_dyndns.php:89 #: src/usr/local/www/services_dyndns_edit.php:94 @@ -7499,19 +7327,24 @@ msgstr "" #: src/usr/local/www/services_rfc2136_edit.php:78 #: src/usr/local/www/services_rfc2136_edit.php:183 #: src/usr/local/www/status_dhcp_leases.php:348 -#: src/usr/local/www/status_dhcpv6_leases.php:437 -#: src/usr/local/www/system.php:112 src/usr/local/www/system.php:354 +#: src/usr/local/www/status_dhcpv6_leases.php:434 +#: src/usr/local/www/system.php:113 src/usr/local/www/system.php:359 #: src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php:96 msgid "Hostname" msgstr "" -#: src/usr/local/www/diag_arp.php:337 src/usr/local/www/diag_confbak.php:216 +#: src/usr/local/www/diag_arp.php:337 +#: src/usr/local/www/interfaces_ppps_edit.php:576 +msgid "Link Type" +msgstr "" + +#: src/usr/local/www/diag_arp.php:338 src/usr/local/www/diag_confbak.php:214 #: src/usr/local/www/firewall_aliases.php:199 -#: src/usr/local/www/firewall_nat.php:214 +#: src/usr/local/www/firewall_nat.php:216 #: src/usr/local/www/firewall_nat_1to1.php:155 #: src/usr/local/www/firewall_nat_npt.php:154 #: src/usr/local/www/firewall_nat_out.php:287 -#: src/usr/local/www/firewall_rules.php:385 +#: src/usr/local/www/firewall_rules.php:384 #: src/usr/local/www/firewall_schedule.php:96 #: src/usr/local/www/firewall_virtual_ip.php:266 #: src/usr/local/www/interfaces_bridge.php:105 @@ -7526,15 +7359,15 @@ msgstr "" #: src/usr/local/www/load_balancer_monitor.php:109 #: src/usr/local/www/load_balancer_pool.php:126 #: src/usr/local/www/load_balancer_virtual_server.php:147 -#: src/usr/local/www/pkg_mgr_installed.php:81 -#: src/usr/local/www/services_captiveportal_filemanager.php:192 +#: src/usr/local/www/pkg_mgr_installed.php:79 +#: src/usr/local/www/services_captiveportal_filemanager.php:190 #: src/usr/local/www/services_captiveportal_hostname.php:119 #: src/usr/local/www/services_captiveportal_ip.php:114 #: src/usr/local/www/services_captiveportal_mac.php:179 -#: src/usr/local/www/services_captiveportal_vouchers.php:426 +#: src/usr/local/www/services_captiveportal_vouchers.php:395 #: src/usr/local/www/services_captiveportal_zones.php:82 #: src/usr/local/www/services_checkip.php:91 -#: src/usr/local/www/services_dhcp.php:658 +#: src/usr/local/www/services_dhcp.php:664 #: src/usr/local/www/services_dnsmasq.php:323 #: src/usr/local/www/services_dnsmasq.php:397 #: src/usr/local/www/services_dyndns.php:92 @@ -7547,43 +7380,61 @@ msgstr "" #: src/usr/local/www/services_wol.php:178 #: src/usr/local/www/status_captiveportal.php:171 #: src/usr/local/www/status_dhcp_leases.php:354 -#: src/usr/local/www/status_dhcpv6_leases.php:442 +#: src/usr/local/www/status_dhcpv6_leases.php:439 #: src/usr/local/www/status_logs_filter_summary.php:83 +#: src/usr/local/www/status_openvpn.php:147 #: src/usr/local/www/status_services.php:89 #: src/usr/local/www/system_authservers.php:438 -#: src/usr/local/www/system_camanager.php:357 -#: src/usr/local/www/system_certmanager.php:933 +#: src/usr/local/www/system_camanager.php:362 +#: src/usr/local/www/system_certmanager.php:954 #: src/usr/local/www/system_crlmanager.php:580 #: src/usr/local/www/system_gateway_groups.php:134 #: src/usr/local/www/system_gateways.php:247 -#: src/usr/local/www/system_groupmanager.php:298 +#: src/usr/local/www/system_groupmanager.php:292 #: src/usr/local/www/system_routes.php:247 -#: src/usr/local/www/system_usermanager.php:574 +#: src/usr/local/www/system_usermanager.php:568 #: src/usr/local/www/vpn_ipsec.php:255 src/usr/local/www/vpn_ipsec_keys.php:103 #: src/usr/local/www/vpn_l2tp_users.php:97 #: src/usr/local/www/vpn_openvpn_client.php:794 #: src/usr/local/www/vpn_openvpn_csc.php:642 -#: src/usr/local/www/vpn_openvpn_server.php:1176 -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:53 +#: src/usr/local/www/vpn_openvpn_server.php:1188 +#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:52 msgid "Actions" msgstr "" -#: src/usr/local/www/diag_arp.php:360 +#: src/usr/local/www/diag_arp.php:363 msgid "Delete arp cache entry" msgstr "" -#: src/usr/local/www/diag_arp.php:382 +#: src/usr/local/www/diag_arp.php:385 msgid "Local IPv6 peers use " msgstr "" -#: src/usr/local/www/diag_arp.php:382 +#: src/usr/local/www/diag_arp.php:385 msgid "NDP" msgstr "" -#: src/usr/local/www/diag_arp.php:382 +#: src/usr/local/www/diag_arp.php:385 msgid " instead of ARP." msgstr "" +#: src/usr/local/www/diag_arp.php:386 +msgid "" +"Permanent ARP entries are shown for local interfaces or static ARP entries." +msgstr "" + +#: src/usr/local/www/diag_arp.php:387 +msgid "" +"Normal dynamic ARP entries show a countdown timer until they will expire and " +"then be re-checked." +msgstr "" + +#: src/usr/local/www/diag_arp.php:388 +msgid "" +"Incomplete ARP entries indicate that the target host has not yet replied to " +"an ARP request." +msgstr "" + #: src/usr/local/www/diag_authentication.php:38 msgid "is not a valid authentication server" msgstr "" @@ -7596,7 +7447,7 @@ msgstr "" #: src/usr/local/www/status_logs_vpn.php:139 #: src/usr/local/www/status_logs_vpn.php:384 #: src/usr/local/www/vpn_l2tp_users_edit.php:145 -#: src/usr/local/www/widgets/widgets/ipsec.widget.php:220 +#: src/usr/local/www/widgets/widgets/ipsec.widget.php:221 #: src/usr/local/www/services_rfc2136_edit.php:223 msgid "User" msgstr "" @@ -7614,7 +7465,7 @@ msgid "Authentication failed." msgstr "" #: src/usr/local/www/diag_authentication.php:69 -#: src/usr/local/www/guiconfig.inc:156 src/usr/local/www/head.inc:339 +#: src/usr/local/www/guiconfig.inc:157 src/usr/local/www/head.inc:333 #: src/usr/local/www/services_captiveportal.php:695 msgid "Authentication" msgstr "" @@ -7657,130 +7508,130 @@ msgstr "" msgid "Restored base_package menus after configuration restore." msgstr "" -#: src/usr/local/www/diag_backup.php:175 +#: src/usr/local/www/diag_backup.php:173 msgid "Restore configuration" msgstr "" -#: src/usr/local/www/diag_backup.php:177 -#: src/usr/local/www/pkg_mgr_installed.php:199 -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:124 +#: src/usr/local/www/diag_backup.php:175 +#: src/usr/local/www/pkg_mgr_installed.php:195 +#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:122 msgid "Reinstall" msgstr "" -#: src/usr/local/www/diag_backup.php:179 src/usr/local/www/diag_backup.php:712 +#: src/usr/local/www/diag_backup.php:177 src/usr/local/www/diag_backup.php:667 msgid "Clear Package Lock" msgstr "" -#: src/usr/local/www/diag_backup.php:181 src/usr/local/www/diag_command.php:246 +#: src/usr/local/www/diag_backup.php:179 src/usr/local/www/diag_command.php:245 #: src/usr/local/www/services_captiveportal.php:1092 #: src/usr/local/www/services_captiveportal.php:1126 #: src/usr/local/www/services_captiveportal.php:1158 msgid "Download" msgstr "" -#: src/usr/local/www/diag_backup.php:183 +#: src/usr/local/www/diag_backup.php:181 msgid "Restore version" msgstr "" -#: src/usr/local/www/diag_backup.php:196 +#: src/usr/local/www/diag_backup.php:194 msgid "A password for encryption must be supplied and confirmed." msgstr "" -#: src/usr/local/www/diag_backup.php:271 +#: src/usr/local/www/diag_backup.php:269 msgid "A password for decryption must be supplied and confirmed." msgstr "" -#: src/usr/local/www/diag_backup.php:281 +#: src/usr/local/www/diag_backup.php:279 #, php-format msgid "Warning, could not read file %s" msgstr "" -#: src/usr/local/www/diag_backup.php:287 +#: src/usr/local/www/diag_backup.php:285 msgid "" "The uploaded file does not appear to contain an encrypted pfsense " "configuration." msgstr "" -#: src/usr/local/www/diag_backup.php:294 +#: src/usr/local/www/diag_backup.php:292 msgid "Upgrading m0n0wall configuration to pfsense." msgstr "" -#: src/usr/local/www/diag_backup.php:302 src/usr/local/www/diag_backup.php:305 +#: src/usr/local/www/diag_backup.php:300 src/usr/local/www/diag_backup.php:303 msgid "" "An area to restore was selected but the correct xml tag could not be located." msgstr "" -#: src/usr/local/www/diag_backup.php:317 +#: src/usr/local/www/diag_backup.php:314 msgid "" "The configuration area has been restored. The firewall may need to be " "rebooted." msgstr "" -#: src/usr/local/www/diag_backup.php:322 +#: src/usr/local/www/diag_backup.php:319 #, php-format msgid "" "A full configuration restore was selected but a %s tag could not be located." msgstr "" -#: src/usr/local/www/diag_backup.php:340 +#: src/usr/local/www/diag_backup.php:336 msgid "Restore serial console enabling in configuration." msgstr "" -#: src/usr/local/www/diag_backup.php:454 +#: src/usr/local/www/diag_backup.php:409 msgid "The m0n0wall configuration has been restored and upgraded to pfSense." msgstr "" -#: src/usr/local/www/diag_backup.php:482 src/usr/local/www/diag_backup.php:505 +#: src/usr/local/www/diag_backup.php:437 src/usr/local/www/diag_backup.php:460 msgid "The configuration could not be restored." msgstr "" -#: src/usr/local/www/diag_backup.php:487 +#: src/usr/local/www/diag_backup.php:442 msgid "The configuration could not be restored (file upload error)." msgstr "" -#: src/usr/local/www/diag_backup.php:499 +#: src/usr/local/www/diag_backup.php:454 msgid "" "XXX - this feature may hose the config (do NOT backrev configs!) - billm" msgstr "" -#: src/usr/local/www/diag_backup.php:508 +#: src/usr/local/www/diag_backup.php:463 msgid "No version selected." msgstr "" -#: src/usr/local/www/diag_backup.php:523 +#: src/usr/local/www/diag_backup.php:478 #: src/usr/local/www/firewall_aliases.php:171 #: src/usr/local/www/firewall_aliases_edit.php:38 #: src/usr/local/www/firewall_aliases_import.php:38 #: src/usr/local/www/firewall_aliases_import.php:64 -#: src/usr/local/www/head.inc:248 +#: src/usr/local/www/head.inc:246 msgid "Aliases" msgstr "" -#: src/usr/local/www/diag_backup.php:525 +#: src/usr/local/www/diag_backup.php:480 msgid "Captive Portal Vouchers" msgstr "" -#: src/usr/local/www/diag_backup.php:528 src/usr/local/www/head.inc:265 -#: src/usr/local/www/services_dhcp.php:693 -#: src/usr/local/www/services_dhcp_edit.php:381 +#: src/usr/local/www/diag_backup.php:483 src/usr/local/www/head.inc:263 +#: src/usr/local/www/services_dhcp.php:699 +#: src/usr/local/www/services_dhcp_edit.php:388 msgid "DHCP Server" msgstr "" -#: src/usr/local/www/diag_backup.php:529 -#: src/usr/local/www/services_dhcpv6.php:476 -#: src/usr/local/www/services_dhcpv6.php:554 -#: src/usr/local/www/services_dhcpv6.php:569 +#: src/usr/local/www/diag_backup.php:484 +#: src/usr/local/www/services_dhcpv6.php:471 +#: src/usr/local/www/services_dhcpv6.php:549 +#: src/usr/local/www/services_dhcpv6.php:564 #: src/usr/local/www/services_dhcpv6_edit.php:201 -#: src/usr/local/www/services_router_advertisements.php:288 +#: src/usr/local/www/services_router_advertisements.php:283 msgid "DHCPv6 Server" msgstr "" -#: src/usr/local/www/diag_backup.php:530 +#: src/usr/local/www/diag_backup.php:485 msgid "Firewall Rules" msgstr "" -#: src/usr/local/www/diag_backup.php:531 src/usr/local/www/head.inc:303 -#: src/usr/local/www/interfaces.php:1613 +#: src/usr/local/www/diag_backup.php:486 src/usr/local/www/head.inc:301 +#: src/usr/local/www/interfaces.php:1616 #: src/usr/local/www/interfaces_assign.php:34 #: src/usr/local/www/interfaces_bridge.php:75 #: src/usr/local/www/interfaces_bridge_edit.php:384 @@ -7793,7 +7644,7 @@ msgstr "" #: src/usr/local/www/interfaces_lagg.php:76 #: src/usr/local/www/interfaces_lagg_edit.php:223 #: src/usr/local/www/interfaces_ppps.php:73 -#: src/usr/local/www/interfaces_ppps_edit.php:440 +#: src/usr/local/www/interfaces_ppps_edit.php:460 #: src/usr/local/www/interfaces_qinq.php:80 #: src/usr/local/www/interfaces_qinq_edit.php:29 #: src/usr/local/www/interfaces_vlan.php:76 @@ -7809,209 +7660,209 @@ msgstr "" msgid "Interfaces" msgstr "" -#: src/usr/local/www/diag_backup.php:532 +#: src/usr/local/www/diag_backup.php:487 msgid "IPSEC" msgstr "" -#: src/usr/local/www/diag_backup.php:533 src/usr/local/www/firewall_nat.php:173 +#: src/usr/local/www/diag_backup.php:488 src/usr/local/www/firewall_nat.php:175 #: src/usr/local/www/firewall_nat_1to1.php:122 #: src/usr/local/www/firewall_nat_1to1_edit.php:248 #: src/usr/local/www/firewall_nat_edit.php:621 #: src/usr/local/www/firewall_nat_npt.php:122 #: src/usr/local/www/firewall_nat_npt_edit.php:178 #: src/usr/local/www/firewall_nat_out.php:206 -#: src/usr/local/www/firewall_nat_out_edit.php:363 -#: src/usr/local/www/head.inc:249 +#: src/usr/local/www/firewall_nat_out_edit.php:378 +#: src/usr/local/www/head.inc:247 msgid "NAT" msgstr "" -#: src/usr/local/www/diag_backup.php:535 src/usr/local/www/head.inc:216 -#: src/usr/local/www/head.inc:593 src/usr/local/www/pkg_mgr.php:38 +#: src/usr/local/www/diag_backup.php:490 src/usr/local/www/head.inc:215 +#: src/usr/local/www/head.inc:578 src/usr/local/www/pkg_mgr.php:38 #: src/usr/local/www/pkg_mgr.php:129 src/usr/local/www/pkg_mgr_install.php:242 #: src/usr/local/www/pkg_mgr_installed.php:34 -#: src/usr/local/www/pkg_mgr_installed.php:208 +#: src/usr/local/www/pkg_mgr_installed.php:203 msgid "Package Manager" msgstr "" -#: src/usr/local/www/diag_backup.php:536 +#: src/usr/local/www/diag_backup.php:491 msgid "RRD Data" msgstr "" -#: src/usr/local/www/diag_backup.php:537 +#: src/usr/local/www/diag_backup.php:492 msgid "Scheduled Tasks" msgstr "" -#: src/usr/local/www/diag_backup.php:538 +#: src/usr/local/www/diag_backup.php:493 msgid "Syslog" msgstr "" -#: src/usr/local/www/diag_backup.php:539 src/usr/local/www/head.inc:593 +#: src/usr/local/www/diag_backup.php:494 src/usr/local/www/head.inc:578 #: src/usr/local/www/pkg_mgr.php:38 src/usr/local/www/pkg_mgr.php:129 #: src/usr/local/www/pkg_mgr_install.php:238 #: src/usr/local/www/pkg_mgr_install.php:242 #: src/usr/local/www/pkg_mgr_installed.php:34 -#: src/usr/local/www/pkg_mgr_installed.php:208 +#: src/usr/local/www/pkg_mgr_installed.php:203 #: src/usr/local/www/status_logs.php:96 #: src/usr/local/www/status_logs_common.inc:88 -#: src/usr/local/www/status_logs_settings.php:204 -#: src/usr/local/www/system.php:82 src/usr/local/www/system.php:336 -#: src/usr/local/www/system.php:351 -#: src/usr/local/www/system_advanced_admin.php:285 +#: src/usr/local/www/status_logs_settings.php:212 +#: src/usr/local/www/system.php:83 src/usr/local/www/system.php:341 +#: src/usr/local/www/system.php:356 +#: src/usr/local/www/system_advanced_admin.php:283 #: src/usr/local/www/system_advanced_firewall.php:371 -#: src/usr/local/www/system_advanced_misc.php:287 +#: src/usr/local/www/system_advanced_misc.php:286 #: src/usr/local/www/system_advanced_network.php:140 -#: src/usr/local/www/system_advanced_notifications.php:181 +#: src/usr/local/www/system_advanced_notifications.php:188 #: src/usr/local/www/system_advanced_sysctl.php:121 #: src/usr/local/www/system_authservers.php:403 -#: src/usr/local/www/system_camanager.php:311 -#: src/usr/local/www/system_certmanager.php:513 +#: src/usr/local/www/system_camanager.php:316 +#: src/usr/local/www/system_certmanager.php:518 #: src/usr/local/www/system_crlmanager.php:253 #: src/usr/local/www/system_gateway_groups.php:104 #: src/usr/local/www/system_gateway_groups_edit.php:147 #: src/usr/local/www/system_gateways.php:211 #: src/usr/local/www/system_gateways_edit.php:538 -#: src/usr/local/www/system_groupmanager.php:263 +#: src/usr/local/www/system_groupmanager.php:257 #: src/usr/local/www/system_groupmanager_addprivs.php:36 #: src/usr/local/www/system_hasync.php:102 #: src/usr/local/www/system_routes.php:213 #: src/usr/local/www/system_routes_edit.php:224 #: src/usr/local/www/system_update_settings.php:77 #: src/usr/local/www/system_user_settings.php:32 -#: src/usr/local/www/system_usermanager.php:533 +#: src/usr/local/www/system_usermanager.php:527 #: src/usr/local/www/system_usermanager_addprivs.php:36 #: src/usr/local/www/system_usermanager_passwordmg.php:33 #: src/usr/local/www/system_usermanager_settings.php:106 -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:148 +#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:146 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:97 #: src/usr/local/www/widgets/widgets/thermal_sensors.widget.php:246 msgid "System" msgstr "" -#: src/usr/local/www/diag_backup.php:540 +#: src/usr/local/www/diag_backup.php:495 msgid "Static routes" msgstr "" -#: src/usr/local/www/diag_backup.php:541 +#: src/usr/local/www/diag_backup.php:496 msgid "System tunables" msgstr "" -#: src/usr/local/www/diag_backup.php:542 +#: src/usr/local/www/diag_backup.php:497 msgid "SNMP Server" msgstr "" -#: src/usr/local/www/diag_backup.php:543 +#: src/usr/local/www/diag_backup.php:498 #: src/usr/local/www/firewall_shaper.php:41 #: src/usr/local/www/firewall_shaper_queues.php:188 #: src/usr/local/www/firewall_shaper_vinterface.php:39 #: src/usr/local/www/firewall_shaper_wizards.php:62 -#: src/usr/local/www/head.inc:252 +#: src/usr/local/www/head.inc:250 msgid "Traffic Shaper" msgstr "" -#: src/usr/local/www/diag_backup.php:544 +#: src/usr/local/www/diag_backup.php:499 msgid "VLANS" msgstr "" -#: src/usr/local/www/diag_backup.php:545 src/usr/local/www/head.inc:283 +#: src/usr/local/www/diag_backup.php:500 src/usr/local/www/head.inc:281 #: src/usr/local/www/services_wol.php:113 #: src/usr/local/www/services_wol.php:136 #: src/usr/local/www/services_wol_edit.php:104 msgid "Wake-on-LAN" msgstr "" -#: src/usr/local/www/diag_backup.php:548 +#: src/usr/local/www/diag_backup.php:503 #: src/usr/local/www/firewall_aliases.php:162 #: src/usr/local/www/pkg_edit.php:1180 #: src/usr/local/www/services_ntpd_gps.php:171 #: src/usr/local/www/services_unbound.php:220 -#: src/usr/local/www/status_graph.php:167 src/usr/local/www/diag_smart.php:351 +#: src/usr/local/www/status_graph.php:155 src/usr/local/www/diag_smart.php:351 msgid "All" msgstr "" -#: src/usr/local/www/diag_backup.php:563 src/usr/local/www/diag_backup.php:586 -#: src/usr/local/www/diag_confbak.php:101 -#: src/usr/local/www/diag_confbak.php:109 src/usr/local/www/head.inc:340 -#: src/usr/local/www/head.inc:595 +#: src/usr/local/www/diag_backup.php:518 src/usr/local/www/diag_backup.php:541 +#: src/usr/local/www/diag_confbak.php:99 src/usr/local/www/diag_confbak.php:107 +#: src/usr/local/www/head.inc:334 src/usr/local/www/head.inc:580 msgid "Backup & Restore" msgstr "" -#: src/usr/local/www/diag_backup.php:579 +#: src/usr/local/www/diag_backup.php:534 msgid "The firewall configuration has been changed." msgstr "" -#: src/usr/local/www/diag_backup.php:579 +#: src/usr/local/www/diag_backup.php:534 msgid "The firewall is now rebooting." msgstr "" -#: src/usr/local/www/diag_backup.php:587 src/usr/local/www/diag_confbak.php:101 -#: src/usr/local/www/diag_confbak.php:110 +#: src/usr/local/www/diag_backup.php:542 src/usr/local/www/diag_confbak.php:99 +#: src/usr/local/www/diag_confbak.php:108 msgid "Config History" msgstr "" -#: src/usr/local/www/diag_backup.php:593 +#: src/usr/local/www/diag_backup.php:548 msgid "Backup Configuration" msgstr "" -#: src/usr/local/www/diag_backup.php:597 +#: src/usr/local/www/diag_backup.php:552 msgid "Backup area" msgstr "" -#: src/usr/local/www/diag_backup.php:604 +#: src/usr/local/www/diag_backup.php:559 msgid "Skip packages" msgstr "" -#: src/usr/local/www/diag_backup.php:611 +#: src/usr/local/www/diag_backup.php:566 msgid "Skip RRD data" msgstr "" -#: src/usr/local/www/diag_backup.php:618 src/usr/local/www/diag_backup.php:665 +#: src/usr/local/www/diag_backup.php:573 src/usr/local/www/diag_backup.php:620 msgid "Encryption" msgstr "" -#: src/usr/local/www/diag_backup.php:634 +#: src/usr/local/www/diag_backup.php:589 msgid "Download configuration as XML" msgstr "" -#: src/usr/local/www/diag_backup.php:642 +#: src/usr/local/www/diag_backup.php:597 msgid "Restore Backup" msgstr "" -#: src/usr/local/www/diag_backup.php:646 +#: src/usr/local/www/diag_backup.php:601 #, php-format msgid "" "Open a %s configuration XML file and click the button below to restore the " "configuration." msgstr "" -#: src/usr/local/www/diag_backup.php:651 +#: src/usr/local/www/diag_backup.php:606 msgid "Restore area" msgstr "" -#: src/usr/local/www/diag_backup.php:658 +#: src/usr/local/www/diag_backup.php:613 msgid "Configuration file" msgstr "" -#: src/usr/local/www/diag_backup.php:682 +#: src/usr/local/www/diag_backup.php:637 msgid "Restore Configuration" msgstr "" -#: src/usr/local/www/diag_backup.php:685 +#: src/usr/local/www/diag_backup.php:640 msgid "The firewall will reboot after restoring the configuration." msgstr "" -#: src/usr/local/www/diag_backup.php:692 +#: src/usr/local/www/diag_backup.php:647 msgid "Package Functions" msgstr "" -#: src/usr/local/www/diag_backup.php:699 +#: src/usr/local/www/diag_backup.php:654 msgid "Reinstall Packages" msgstr "" -#: src/usr/local/www/diag_backup.php:702 +#: src/usr/local/www/diag_backup.php:657 msgid "" "Click this button to reinstall all system packages. This may take a while." msgstr "" -#: src/usr/local/www/diag_backup.php:715 +#: src/usr/local/www/diag_backup.php:670 msgid "" "Click this button to clear the package lock if a package fails to reinstall " "properly after an upgrade." @@ -8022,85 +7873,85 @@ msgstr "" msgid "Uploaded file to /tmp/%s." msgstr "" -#: src/usr/local/www/diag_command.php:91 src/usr/local/www/head.inc:341 +#: src/usr/local/www/diag_command.php:90 src/usr/local/www/head.inc:335 msgid "Command Prompt" msgstr "" -#: src/usr/local/www/diag_command.php:152 +#: src/usr/local/www/diag_command.php:151 msgid "Nothing to recall" msgstr "" -#: src/usr/local/www/diag_command.php:187 src/usr/local/www/diag_edit.php:99 +#: src/usr/local/www/diag_command.php:186 src/usr/local/www/diag_edit.php:97 msgid "" "The capabilities offered here can be dangerous. No support is available. Use " "them at your own risk!" msgstr "" -#: src/usr/local/www/diag_command.php:187 src/usr/local/www/diag_edit.php:99 +#: src/usr/local/www/diag_command.php:186 src/usr/local/www/diag_edit.php:97 msgid "Advanced Users Only" msgstr "" -#: src/usr/local/www/diag_command.php:192 +#: src/usr/local/www/diag_command.php:191 #, php-format msgid "Shell Output - %s" msgstr "" -#: src/usr/local/www/diag_command.php:211 +#: src/usr/local/www/diag_command.php:210 msgid "Execute Shell Command" msgstr "" -#: src/usr/local/www/diag_command.php:219 +#: src/usr/local/www/diag_command.php:218 msgid "Recall Previous Command" msgstr "" -#: src/usr/local/www/diag_command.php:222 +#: src/usr/local/www/diag_command.php:221 msgid "Execute the entered command" msgstr "" -#: src/usr/local/www/diag_command.php:224 -#: src/usr/local/www/diag_command.php:315 +#: src/usr/local/www/diag_command.php:223 +#: src/usr/local/www/diag_command.php:314 msgid "Execute" msgstr "" -#: src/usr/local/www/diag_command.php:226 +#: src/usr/local/www/diag_command.php:225 msgid "Recall Next Command" msgstr "" -#: src/usr/local/www/diag_command.php:229 +#: src/usr/local/www/diag_command.php:228 msgid "Clear command entry" msgstr "" -#: src/usr/local/www/diag_command.php:231 src/usr/local/www/pkg_mgr.php:163 +#: src/usr/local/www/diag_command.php:230 src/usr/local/www/pkg_mgr.php:163 #: src/usr/local/www/system_groupmanager_addprivs.php:187 -#: src/usr/local/www/system_usermanager_addprivs.php:180 +#: src/usr/local/www/system_usermanager_addprivs.php:177 #: src/usr/local/www/widgets/widgets/services_status.widget.php:136 -#: src/usr/local/www/interfaces.php:1990 +#: src/usr/local/www/interfaces.php:1993 msgid "Clear" msgstr "" -#: src/usr/local/www/diag_command.php:239 +#: src/usr/local/www/diag_command.php:238 msgid "Download File" msgstr "" -#: src/usr/local/www/diag_command.php:258 +#: src/usr/local/www/diag_command.php:257 msgid "Upload File" msgstr "" -#: src/usr/local/www/diag_command.php:265 -#: src/usr/local/www/services_captiveportal_filemanager.php:173 +#: src/usr/local/www/diag_command.php:264 +#: src/usr/local/www/services_captiveportal_filemanager.php:171 #: src/usr/local/www/widgets/widgets/picture.widget.php:77 msgid "Upload" msgstr "" -#: src/usr/local/www/diag_command.php:308 +#: src/usr/local/www/diag_command.php:307 msgid "Execute PHP Commands" msgstr "" -#: src/usr/local/www/diag_command.php:313 +#: src/usr/local/www/diag_command.php:312 msgid "Execute this PHP Code" msgstr "" -#: src/usr/local/www/diag_command.php:317 +#: src/usr/local/www/diag_command.php:316 msgid "Example" msgstr "" @@ -8113,55 +7964,55 @@ msgstr "" msgid "Changed backup revision count to %s" msgstr "" -#: src/usr/local/www/diag_confbak.php:52 +#: src/usr/local/www/diag_confbak.php:51 #, php-format msgid "Successfully reverted to timestamp %1$s with description \"%2$s\"." msgstr "" -#: src/usr/local/www/diag_confbak.php:52 src/usr/local/www/diag_confbak.php:59 -#: src/usr/local/www/diag_confbak.php:118 -#: src/usr/local/www/diag_confbak.php:226 -#: src/usr/local/www/diag_confbak.php:237 +#: src/usr/local/www/diag_confbak.php:51 src/usr/local/www/diag_confbak.php:58 +#: src/usr/local/www/diag_confbak.php:116 +#: src/usr/local/www/diag_confbak.php:224 +#: src/usr/local/www/diag_confbak.php:235 #: src/usr/local/www/firewall_nat_edit.php:944 #: src/usr/local/www/firewall_nat_edit.php:951 -#: src/usr/local/www/firewall_nat_out_edit.php:639 -#: src/usr/local/www/firewall_nat_out_edit.php:646 +#: src/usr/local/www/firewall_nat_out_edit.php:661 +#: src/usr/local/www/firewall_nat_out_edit.php:668 msgid "n/j/y H:i:s" msgstr "" -#: src/usr/local/www/diag_confbak.php:54 +#: src/usr/local/www/diag_confbak.php:53 msgid "Unable to revert to the selected configuration." msgstr "" -#: src/usr/local/www/diag_confbak.php:59 +#: src/usr/local/www/diag_confbak.php:58 #, php-format msgid "Deleted backup with timestamp %1$s and description \"%2$s\"." msgstr "" -#: src/usr/local/www/diag_confbak.php:118 +#: src/usr/local/www/diag_confbak.php:116 #, php-format msgid "Configuration Diff from %1$s to %2$s" msgstr "" -#: src/usr/local/www/diag_confbak.php:155 +#: src/usr/local/www/diag_confbak.php:153 msgid "Configuration Backup Cache Settings" msgstr "" -#: src/usr/local/www/diag_confbak.php:159 +#: src/usr/local/www/diag_confbak.php:157 msgid "Backup Count" msgstr "" -#: src/usr/local/www/diag_confbak.php:162 +#: src/usr/local/www/diag_confbak.php:160 msgid "" "Maximum number of old configurations to keep in the cache, 0 for no backups, " "or leave blank for the default value (" msgstr "" -#: src/usr/local/www/diag_confbak.php:167 +#: src/usr/local/www/diag_confbak.php:165 msgid "Current space used by backups" msgstr "" -#: src/usr/local/www/diag_confbak.php:188 +#: src/usr/local/www/diag_confbak.php:186 msgid "" "To view the differences between an older configuration and a newer " "configuration, select the older configuration using the left column of radio " @@ -8169,41 +8020,41 @@ msgid "" "the \"Diff\" button." msgstr "" +#: src/usr/local/www/diag_confbak.php:205 #: src/usr/local/www/diag_confbak.php:207 -#: src/usr/local/www/diag_confbak.php:209 +#: src/usr/local/www/diag_confbak.php:269 #: src/usr/local/www/diag_confbak.php:271 -#: src/usr/local/www/diag_confbak.php:273 msgid "Diff" msgstr "" -#: src/usr/local/www/diag_confbak.php:212 +#: src/usr/local/www/diag_confbak.php:210 #: src/usr/local/www/firewall_schedule_edit.php:384 msgid "Date" msgstr "" -#: src/usr/local/www/diag_confbak.php:213 src/usr/local/www/pkg_mgr.php:66 -#: src/usr/local/www/pkg_mgr_installed.php:79 -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:52 -#: src/usr/local/www/widgets/widgets/system_information.widget.php:90 +#: src/usr/local/www/diag_confbak.php:211 src/usr/local/www/pkg_mgr.php:66 +#: src/usr/local/www/pkg_mgr_installed.php:77 +#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:51 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:112 msgid "Version" msgstr "" -#: src/usr/local/www/diag_confbak.php:214 +#: src/usr/local/www/diag_confbak.php:212 #: src/usr/local/www/diag_gmirror.php:303 src/usr/local/www/diag_pftop.php:125 -#: src/usr/local/www/services_captiveportal_filemanager.php:191 +#: src/usr/local/www/services_captiveportal_filemanager.php:189 msgid "Size" msgstr "" -#: src/usr/local/www/diag_confbak.php:215 +#: src/usr/local/www/diag_confbak.php:213 msgid "Configuration Change" msgstr "" -#: src/usr/local/www/diag_confbak.php:230 +#: src/usr/local/www/diag_confbak.php:228 msgid "Current configuration" msgstr "" -#: src/usr/local/www/diag_confbak.php:239 -#: src/usr/local/www/pkg_mgr_installed.php:122 +#: src/usr/local/www/diag_confbak.php:237 +#: src/usr/local/www/pkg_mgr_installed.php:120 #: src/usr/local/www/status_ipsec.php:113 #: src/usr/local/www/status_ipsec.php:122 #: src/usr/local/www/status_ipsec.php:155 @@ -8214,34 +8065,34 @@ msgstr "" #: src/usr/local/www/status_ipsec.php:395 #: src/usr/local/www/status_ipsec.php:406 #: src/usr/local/www/status_ipsec.php:415 -#: src/usr/local/www/widgets/widgets/gateways.widget.php:237 -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:97 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:241 +#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:96 #: src/usr/local/www/widgets/widgets/smart_status.widget.php:63 msgid "Unknown" msgstr "" -#: src/usr/local/www/diag_confbak.php:261 +#: src/usr/local/www/diag_confbak.php:259 msgid "Revert config" msgstr "" -#: src/usr/local/www/diag_confbak.php:261 +#: src/usr/local/www/diag_confbak.php:259 msgid "" "Confirmation Required to replace the current configuration with this backup." msgstr "" -#: src/usr/local/www/diag_confbak.php:262 +#: src/usr/local/www/diag_confbak.php:260 msgid "Download config" msgstr "" -#: src/usr/local/www/diag_confbak.php:263 +#: src/usr/local/www/diag_confbak.php:261 msgid "Delete config" msgstr "" -#: src/usr/local/www/diag_confbak.php:280 +#: src/usr/local/www/diag_confbak.php:278 msgid "No backups found." msgstr "" -#: src/usr/local/www/diag_defaults.php:40 src/usr/local/www/head.inc:344 +#: src/usr/local/www/diag_defaults.php:40 src/usr/local/www/head.inc:338 msgid "Factory Defaults" msgstr "" @@ -8312,37 +8163,32 @@ msgstr "" msgid "Keep Configuration" msgstr "" -#: src/usr/local/www/diag_dns.php:29 src/usr/local/www/diag_dns.php:229 -#: src/usr/local/www/head.inc:342 +#: src/usr/local/www/diag_dns.php:29 src/usr/local/www/diag_dns.php:218 +#: src/usr/local/www/head.inc:336 msgid "DNS Lookup" msgstr "" -#: src/usr/local/www/diag_dns.php:115 +#: src/usr/local/www/diag_dns.php:114 msgid "Created from Diagnostics-> DNS Lookup" msgstr "" -#: src/usr/local/www/diag_dns.php:135 +#: src/usr/local/www/diag_dns.php:134 msgid "Host must be a valid hostname or IP address." msgstr "" -#: src/usr/local/www/diag_dns.php:144 +#: src/usr/local/www/diag_dns.php:143 msgid "No response" msgstr "" -#: src/usr/local/www/diag_dns.php:182 -msgid "No record found" -msgstr "" - -#: src/usr/local/www/diag_dns.php:195 src/usr/local/www/diag_tables.php:259 -#: src/usr/local/www/interfaces.php:3033 src/usr/local/www/interfaces.php:3057 -#: src/usr/local/www/interfaces_ppps_edit.php:624 +#: src/usr/local/www/diag_dns.php:184 src/usr/local/www/diag_tables.php:261 +#: src/usr/local/www/interfaces.php:3041 src/usr/local/www/interfaces.php:3065 #: src/usr/local/www/load_balancer_pool_edit.php:370 #: src/usr/local/www/load_balancer_virtual_server.php:142 #: src/usr/local/www/load_balancer_virtual_server_edit.php:70 #: src/usr/local/www/load_balancer_virtual_server_edit.php:75 #: src/usr/local/www/load_balancer_virtual_server_edit.php:190 #: src/usr/local/www/services_captiveportal_ip_edit.php:220 -#: src/usr/local/www/services_dhcp_edit.php:426 +#: src/usr/local/www/services_dhcp_edit.php:433 #: src/usr/local/www/services_dnsmasq_domainoverride_edit.php:142 #: src/usr/local/www/services_dnsmasq_edit.php:229 #: src/usr/local/www/services_pppoe_edit.php:415 @@ -8350,107 +8196,107 @@ msgstr "" #: src/usr/local/www/services_pppoe_edit.php:519 #: src/usr/local/www/services_unbound_domainoverride_edit.php:133 #: src/usr/local/www/services_unbound_host_edit.php:230 -#: src/usr/local/www/status_graph.php:176 +#: src/usr/local/www/status_graph.php:164 #: src/usr/local/www/status_logs_vpn.php:140 #: src/usr/local/www/status_logs_vpn.php:391 -#: src/usr/local/www/system_advanced_notifications.php:232 -#: src/usr/local/www/vpn_ipsec_phase2.php:683 +#: src/usr/local/www/system_advanced_notifications.php:239 +#: src/usr/local/www/vpn_ipsec_phase2.php:678 #: src/usr/local/www/vpn_l2tp_users_edit.php:169 #: src/usr/local/www/widgets/widgets/carp_status.widget.php:38 msgid "IP Address" msgstr "" -#: src/usr/local/www/diag_dns.php:196 src/usr/local/www/status_graph.php:177 +#: src/usr/local/www/diag_dns.php:185 src/usr/local/www/status_graph.php:165 #: src/usr/local/www/system_authservers.php:437 msgid "Host Name" msgstr "" -#: src/usr/local/www/diag_dns.php:199 src/usr/local/www/services_rfc2136.php:81 +#: src/usr/local/www/diag_dns.php:188 src/usr/local/www/services_rfc2136.php:81 #: src/usr/local/www/services_rfc2136_edit.php:239 #: src/usr/local/www/status_ntpd.php:267 -#: src/usr/local/www/system_certmanager.php:979 +#: src/usr/local/www/system_certmanager.php:1000 #: src/usr/local/www/vpn_l2tp.php:296 #: src/usr/local/www/vpn_openvpn_client.php:792 #: src/usr/local/www/widgets/widgets/load_balancer_status.widget.php:60 msgid "Server" msgstr "" -#: src/usr/local/www/diag_dns.php:199 +#: src/usr/local/www/diag_dns.php:188 msgid "Query Time" msgstr "" -#: src/usr/local/www/diag_dns.php:217 +#: src/usr/local/www/diag_dns.php:206 #, php-format msgid "Host \"%s\" could not be resolved." msgstr "" -#: src/usr/local/www/diag_dns.php:222 +#: src/usr/local/www/diag_dns.php:211 msgid "Alias was updated successfully." msgstr "" -#: src/usr/local/www/diag_dns.php:224 +#: src/usr/local/www/diag_dns.php:213 msgid "Alias was created successfully." msgstr "" -#: src/usr/local/www/diag_dns.php:243 +#: src/usr/local/www/diag_dns.php:232 #: src/usr/local/www/status_logs_filter_summary.php:176 msgid "Lookup" msgstr "" -#: src/usr/local/www/diag_dns.php:250 +#: src/usr/local/www/diag_dns.php:239 msgid "Update alias" msgstr "" -#: src/usr/local/www/diag_dns.php:252 +#: src/usr/local/www/diag_dns.php:241 msgid "Add alias" msgstr "" -#: src/usr/local/www/diag_dns.php:268 src/usr/local/www/diag_ping.php:173 -#: src/usr/local/www/diag_traceroute.php:175 +#: src/usr/local/www/diag_dns.php:257 src/usr/local/www/diag_ping.php:173 +#: src/usr/local/www/diag_traceroute.php:181 msgid "Results" msgstr "" -#: src/usr/local/www/diag_dns.php:274 +#: src/usr/local/www/diag_dns.php:263 msgid "Result" msgstr "" -#: src/usr/local/www/diag_dns.php:275 +#: src/usr/local/www/diag_dns.php:264 msgid "Record type" msgstr "" -#: src/usr/local/www/diag_dns.php:292 +#: src/usr/local/www/diag_dns.php:281 msgid "Timings" msgstr "" -#: src/usr/local/www/diag_dns.php:297 +#: src/usr/local/www/diag_dns.php:286 msgid "Name server" msgstr "" -#: src/usr/local/www/diag_dns.php:298 +#: src/usr/local/www/diag_dns.php:287 msgid "Query time" msgstr "" -#: src/usr/local/www/diag_dns.php:315 +#: src/usr/local/www/diag_dns.php:304 msgid "More Information" msgstr "" -#: src/usr/local/www/diag_dns.php:318 src/usr/local/www/diag_ping.php:35 +#: src/usr/local/www/diag_dns.php:307 src/usr/local/www/diag_ping.php:35 #: src/usr/local/www/diag_ping.php:127 src/usr/local/www/diag_ping.php:162 -#: src/usr/local/www/head.inc:354 +#: src/usr/local/www/head.inc:348 msgid "Ping" msgstr "" -#: src/usr/local/www/diag_dns.php:321 +#: src/usr/local/www/diag_dns.php:310 msgid "" "NOTE: The following links are to external services, so their reliability " "cannot be guaranteed." msgstr "" -#: src/usr/local/www/diag_dns.php:323 +#: src/usr/local/www/diag_dns.php:312 msgid "IP WHOIS @ DNS Stuff" msgstr "" -#: src/usr/local/www/diag_dns.php:324 +#: src/usr/local/www/diag_dns.php:313 msgid "IP Info @ DNS Stuff" msgstr "" @@ -8468,9 +8314,9 @@ msgstr "" #: src/usr/local/www/diag_dump_states_sources.php:57 #: src/usr/local/www/diag_resetstate.php:56 #: src/usr/local/www/diag_resetstate.php:80 -#: src/usr/local/www/diag_states_summary.php:147 -#: src/usr/local/www/diag_states_summary.php:149 -#: src/usr/local/www/firewall_rules.php:375 src/usr/local/www/head.inc:362 +#: src/usr/local/www/diag_states_summary.php:152 +#: src/usr/local/www/diag_states_summary.php:154 +#: src/usr/local/www/firewall_rules.php:374 src/usr/local/www/head.inc:356 msgid "States" msgstr "" @@ -8500,12 +8346,12 @@ msgstr "" #: src/usr/local/www/diag_dump_states.php:145 #: src/usr/local/www/diag_dump_states_sources.php:105 -#: src/usr/local/www/diag_routes.php:96 src/usr/local/www/pkg.php:347 -#: src/usr/local/www/status_graph.php:169 +#: src/usr/local/www/diag_routes.php:97 src/usr/local/www/pkg.php:347 +#: src/usr/local/www/status_graph.php:157 #: src/usr/local/www/system_groupmanager_addprivs.php:169 #: src/usr/local/www/system_groupmanager_addprivs.php:176 -#: src/usr/local/www/system_usermanager_addprivs.php:162 -#: src/usr/local/www/system_usermanager_addprivs.php:169 +#: src/usr/local/www/system_usermanager_addprivs.php:159 +#: src/usr/local/www/system_usermanager_addprivs.php:166 msgid "Filter" msgstr "" @@ -8522,17 +8368,17 @@ msgid "Remove all states to and from the filtered address" msgstr "" #: src/usr/local/www/diag_dump_states.php:180 -#: src/usr/local/www/diag_packet_capture.php:306 -#: src/usr/local/www/diag_states_summary.php:148 -#: src/usr/local/www/firewall_nat.php:206 +#: src/usr/local/www/diag_packet_capture.php:305 +#: src/usr/local/www/diag_states_summary.php:153 +#: src/usr/local/www/firewall_nat.php:208 #: src/usr/local/www/firewall_nat_edit.php:212 #: src/usr/local/www/firewall_nat_edit.php:215 #: src/usr/local/www/firewall_nat_edit.php:685 -#: src/usr/local/www/firewall_nat_out_edit.php:151 -#: src/usr/local/www/firewall_nat_out_edit.php:469 -#: src/usr/local/www/firewall_rules.php:376 -#: src/usr/local/www/firewall_rules_edit.php:416 -#: src/usr/local/www/firewall_rules_edit.php:1221 +#: src/usr/local/www/firewall_nat_out_edit.php:152 +#: src/usr/local/www/firewall_nat_out_edit.php:484 +#: src/usr/local/www/firewall_rules.php:375 +#: src/usr/local/www/firewall_rules_edit.php:411 +#: src/usr/local/www/firewall_rules_edit.php:1216 #: src/usr/local/www/interfaces_bridge_edit.php:539 #: src/usr/local/www/load_balancer_virtual_server.php:141 #: src/usr/local/www/services_rfc2136_edit.php:246 @@ -8542,13 +8388,13 @@ msgstr "" #: src/usr/local/www/status_logs_filter.php:163 #: src/usr/local/www/status_logs_filter_dynamic.php:394 #: src/usr/local/www/status_upnp.php:70 -#: src/usr/local/www/system_advanced_admin.php:309 -#: src/usr/local/www/system_advanced_admin.php:313 -#: src/usr/local/www/system_advanced_admin.php:321 -#: src/usr/local/www/vpn_ipsec_phase2.php:597 +#: src/usr/local/www/system_advanced_admin.php:307 +#: src/usr/local/www/system_advanced_admin.php:311 +#: src/usr/local/www/system_advanced_admin.php:319 +#: src/usr/local/www/vpn_ipsec_phase2.php:592 #: src/usr/local/www/vpn_openvpn_client.php:442 #: src/usr/local/www/vpn_openvpn_client.php:791 -#: src/usr/local/www/vpn_openvpn_server.php:633 +#: src/usr/local/www/vpn_openvpn_server.php:637 msgid "Protocol" msgstr "" @@ -8557,7 +8403,7 @@ msgid "Source (Original Source) -> Destination (Original Destination)" msgstr "" #: src/usr/local/www/diag_dump_states.php:182 -#: src/usr/local/www/status_dhcpv6_leases.php:535 +#: src/usr/local/www/status_dhcpv6_leases.php:532 msgid "State" msgstr "" @@ -8619,8 +8465,8 @@ msgstr "" #: src/usr/local/www/diag_gmirror.php:268 #: src/usr/local/www/load_balancer_pool_edit.php:421 #: src/usr/local/www/load_balancer_pool_edit.php:428 -#: src/usr/local/www/pkg_mgr_installed.php:197 -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:119 +#: src/usr/local/www/pkg_mgr_installed.php:193 +#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:117 msgid "Remove" msgstr "" @@ -8628,7 +8474,7 @@ msgstr "" msgid "No source tracking entries were found." msgstr "" -#: src/usr/local/www/diag_edit.php:31 src/usr/local/www/head.inc:343 +#: src/usr/local/www/diag_edit.php:31 src/usr/local/www/head.inc:337 msgid "Edit File" msgstr "" @@ -8648,35 +8494,39 @@ msgstr "" msgid "Failed to read file." msgstr "" -#: src/usr/local/www/diag_edit.php:80 +#: src/usr/local/www/diag_edit.php:78 msgid "Failed to write file." msgstr "" -#: src/usr/local/www/diag_edit.php:84 +#: src/usr/local/www/diag_edit.php:82 msgid "Error while writing file." msgstr "" -#: src/usr/local/www/diag_edit.php:88 +#: src/usr/local/www/diag_edit.php:86 msgid "File saved successfully." msgstr "" -#: src/usr/local/www/diag_edit.php:108 +#: src/usr/local/www/diag_edit.php:106 msgid "Save / Load a File from the Filesystem" msgstr "" -#: src/usr/local/www/diag_edit.php:115 src/usr/local/www/diag_edit.php:117 +#: src/usr/local/www/diag_edit.php:110 +msgid "Path to file to be edited" +msgstr "" + +#: src/usr/local/www/diag_edit.php:113 src/usr/local/www/diag_edit.php:115 msgid "Load" msgstr "" -#: src/usr/local/www/diag_edit.php:119 src/usr/local/www/diag_edit.php:121 +#: src/usr/local/www/diag_edit.php:117 src/usr/local/www/diag_edit.php:119 msgid "Browse" msgstr "" -#: src/usr/local/www/diag_edit.php:130 +#: src/usr/local/www/diag_edit.php:128 msgid "GoTo Line #" msgstr "" -#: src/usr/local/www/diag_gmirror.php:33 src/usr/local/www/head.inc:347 +#: src/usr/local/www/diag_gmirror.php:33 src/usr/local/www/head.inc:341 msgid "GEOM Mirrors" msgstr "" @@ -8842,7 +8692,7 @@ msgid "" "followed by an 'insert' action on the new consumer." msgstr "" -#: src/usr/local/www/diag_halt.php:45 src/usr/local/www/head.inc:350 +#: src/usr/local/www/diag_halt.php:45 src/usr/local/www/head.inc:344 msgid "Halt System" msgstr "" @@ -8874,13 +8724,13 @@ msgid "Halt the system and power off" msgstr "" #: src/usr/local/www/diag_halt.php:78 src/usr/local/www/diag_reboot.php:119 -#: src/usr/local/www/firewall_nat.php:467 -#: src/usr/local/www/firewall_rules.php:870 -#: src/usr/local/www/interfaces.php:1870 src/usr/local/www/interfaces.php:3176 +#: src/usr/local/www/firewall_nat.php:469 +#: src/usr/local/www/firewall_rules.php:869 +#: src/usr/local/www/interfaces.php:1873 src/usr/local/www/interfaces.php:3184 msgid "Cancel" msgstr "" -#: src/usr/local/www/diag_limiter_info.php:31 src/usr/local/www/head.inc:351 +#: src/usr/local/www/diag_limiter_info.php:31 src/usr/local/www/head.inc:345 msgid "Limiter Info" msgstr "" @@ -8892,7 +8742,7 @@ msgstr "" msgid "Limiters:" msgstr "" -#: src/usr/local/www/diag_limiter_info.php:43 src/usr/local/www/head.inc:313 +#: src/usr/local/www/diag_limiter_info.php:43 src/usr/local/www/head.inc:307 #: src/usr/local/www/status_queues.php:110 msgid "Queues" msgstr "" @@ -8905,145 +8755,25 @@ msgstr "" msgid "Gathering Limiter information, please wait..." msgstr "" -#: src/usr/local/www/diag_nanobsd.php:40 src/usr/local/www/head.inc:369 -msgid "NanoBSD" -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:59 -#, php-format -msgid "The boot slice has been set to %s." -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:66 -msgid "Duplicating slice. Please wait, this will take a moment..." -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:69 -msgid "The slice has been duplicated." -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:69 -msgid "" -"To boot from this newly duplicated slice set it using the bootup information " -"area." -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:72 -msgid "There was an error while duplicating the slice. Operation aborted." -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:91 -msgid "Permanent read/write has been set successfully." -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:95 -msgid "Permanent read/write has been cleared successfully." -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:100 -msgid "Changed Permanent Read/Write Setting" -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:103 -msgid "Saved read/write permanently." -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:108 -#: src/usr/local/www/system_advanced_sysctl.php:157 -msgid "The options on this page are intended for use by advanced users only." -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:116 -msgid "NanoBSD Options" -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:119 -msgid "Image Size" -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:125 -msgid "Switch Slice" -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:132 -msgid "Bootup slice" -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:150 -msgid "Read/Write" -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:151 -msgid "Switch to Read-Only" -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:153 -msgid "Read-Only" -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:154 -msgid "Switch to Read/Write" -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:172 -msgid "Read/Write status" -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:174 -msgid "" -"NanoBSD is now always read-write to avoid read-write to read-only mount " -"problems." -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:208 -msgid "Duplicate " -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:215 -msgid "Duplicate boot slice" -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:217 -msgid "" -"This will duplicate the bootup slice to the alternate slice. Use this to " -"duplicate the known good working boot partition to the alternate." -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:220 -msgid "RRD/DHCP Backup" -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:227 -msgid "View log" -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:234 -msgid "View previous upgrade log" -msgstr "" - -#: src/usr/local/www/diag_nanobsd.php:244 -msgid "Previous Upgrade Log" -msgstr "" - #: src/usr/local/www/diag_ndp.php:96 src/usr/local/www/diag_ndp.php:101 -#: src/usr/local/www/head.inc:352 +#: src/usr/local/www/head.inc:346 msgid "NDP Table" msgstr "" #: src/usr/local/www/diag_ndp.php:108 src/usr/local/www/interfaces.php:578 -#: src/usr/local/www/interfaces.php:1804 -#: src/usr/local/www/services_dhcpv6.php:984 +#: src/usr/local/www/interfaces.php:1807 +#: src/usr/local/www/services_dhcpv6.php:979 #: src/usr/local/www/services_dhcpv6_edit.php:226 -#: src/usr/local/www/status_dhcpv6_leases.php:433 +#: src/usr/local/www/status_dhcpv6_leases.php:430 msgid "IPv6 address" msgstr "" #: src/usr/local/www/diag_packet_capture.php:80 -#: src/usr/local/www/diag_packet_capture.php:398 +#: src/usr/local/www/diag_packet_capture.php:397 msgid "Download Capture" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:84 src/usr/local/www/head.inc:366 +#: src/usr/local/www/diag_packet_capture.php:84 src/usr/local/www/head.inc:360 msgid "Packet Capture" msgstr "" @@ -9088,38 +8818,38 @@ msgstr "" msgid "Invalid value specified for packet count." msgstr "" -#: src/usr/local/www/diag_packet_capture.php:210 -#: src/usr/local/www/diag_packet_capture.php:375 -#: src/usr/local/www/diag_packet_capture.php:451 +#: src/usr/local/www/diag_packet_capture.php:209 +#: src/usr/local/www/diag_packet_capture.php:374 +#: src/usr/local/www/diag_packet_capture.php:450 #: src/usr/local/www/status_dhcp_leases.php:350 -#: src/usr/local/www/status_dhcpv6_leases.php:438 -#: src/usr/local/www/status_dhcpv6_leases.php:533 +#: src/usr/local/www/status_dhcpv6_leases.php:435 +#: src/usr/local/www/status_dhcpv6_leases.php:530 msgid "Start" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:218 -#: src/usr/local/www/diag_packet_capture.php:372 -#: src/usr/local/www/diag_packet_capture.php:382 +#: src/usr/local/www/diag_packet_capture.php:217 +#: src/usr/local/www/diag_packet_capture.php:371 +#: src/usr/local/www/diag_packet_capture.php:381 msgid "Stop" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:245 +#: src/usr/local/www/diag_packet_capture.php:244 msgid "Exclude" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:275 +#: src/usr/local/www/diag_packet_capture.php:274 msgid "Packet Capture Options" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:282 +#: src/usr/local/www/diag_packet_capture.php:281 msgid "Select the interface on which to capture traffic. " msgstr "" -#: src/usr/local/www/diag_packet_capture.php:286 +#: src/usr/local/www/diag_packet_capture.php:285 msgid "Promiscuous" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:289 +#: src/usr/local/www/diag_packet_capture.php:288 msgid "" "The packet capture will be performed using promiscuous mode.<br />Note: Some " "network adapters do not support or work well in promiscuous mode.<br />More: " @@ -9128,33 +8858,33 @@ msgid "" "arch=default&format=html\">Packet capture</a>" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:299 +#: src/usr/local/www/diag_packet_capture.php:298 msgid "IPv4 Only" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:300 +#: src/usr/local/www/diag_packet_capture.php:299 msgid "IPv6 Only" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:296 -#: src/usr/local/www/firewall_rules_edit.php:1210 +#: src/usr/local/www/diag_packet_capture.php:295 +#: src/usr/local/www/firewall_rules_edit.php:1205 #: src/usr/local/www/system_gateways_edit.php:594 msgid "Address Family" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:302 +#: src/usr/local/www/diag_packet_capture.php:301 msgid "Select the type of traffic to be captured." msgstr "" -#: src/usr/local/www/diag_packet_capture.php:309 +#: src/usr/local/www/diag_packet_capture.php:308 msgid "Select the protocol to capture, or \"Any\". " msgstr "" -#: src/usr/local/www/diag_packet_capture.php:313 +#: src/usr/local/www/diag_packet_capture.php:312 msgid "Host Address" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:316 +#: src/usr/local/www/diag_packet_capture.php:315 msgid "" "This value is either the Source or Destination IP address or subnet in CIDR " "notation. The packet capture will look for this address in either field.<br /" @@ -9165,17 +8895,17 @@ msgid "" "interface will be captured." msgstr "" -#: src/usr/local/www/diag_packet_capture.php:323 +#: src/usr/local/www/diag_packet_capture.php:322 #: src/usr/local/www/diag_testport.php:52 #: src/usr/local/www/diag_testport.php:229 #: src/usr/local/www/firewall_aliases_edit.php:549 #: src/usr/local/www/firewall_nat_edit.php:847 -#: src/usr/local/www/firewall_nat_out_edit.php:494 -#: src/usr/local/www/firewall_nat_out_edit.php:518 -#: src/usr/local/www/firewall_nat_out_edit.php:574 -#: src/usr/local/www/firewall_rules.php:378 -#: src/usr/local/www/firewall_rules.php:380 -#: src/usr/local/www/interfaces.php:3039 src/usr/local/www/interfaces.php:3063 +#: src/usr/local/www/firewall_nat_out_edit.php:509 +#: src/usr/local/www/firewall_nat_out_edit.php:533 +#: src/usr/local/www/firewall_nat_out_edit.php:596 +#: src/usr/local/www/firewall_rules.php:377 +#: src/usr/local/www/firewall_rules.php:379 +#: src/usr/local/www/interfaces.php:3047 src/usr/local/www/interfaces.php:3071 #: src/usr/local/www/load_balancer_pool.php:123 #: src/usr/local/www/load_balancer_pool_edit.php:73 #: src/usr/local/www/load_balancer_pool_edit.php:329 @@ -9185,93 +8915,93 @@ msgstr "" msgid "Port" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:326 +#: src/usr/local/www/diag_packet_capture.php:325 msgid "" "The port can be either the source or destination port. The packet capture " "will look for this port in either field. Leave blank if not filtering by " "port." msgstr "" -#: src/usr/local/www/diag_packet_capture.php:331 +#: src/usr/local/www/diag_packet_capture.php:330 msgid "Packet Length" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:334 +#: src/usr/local/www/diag_packet_capture.php:333 msgid "" "The Packet length is the number of bytes of each packet that will be " "captured. Default value is 0, which will capture the entire frame regardless " "of its size." msgstr "" -#: src/usr/local/www/diag_packet_capture.php:339 +#: src/usr/local/www/diag_packet_capture.php:338 #: src/usr/local/www/diag_ping.php:50 #: src/usr/local/www/services_captiveportal_vouchers_edit.php:91 #: src/usr/local/www/services_captiveportal_vouchers_edit.php:202 msgid "Count" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:342 +#: src/usr/local/www/diag_packet_capture.php:341 msgid "" "This is the number of packets the packet capture will grab. Default value is " "100.<br />Enter 0 (zero) for no count limit." msgstr "" -#: src/usr/local/www/diag_packet_capture.php:349 -#: src/usr/local/www/services_router_advertisements.php:120 +#: src/usr/local/www/diag_packet_capture.php:348 +#: src/usr/local/www/services_router_advertisements.php:115 msgid "Normal" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:350 +#: src/usr/local/www/diag_packet_capture.php:349 msgid "Medium" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:351 -#: src/usr/local/www/services_router_advertisements.php:121 +#: src/usr/local/www/diag_packet_capture.php:350 +#: src/usr/local/www/services_router_advertisements.php:116 msgid "High" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:352 +#: src/usr/local/www/diag_packet_capture.php:351 msgid "Full" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:347 +#: src/usr/local/www/diag_packet_capture.php:346 msgid "Level of detail" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:354 +#: src/usr/local/www/diag_packet_capture.php:353 msgid "" "This is the level of detail that will be displayed after hitting \"Stop\" " "when the packets have been captured.<br />This option does not affect the " "level of detail when downloading the packet capture. " msgstr "" -#: src/usr/local/www/diag_packet_capture.php:359 +#: src/usr/local/www/diag_packet_capture.php:358 msgid "Reverse DNS Lookup" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:362 +#: src/usr/local/www/diag_packet_capture.php:361 msgid "" "The packet capture will perform a reverse DNS lookup associated with all IP " "addresses.<br />This option can cause delays for large packet captures." msgstr "" -#: src/usr/local/www/diag_packet_capture.php:391 +#: src/usr/local/www/diag_packet_capture.php:390 msgid "View Capture" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:404 +#: src/usr/local/www/diag_packet_capture.php:403 msgid "Last capture" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:454 +#: src/usr/local/www/diag_packet_capture.php:453 msgid "Packet capture is running." msgstr "" -#: src/usr/local/www/diag_packet_capture.php:464 +#: src/usr/local/www/diag_packet_capture.php:463 msgid "Packets Captured" msgstr "" -#: src/usr/local/www/diag_pf_info.php:31 src/usr/local/www/head.inc:356 +#: src/usr/local/www/diag_pf_info.php:31 src/usr/local/www/head.inc:350 msgid "pfInfo" msgstr "" @@ -9291,7 +9021,7 @@ msgstr "" msgid "Gathering PF information, please wait..." msgstr "" -#: src/usr/local/www/diag_pftop.php:31 src/usr/local/www/head.inc:357 +#: src/usr/local/www/diag_pftop.php:31 src/usr/local/www/head.inc:351 msgid "pfTop" msgstr "" @@ -9370,13 +9100,13 @@ msgid "Source Port" msgstr "" #: src/usr/local/www/diag_pftop.php:127 src/usr/local/www/diag_testport.php:252 -#: src/usr/local/www/diag_traceroute.php:134 -#: src/usr/local/www/firewall_nat.php:207 -#: src/usr/local/www/status_logs_settings.php:332 +#: src/usr/local/www/diag_traceroute.php:140 +#: src/usr/local/www/firewall_nat.php:209 +#: src/usr/local/www/status_logs_settings.php:340 msgid "Source Address" msgstr "" -#: src/usr/local/www/diag_pftop.php:113 src/usr/local/www/status_graph.php:158 +#: src/usr/local/www/diag_pftop.php:113 src/usr/local/www/status_graph.php:146 msgid "Sort by" msgstr "" @@ -9389,7 +9119,7 @@ msgid "Gathering pfTOP activity, please wait..." msgstr "" #: src/usr/local/www/diag_ping.php:50 src/usr/local/www/diag_testport.php:52 -#: src/usr/local/www/diag_traceroute.php:55 +#: src/usr/local/www/diag_traceroute.php:58 #: src/usr/local/www/load_balancer_monitor_edit.php:303 #: src/usr/local/www/load_balancer_monitor_edit.php:329 #: src/usr/local/www/services_dnsmasq.php:319 @@ -9406,11 +9136,11 @@ msgstr "" msgid "Count must be between 1 and %s" msgstr "" -#: src/usr/local/www/diag_ping.php:60 src/usr/local/www/diag_traceroute.php:64 +#: src/usr/local/www/diag_ping.php:60 src/usr/local/www/diag_traceroute.php:67 msgid "When using IPv4, the target host must be an IPv4 address or hostname." msgstr "" -#: src/usr/local/www/diag_ping.php:63 src/usr/local/www/diag_traceroute.php:67 +#: src/usr/local/www/diag_ping.php:63 src/usr/local/www/diag_traceroute.php:70 msgid "When using IPv6, the target host must be an IPv6 address or hostname." msgstr "" @@ -9420,8 +9150,8 @@ msgid "Host \"%s\" did not respond or could not be resolved." msgstr "" #: src/usr/local/www/diag_ping.php:139 src/usr/local/www/diag_testport.php:259 -#: src/usr/local/www/diag_traceroute.php:127 -#: src/usr/local/www/status_logs_settings.php:339 +#: src/usr/local/www/diag_traceroute.php:133 +#: src/usr/local/www/status_logs_settings.php:347 msgid "IP Protocol" msgstr "" @@ -9448,8 +9178,8 @@ msgid "Select the maximum number of pings." msgstr "" #: src/usr/local/www/diag_reboot.php:43 src/usr/local/www/diag_reboot.php:113 -#: src/usr/local/www/diag_reboot.php:115 src/usr/local/www/head.inc:358 -#: src/usr/local/www/interfaces.php:1958 +#: src/usr/local/www/diag_reboot.php:115 src/usr/local/www/head.inc:352 +#: src/usr/local/www/interfaces.php:1961 msgid "Reboot" msgstr "" @@ -9515,7 +9245,7 @@ msgid "" msgstr "" #: src/usr/local/www/diag_resetstate.php:91 -msgid "Select States to Reset" +msgid "State reset options" msgstr "" #: src/usr/local/www/diag_resetstate.php:95 @@ -9528,57 +9258,65 @@ msgstr "" msgid "Reset" msgstr "" -#: src/usr/local/www/diag_routes.php:64 src/usr/local/www/head.inc:359 +#: src/usr/local/www/diag_resetstate.php:120 +msgid "Please select at least one reset option" +msgstr "" + +#: src/usr/local/www/diag_resetstate.php:121 +msgid "Do you really want to reset the selected states?" +msgstr "" + +#: src/usr/local/www/diag_routes.php:65 src/usr/local/www/head.inc:353 msgid "Routes" msgstr "" -#: src/usr/local/www/diag_routes.php:76 +#: src/usr/local/www/diag_routes.php:77 msgid "Routing Table Display Options" msgstr "" -#: src/usr/local/www/diag_routes.php:80 +#: src/usr/local/www/diag_routes.php:81 msgid "Resolve names" msgstr "" -#: src/usr/local/www/diag_routes.php:83 +#: src/usr/local/www/diag_routes.php:84 msgid "" "Enabling name resolution may cause the query to take longer. It can be " "stopped at any time by clicking the Stop button in the browser." msgstr "" -#: src/usr/local/www/diag_routes.php:89 +#: src/usr/local/www/diag_routes.php:90 msgid "Rows to display" msgstr "" -#: src/usr/local/www/diag_routes.php:99 -msgid "Use a regular expression to filter IP address or hostnames." +#: src/usr/local/www/diag_routes.php:100 +msgid "Use a regular expression to filter the tables." msgstr "" -#: src/usr/local/www/diag_routes.php:105 src/usr/local/www/diag_tables.php:145 +#: src/usr/local/www/diag_routes.php:106 src/usr/local/www/diag_tables.php:147 #: src/usr/local/www/head.inc:212 src/usr/local/www/pkg_mgr_install.php:238 -#: src/usr/local/www/pkg_mgr_installed.php:193 -#: src/usr/local/www/system_certmanager.php:459 -#: src/usr/local/www/system_certmanager.php:515 -#: src/usr/local/www/system_certmanager.php:865 -#: src/usr/local/www/system_certmanager.php:913 +#: src/usr/local/www/pkg_mgr_installed.php:189 +#: src/usr/local/www/system_certmanager.php:464 +#: src/usr/local/www/system_certmanager.php:520 +#: src/usr/local/www/system_certmanager.php:886 +#: src/usr/local/www/system_certmanager.php:934 #: src/usr/local/www/system_update_settings.php:77 -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:122 +#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:120 msgid "Update" msgstr "" -#: src/usr/local/www/diag_routes.php:190 +#: src/usr/local/www/diag_routes.php:191 msgid "IPv4 Routes" msgstr "" -#: src/usr/local/www/diag_routes.php:200 src/usr/local/www/diag_routes.php:218 +#: src/usr/local/www/diag_routes.php:201 src/usr/local/www/diag_routes.php:219 msgid "Gathering data, please wait..." msgstr "" -#: src/usr/local/www/diag_routes.php:208 +#: src/usr/local/www/diag_routes.php:209 msgid "IPv6 Routes" msgstr "" -#: src/usr/local/www/diag_smart.php:36 src/usr/local/www/head.inc:360 +#: src/usr/local/www/diag_smart.php:36 src/usr/local/www/head.inc:354 #: src/usr/local/www/widgets/include/smart_status.inc:23 #: src/usr/local/www/widgets/widgets/smart_status.widget.php:40 msgid "S.M.A.R.T. Status" @@ -9639,7 +9377,7 @@ msgid "Invalid info type, bailing." msgstr "" #: src/usr/local/www/diag_smart.php:161 src/usr/local/www/diag_smart.php:305 -#: src/usr/local/www/pkg_mgr_installed.php:198 +#: src/usr/local/www/pkg_mgr_installed.php:194 msgid "Information" msgstr "" @@ -9659,20 +9397,20 @@ msgstr "" #: src/usr/local/www/diag_smart.php:264 #: src/usr/local/www/services_captiveportal.php:64 #: src/usr/local/www/services_captiveportal.php:530 -#: src/usr/local/www/services_captiveportal_filemanager.php:140 +#: src/usr/local/www/services_captiveportal_filemanager.php:138 #: src/usr/local/www/services_captiveportal_hostname.php:105 #: src/usr/local/www/services_captiveportal_ip.php:99 #: src/usr/local/www/services_captiveportal_mac.php:164 -#: src/usr/local/www/services_captiveportal_vouchers.php:405 +#: src/usr/local/www/services_captiveportal_vouchers.php:374 #: src/usr/local/www/vpn_l2tp.php:173 src/usr/local/www/vpn_l2tp.php:186 #: src/usr/local/www/vpn_l2tp.php:210 src/usr/local/www/vpn_l2tp_users.php:84 msgid "Configuration" msgstr "" #: src/usr/local/www/diag_smart.php:268 -#: src/usr/local/www/system_camanager.php:576 -#: src/usr/local/www/system_certmanager.php:694 -#: src/usr/local/www/system_certmanager.php:813 +#: src/usr/local/www/system_camanager.php:589 +#: src/usr/local/www/system_certmanager.php:707 +#: src/usr/local/www/system_certmanager.php:834 msgid "Email Address" msgstr "" @@ -9709,7 +9447,7 @@ msgstr "" msgid "Log type" msgstr "" -#: src/usr/local/www/diag_sockets.php:31 src/usr/local/www/head.inc:361 +#: src/usr/local/www/diag_sockets.php:31 src/usr/local/www/head.inc:355 msgid "Sockets" msgstr "" @@ -9726,72 +9464,70 @@ msgid "System Socket Information" msgstr "" #: src/usr/local/www/diag_sockets.php:107 -msgid "Socket information - explanation." +msgid "Socket Information" msgstr "" #: src/usr/local/www/diag_sockets.php:108 msgid "" -"This page shows the output for the commands: \"sockstat -4lL\" and " -"\"sockstat -6lL\".<br />Or in case of showing all sockets the output for: " -"\"sockstat -4\" and \"sockstat -6\".<br /><br />The information listed for " -"each socket is:<br /><br /> <dl class=\"dl-horizontal responsive\"><dt>USER</" -"dt>\t\t\t<dd>The user who owns the socket.</dd><dt>COMMAND</dt>\t\t<dd>The " -"command which holds the socket.</dd><dt>PID</dt>\t\t\t<dd>The process ID of " -"the command which holds the socket.</dd><dt>FD</dt>\t\t\t\t<dd>The file " -"descriptor number of the socket.</dd><dt>PROTO</dt>\t\t\t<dd>The transport " -"protocol associated with the socket for Internet sockets, or the type of " -"socket (stream or data-gram) for UNIX sockets.</dd><dt>ADDRESS</dt>\t" -"\t<dd>(UNIX sockets only) For bound sockets, this is the file-name of the " -"socket. For other sockets, it is the name, PID and file descriptor number of " -"the peer, or \"(none)\" if the socket is neither bound nor connected.</" -"dd><dt>LOCAL ADDRESS</dt> <dd>(Internet sockets only) The address the local " -"end of the socket is bound to (see getsockname(2)).</dd><dt>FOREIGN ADDRESS</" -"dt><dd>(Internet sockets only) The address the foreign end of the socket is " -"bound to (see getpeername(2)).</dd></dl>" -msgstr "" - -#: src/usr/local/www/diag_states_summary.php:146 +"This page shows all listening sockets by default, and shows both listening " +"and outbound connection sockets when <strong>Show all socket connections</" +"strong> is clicked.<br /><br />The information listed for each socket is:" +"<br /><br /><dl class=\"dl-horizontal responsive\"><dt>USER</dt>\t\t" +"\t<dd>The user who owns the socket.</dd><dt>COMMAND</dt>\t\t<dd>The command " +"which holds the socket.</dd><dt>PID</dt>\t\t\t<dd>The process ID of the " +"command which holds the socket.</dd><dt>FD</dt>\t\t\t<dd>The file descriptor " +"number of the socket.</dd><dt>PROTO</dt>\t\t\t<dd>The transport protocol " +"associated with the socket.</dd><dt>LOCAL ADDRESS</dt>\t\t<dd>The address " +"the local end of the socket is bound to.</dd><dt>FOREIGN ADDRESS</dt>" +"\t<dd>The address the foreign end of the socket is bound to.</dd></dl>" +msgstr "" + +#: src/usr/local/www/diag_states_summary.php:147 +msgid "Protocol counts" +msgstr "" + +#: src/usr/local/www/diag_states_summary.php:151 #: src/usr/local/www/firewall_aliases.php:159 #: src/usr/local/www/services_dnsmasq.php:321 #: src/usr/local/www/services_dnsmasq.php:395 #: src/usr/local/www/services_unbound.php:435 #: src/usr/local/www/services_unbound.php:511 -#: src/usr/local/www/widgets/widgets/ipsec.widget.php:221 +#: src/usr/local/www/widgets/widgets/ipsec.widget.php:222 msgid "IP" msgstr "" -#: src/usr/local/www/diag_states_summary.php:150 -#: src/usr/local/www/firewall_nat.php:208 +#: src/usr/local/www/diag_states_summary.php:155 +#: src/usr/local/www/firewall_nat.php:210 #: src/usr/local/www/status_logs_filter_summary.php:88 msgid "Source Ports" msgstr "" -#: src/usr/local/www/diag_states_summary.php:151 -#: src/usr/local/www/firewall_nat.php:210 +#: src/usr/local/www/diag_states_summary.php:156 +#: src/usr/local/www/firewall_nat.php:212 msgid "Dest. Ports" msgstr "" -#: src/usr/local/www/diag_states_summary.php:187 src/usr/local/www/head.inc:363 +#: src/usr/local/www/diag_states_summary.php:192 src/usr/local/www/head.inc:357 msgid "States Summary" msgstr "" -#: src/usr/local/www/diag_states_summary.php:191 +#: src/usr/local/www/diag_states_summary.php:196 msgid "By Source IP" msgstr "" -#: src/usr/local/www/diag_states_summary.php:192 +#: src/usr/local/www/diag_states_summary.php:197 msgid "By Destination IP" msgstr "" -#: src/usr/local/www/diag_states_summary.php:193 +#: src/usr/local/www/diag_states_summary.php:198 msgid "Total per IP" msgstr "" -#: src/usr/local/www/diag_states_summary.php:194 +#: src/usr/local/www/diag_states_summary.php:199 msgid "By IP Pair" msgstr "" -#: src/usr/local/www/diag_system_activity.php:31 src/usr/local/www/head.inc:364 +#: src/usr/local/www/diag_system_activity.php:31 src/usr/local/www/head.inc:358 msgid "System Activity" msgstr "" @@ -9803,13 +9539,13 @@ msgstr "" msgid "Gathering CPU activity, please wait..." msgstr "" -#: src/usr/local/www/diag_tables.php:29 src/usr/local/www/head.inc:353 +#: src/usr/local/www/diag_tables.php:29 src/usr/local/www/head.inc:347 msgid "Tables" msgstr "" #: src/usr/local/www/diag_tables.php:110 #, php-format -msgid "The %s database has been updated." +msgid "The %s file contents have been updated." msgstr "" #: src/usr/local/www/diag_tables.php:124 @@ -9829,50 +9565,58 @@ msgstr "" msgid "Table" msgstr "" -#: src/usr/local/www/diag_tables.php:152 +#: src/usr/local/www/diag_tables.php:139 +msgid "" +"Select a user-defined alias name or system table name to view its contents. " +"<br/><br/>Aliases become Tables when loaded into the active firewall " +"ruleset. The contents displayed on this page reflect the current addresses " +"inside tables used by the firewall." +msgstr "" + +#: src/usr/local/www/diag_tables.php:154 msgid "Empty Table" msgstr "" -#: src/usr/local/www/diag_tables.php:182 +#: src/usr/local/www/diag_tables.php:184 #, php-format msgid "Table last updated on %s." msgstr "" -#: src/usr/local/www/diag_tables.php:184 +#: src/usr/local/www/diag_tables.php:186 msgid "Date of last update of table is unknown." msgstr "" -#: src/usr/local/www/diag_tables.php:187 +#: src/usr/local/www/diag_tables.php:189 #, php-format msgid "%s records." msgstr "" -#: src/usr/local/www/diag_tables.php:187 +#: src/usr/local/www/diag_tables.php:189 msgid "." msgstr "" -#: src/usr/local/www/diag_tables.php:187 +#: src/usr/local/www/diag_tables.php:189 msgid "," msgstr "" -#: src/usr/local/www/diag_tables.php:199 +#: src/usr/local/www/diag_tables.php:201 msgid "Hide table comments." msgstr "" -#: src/usr/local/www/diag_tables.php:200 +#: src/usr/local/www/diag_tables.php:202 msgid "Show table comments." msgstr "" -#: src/usr/local/www/diag_tables.php:249 +#: src/usr/local/www/diag_tables.php:251 msgid "No entries exist in this table." msgstr "" -#: src/usr/local/www/diag_tables.php:286 +#: src/usr/local/www/diag_tables.php:288 msgid "Remove this entry" msgstr "" #: src/usr/local/www/diag_testport.php:38 -#: src/usr/local/www/diag_testport.php:217 src/usr/local/www/head.inc:355 +#: src/usr/local/www/diag_testport.php:217 src/usr/local/www/head.inc:349 msgid "Test Port" msgstr "" @@ -9938,7 +9682,7 @@ msgid "" msgstr "" #: src/usr/local/www/diag_testport.php:255 -#: src/usr/local/www/diag_traceroute.php:137 +#: src/usr/local/www/diag_traceroute.php:143 msgid "Select source address for the trace." msgstr "" @@ -9954,48 +9698,48 @@ msgstr "" msgid "Received Remote Text" msgstr "" -#: src/usr/local/www/diag_traceroute.php:55 +#: src/usr/local/www/diag_traceroute.php:58 msgid "ttl" msgstr "" -#: src/usr/local/www/diag_traceroute.php:59 +#: src/usr/local/www/diag_traceroute.php:62 #, php-format msgid "Maximum number of hops must be between 1 and %s" msgstr "" -#: src/usr/local/www/diag_traceroute.php:109 +#: src/usr/local/www/diag_traceroute.php:115 #, php-format msgid "Error: %s could not be traced/resolved" msgstr "" -#: src/usr/local/www/diag_traceroute.php:130 +#: src/usr/local/www/diag_traceroute.php:136 msgid "Select the protocol to use." msgstr "" -#: src/usr/local/www/diag_traceroute.php:141 +#: src/usr/local/www/diag_traceroute.php:147 msgid "Maximum number of hops" msgstr "" -#: src/usr/local/www/diag_traceroute.php:144 +#: src/usr/local/www/diag_traceroute.php:150 msgid "Select the maximum number of network hops to trace." msgstr "" -#: src/usr/local/www/diag_traceroute.php:148 +#: src/usr/local/www/diag_traceroute.php:154 msgid "Reverse Address Lookup" msgstr "" -#: src/usr/local/www/diag_traceroute.php:151 +#: src/usr/local/www/diag_traceroute.php:157 msgid "" "When checked, traceroute will attempt to perform a PTR lookup to locate " "hostnames for hops along the path. This will slow down the process as it has " "to wait for DNS replies." msgstr "" -#: src/usr/local/www/diag_traceroute.php:155 +#: src/usr/local/www/diag_traceroute.php:161 msgid "Use ICMP" msgstr "" -#: src/usr/local/www/diag_traceroute.php:158 +#: src/usr/local/www/diag_traceroute.php:164 msgid "" "By default, traceroute uses UDP but that may be blocked by some routers. " "Check this box to use ICMP instead, which may succeed. " @@ -10030,12 +9774,12 @@ msgid "" "Logs page" msgstr "" -#: src/usr/local/www/easyrule.php:78 src/usr/local/www/head.inc:315 +#: src/usr/local/www/easyrule.php:78 src/usr/local/www/head.inc:309 #: src/usr/local/www/status_logs.php:96 src/usr/local/www/status_logs.php:98 #: src/usr/local/www/status_logs_filter.php:102 #: src/usr/local/www/status_logs_filter_dynamic.php:82 #: src/usr/local/www/status_logs_filter_summary.php:67 -#: src/usr/local/www/status_logs_settings.php:180 +#: src/usr/local/www/status_logs_settings.php:188 #: src/usr/local/www/status_logs_vpn.php:84 msgid "System Logs" msgstr "" @@ -10060,17 +9804,17 @@ msgstr "" #: src/usr/local/www/firewall_aliases.php:171 #: src/usr/local/www/firewall_aliases_edit.php:38 #: src/usr/local/www/firewall_aliases_import.php:38 -#: src/usr/local/www/firewall_nat.php:173 +#: src/usr/local/www/firewall_nat.php:175 #: src/usr/local/www/firewall_nat_1to1.php:122 #: src/usr/local/www/firewall_nat_1to1_edit.php:248 #: src/usr/local/www/firewall_nat_edit.php:621 #: src/usr/local/www/firewall_nat_npt.php:122 #: src/usr/local/www/firewall_nat_npt_edit.php:178 #: src/usr/local/www/firewall_nat_out.php:206 -#: src/usr/local/www/firewall_nat_out_edit.php:363 +#: src/usr/local/www/firewall_nat_out_edit.php:378 #: src/usr/local/www/firewall_rules.php:42 -#: src/usr/local/www/firewall_rules.php:325 -#: src/usr/local/www/firewall_rules_edit.php:1043 +#: src/usr/local/www/firewall_rules.php:324 +#: src/usr/local/www/firewall_rules_edit.php:1038 #: src/usr/local/www/firewall_schedule.php:42 #: src/usr/local/www/firewall_schedule_edit.php:52 #: src/usr/local/www/firewall_shaper.php:41 @@ -10080,7 +9824,7 @@ msgstr "" #: src/usr/local/www/firewall_virtual_ip.php:238 #: src/usr/local/www/firewall_virtual_ip_edit.php:296 #: src/usr/local/www/status_logs_common.inc:89 -#: src/usr/local/www/status_logs_settings.php:205 +#: src/usr/local/www/status_logs_settings.php:213 msgid "Firewall" msgstr "" @@ -10089,11 +9833,11 @@ msgid "The alias list has been changed." msgstr "" #: src/usr/local/www/firewall_aliases.php:181 -#: src/usr/local/www/firewall_nat.php:182 +#: src/usr/local/www/firewall_nat.php:184 #: src/usr/local/www/firewall_nat_1to1.php:131 #: src/usr/local/www/firewall_nat_npt.php:131 #: src/usr/local/www/firewall_nat_out.php:215 -#: src/usr/local/www/firewall_rules.php:336 +#: src/usr/local/www/firewall_rules.php:335 #: src/usr/local/www/firewall_shaper.php:377 #: src/usr/local/www/firewall_shaper_queues.php:206 #: src/usr/local/www/firewall_shaper_vinterface.php:377 @@ -10106,8 +9850,8 @@ msgstr "" #: src/usr/local/www/load_balancer_virtual_server.php:121 #: src/usr/local/www/services_captiveportal_mac.php:160 #: src/usr/local/www/services_captiveportal_zones.php:68 -#: src/usr/local/www/services_dhcp.php:717 -#: src/usr/local/www/services_dhcpv6.php:495 +#: src/usr/local/www/services_dhcp.php:723 +#: src/usr/local/www/services_dhcpv6.php:490 #: src/usr/local/www/services_dnsmasq.php:195 #: src/usr/local/www/services_igmpproxy.php:76 #: src/usr/local/www/services_pppoe.php:91 @@ -10143,19 +9887,19 @@ msgid "Delete alias" msgstr "" #: src/usr/local/www/firewall_aliases.php:277 -#: src/usr/local/www/firewall_nat.php:442 -#: src/usr/local/www/firewall_nat.php:446 +#: src/usr/local/www/firewall_nat.php:444 +#: src/usr/local/www/firewall_nat.php:448 #: src/usr/local/www/firewall_nat_1to1.php:237 #: src/usr/local/www/firewall_nat_1to1.php:241 #: src/usr/local/www/firewall_nat_npt.php:226 #: src/usr/local/www/firewall_nat_npt.php:230 #: src/usr/local/www/firewall_nat_out.php:495 #: src/usr/local/www/firewall_nat_out.php:499 -#: src/usr/local/www/firewall_rules.php:808 -#: src/usr/local/www/firewall_rules.php:812 +#: src/usr/local/www/firewall_rules.php:807 +#: src/usr/local/www/firewall_rules.php:811 #: src/usr/local/www/firewall_schedule.php:245 #: src/usr/local/www/firewall_virtual_ip.php:338 -#: src/usr/local/www/interfaces.php:1861 src/usr/local/www/interfaces.php:3167 +#: src/usr/local/www/interfaces.php:1864 src/usr/local/www/interfaces.php:3175 #: src/usr/local/www/interfaces_assign.php:566 #: src/usr/local/www/interfaces_bridge.php:156 #: src/usr/local/www/interfaces_gif.php:130 @@ -10170,17 +9914,17 @@ msgstr "" #: src/usr/local/www/load_balancer_pool.php:181 #: src/usr/local/www/load_balancer_virtual_server.php:203 #: src/usr/local/www/pkg.php:575 src/usr/local/www/pkg_edit.php:1442 -#: src/usr/local/www/services_captiveportal_filemanager.php:236 +#: src/usr/local/www/services_captiveportal_filemanager.php:234 #: src/usr/local/www/services_captiveportal_hostname.php:162 #: src/usr/local/www/services_captiveportal_ip.php:159 #: src/usr/local/www/services_captiveportal_mac.php:222 -#: src/usr/local/www/services_captiveportal_vouchers.php:469 +#: src/usr/local/www/services_captiveportal_vouchers.php:438 #: src/usr/local/www/services_captiveportal_zones.php:122 #: src/usr/local/www/services_checkip.php:155 -#: src/usr/local/www/services_dhcp.php:859 -#: src/usr/local/www/services_dhcp.php:1257 -#: src/usr/local/www/services_dhcp.php:1356 -#: src/usr/local/www/services_dhcpv6.php:1029 +#: src/usr/local/www/services_dhcp.php:872 +#: src/usr/local/www/services_dhcp.php:1270 +#: src/usr/local/www/services_dhcp.php:1369 +#: src/usr/local/www/services_dhcpv6.php:1024 #: src/usr/local/www/services_dnsmasq.php:384 #: src/usr/local/www/services_dnsmasq.php:431 #: src/usr/local/www/services_dyndns.php:212 @@ -10189,29 +9933,29 @@ msgstr "" #: src/usr/local/www/services_ntpd_acls.php:299 #: src/usr/local/www/services_pppoe.php:147 #: src/usr/local/www/services_rfc2136.php:201 -#: src/usr/local/www/services_router_advertisements.php:425 +#: src/usr/local/www/services_router_advertisements.php:420 #: src/usr/local/www/services_unbound.php:500 #: src/usr/local/www/services_unbound.php:549 #: src/usr/local/www/services_unbound_acls.php:335 #: src/usr/local/www/services_wol.php:207 #: src/usr/local/www/system_authservers.php:464 -#: src/usr/local/www/system_camanager.php:424 -#: src/usr/local/www/system_certmanager.php:756 -#: src/usr/local/www/system_certmanager.php:1061 +#: src/usr/local/www/system_camanager.php:429 +#: src/usr/local/www/system_certmanager.php:769 +#: src/usr/local/www/system_certmanager.php:1082 #: src/usr/local/www/system_crlmanager.php:535 #: src/usr/local/www/system_gateway_groups.php:188 #: src/usr/local/www/system_gateways.php:317 -#: src/usr/local/www/system_groupmanager.php:257 -#: src/usr/local/www/system_groupmanager.php:339 +#: src/usr/local/www/system_groupmanager.php:251 +#: src/usr/local/www/system_groupmanager.php:333 #: src/usr/local/www/system_routes.php:299 -#: src/usr/local/www/system_usermanager.php:481 -#: src/usr/local/www/system_usermanager.php:527 -#: src/usr/local/www/system_usermanager.php:615 +#: src/usr/local/www/system_usermanager.php:475 +#: src/usr/local/www/system_usermanager.php:521 +#: src/usr/local/www/system_usermanager.php:609 #: src/usr/local/www/vpn_ipsec_keys.php:168 #: src/usr/local/www/vpn_l2tp_users.php:124 #: src/usr/local/www/vpn_openvpn_client.php:831 #: src/usr/local/www/vpn_openvpn_csc.php:678 -#: src/usr/local/www/vpn_openvpn_server.php:1213 +#: src/usr/local/www/vpn_openvpn_server.php:1228 msgid "Add" msgstr "" @@ -10234,9 +9978,9 @@ msgstr "" #: src/usr/local/www/firewall_nat_1to1_edit.php:248 #: src/usr/local/www/firewall_nat_edit.php:621 #: src/usr/local/www/firewall_nat_npt_edit.php:178 -#: src/usr/local/www/firewall_nat_out_edit.php:363 -#: src/usr/local/www/firewall_rules.php:763 -#: src/usr/local/www/firewall_rules_edit.php:1048 +#: src/usr/local/www/firewall_nat_out_edit.php:378 +#: src/usr/local/www/firewall_rules.php:762 +#: src/usr/local/www/firewall_rules_edit.php:1043 #: src/usr/local/www/firewall_schedule_edit.php:52 #: src/usr/local/www/firewall_virtual_ip_edit.php:296 #: src/usr/local/www/interfaces_bridge_edit.php:384 @@ -10244,7 +9988,7 @@ msgstr "" #: src/usr/local/www/interfaces_gre_edit.php:155 #: src/usr/local/www/interfaces_groups_edit.php:33 #: src/usr/local/www/interfaces_lagg_edit.php:223 -#: src/usr/local/www/interfaces_ppps_edit.php:440 +#: src/usr/local/www/interfaces_ppps_edit.php:460 #: src/usr/local/www/interfaces_qinq_edit.php:29 #: src/usr/local/www/interfaces_vlan_edit.php:172 #: src/usr/local/www/interfaces_wireless_edit.php:167 @@ -10264,21 +10008,21 @@ msgstr "" #: src/usr/local/www/services_wol_edit.php:104 #: src/usr/local/www/system_advanced_sysctl.php:124 #: src/usr/local/www/system_authservers.php:406 -#: src/usr/local/www/system_camanager.php:314 -#: src/usr/local/www/system_certmanager.php:516 +#: src/usr/local/www/system_camanager.php:319 +#: src/usr/local/www/system_certmanager.php:521 #: src/usr/local/www/system_crlmanager.php:256 #: src/usr/local/www/system_gateway_groups_edit.php:147 #: src/usr/local/www/system_gateways_edit.php:538 -#: src/usr/local/www/system_groupmanager.php:266 +#: src/usr/local/www/system_groupmanager.php:260 #: src/usr/local/www/system_groupmanager_addprivs.php:36 #: src/usr/local/www/system_routes_edit.php:224 -#: src/usr/local/www/system_usermanager.php:536 +#: src/usr/local/www/system_usermanager.php:530 #: src/usr/local/www/system_usermanager_addprivs.php:36 #: src/usr/local/www/vpn_ipsec_keys_edit.php:122 #: src/usr/local/www/vpn_l2tp_users_edit.php:29 #: src/usr/local/www/vpn_openvpn_client.php:395 #: src/usr/local/www/vpn_openvpn_csc.php:281 -#: src/usr/local/www/vpn_openvpn_server.php:562 +#: src/usr/local/www/vpn_openvpn_server.php:566 msgid "Edit" msgstr "" @@ -10555,9 +10299,9 @@ msgstr "" #: src/usr/local/www/firewall_nat_1to1_edit.php:463 #: src/usr/local/www/firewall_nat_edit.php:719 #: src/usr/local/www/firewall_nat_edit.php:786 -#: src/usr/local/www/firewall_nat_out_edit.php:481 -#: src/usr/local/www/firewall_nat_out_edit.php:505 -#: src/usr/local/www/firewall_rules_edit.php:416 +#: src/usr/local/www/firewall_nat_out_edit.php:496 +#: src/usr/local/www/firewall_nat_out_edit.php:520 +#: src/usr/local/www/firewall_rules_edit.php:411 #: src/usr/local/www/firewall_virtual_ip.php:264 #: src/usr/local/www/firewall_virtual_ip_edit.php:96 #: src/usr/local/www/firewall_virtual_ip_edit.php:330 @@ -10565,7 +10309,7 @@ msgstr "" #: src/usr/local/www/load_balancer_monitor_edit.php:86 #: src/usr/local/www/load_balancer_monitor_edit.php:284 #: src/usr/local/www/services_captiveportal.php:974 -#: src/usr/local/www/services_dhcp.php:1234 +#: src/usr/local/www/services_dhcp.php:1247 #: src/usr/local/www/services_igmpproxy.php:89 #: src/usr/local/www/services_igmpproxy_edit.php:169 #: src/usr/local/www/status_logs_vpn.php:177 @@ -10575,12 +10319,12 @@ msgstr "" #: src/usr/local/www/system_authservers.php:253 #: src/usr/local/www/system_authservers.php:436 #: src/usr/local/www/system_authservers.php:493 -#: src/usr/local/www/system_certmanager.php:723 -#: src/usr/local/www/system_certmanager.php:731 +#: src/usr/local/www/system_certmanager.php:736 +#: src/usr/local/www/system_certmanager.php:744 #: src/usr/local/www/vpn_ipsec_keys.php:101 -#: src/usr/local/www/vpn_ipsec_phase2.php:527 -#: src/usr/local/www/vpn_ipsec_phase2.php:553 -#: src/usr/local/www/vpn_ipsec_phase2.php:573 +#: src/usr/local/www/vpn_ipsec_phase2.php:522 +#: src/usr/local/www/vpn_ipsec_phase2.php:548 +#: src/usr/local/www/vpn_ipsec_phase2.php:568 msgid "Type" msgstr "" @@ -10649,12 +10393,12 @@ msgstr "" msgid "Aliases to import" msgstr "" -#: src/usr/local/www/firewall_nat.php:165 +#: src/usr/local/www/firewall_nat.php:167 msgid "Firewall: NAT: Port forward, enable/disable NAT rule" msgstr "" -#: src/usr/local/www/firewall_nat.php:173 -#: src/usr/local/www/firewall_nat.php:186 +#: src/usr/local/www/firewall_nat.php:175 +#: src/usr/local/www/firewall_nat.php:188 #: src/usr/local/www/firewall_nat_1to1.php:135 #: src/usr/local/www/firewall_nat_edit.php:621 #: src/usr/local/www/firewall_nat_npt.php:135 @@ -10662,14 +10406,14 @@ msgstr "" msgid "Port Forward" msgstr "" -#: src/usr/local/www/firewall_nat.php:181 +#: src/usr/local/www/firewall_nat.php:183 #: src/usr/local/www/firewall_nat_1to1.php:130 #: src/usr/local/www/firewall_nat_npt.php:130 #: src/usr/local/www/firewall_nat_out.php:214 msgid "The NAT configuration has been changed." msgstr "" -#: src/usr/local/www/firewall_nat.php:187 +#: src/usr/local/www/firewall_nat.php:189 #: src/usr/local/www/firewall_nat_1to1.php:122 #: src/usr/local/www/firewall_nat_1to1.php:136 #: src/usr/local/www/firewall_nat_1to1_edit.php:248 @@ -10678,16 +10422,16 @@ msgstr "" msgid "1:1" msgstr "" -#: src/usr/local/www/firewall_nat.php:188 +#: src/usr/local/www/firewall_nat.php:190 #: src/usr/local/www/firewall_nat_1to1.php:137 #: src/usr/local/www/firewall_nat_npt.php:137 #: src/usr/local/www/firewall_nat_out.php:206 #: src/usr/local/www/firewall_nat_out.php:221 -#: src/usr/local/www/firewall_nat_out_edit.php:363 +#: src/usr/local/www/firewall_nat_out_edit.php:378 msgid "Outbound" msgstr "" -#: src/usr/local/www/firewall_nat.php:189 +#: src/usr/local/www/firewall_nat.php:191 #: src/usr/local/www/firewall_nat_1to1.php:138 #: src/usr/local/www/firewall_nat_npt.php:122 #: src/usr/local/www/firewall_nat_npt.php:138 @@ -10696,123 +10440,123 @@ msgstr "" msgid "NPt" msgstr "" -#: src/usr/local/www/firewall_nat.php:197 +#: src/usr/local/www/firewall_nat.php:199 #: src/usr/local/www/firewall_rules.php:42 -#: src/usr/local/www/firewall_rules.php:325 -#: src/usr/local/www/firewall_rules_edit.php:1043 -#: src/usr/local/www/head.inc:250 +#: src/usr/local/www/firewall_rules.php:324 +#: src/usr/local/www/firewall_rules_edit.php:1038 +#: src/usr/local/www/head.inc:248 msgid "Rules" msgstr "" -#: src/usr/local/www/firewall_nat.php:209 +#: src/usr/local/www/firewall_nat.php:211 msgid "Dest. Address" msgstr "" -#: src/usr/local/www/firewall_nat.php:211 +#: src/usr/local/www/firewall_nat.php:213 msgid "NAT IP" msgstr "" -#: src/usr/local/www/firewall_nat.php:212 +#: src/usr/local/www/firewall_nat.php:214 msgid "NAT Ports" msgstr "" -#: src/usr/local/www/firewall_nat.php:272 +#: src/usr/local/www/firewall_nat.php:274 #: src/usr/local/www/firewall_nat_1to1.php:178 #: src/usr/local/www/firewall_nat_npt.php:179 -#: src/usr/local/www/firewall_rules.php:495 src/usr/local/www/vpn_ipsec.php:275 +#: src/usr/local/www/firewall_rules.php:494 src/usr/local/www/vpn_ipsec.php:275 #: src/usr/local/www/vpn_ipsec.php:425 msgid "click to toggle enabled/disabled status" msgstr "" -#: src/usr/local/www/firewall_nat.php:274 +#: src/usr/local/www/firewall_nat.php:276 #: src/usr/local/www/firewall_nat_1to1.php:180 msgid "Negated: This rule excludes NAT from a later rule" msgstr "" -#: src/usr/local/www/firewall_nat.php:282 +#: src/usr/local/www/firewall_nat.php:284 msgid "All traffic matching this NAT entry is passed" msgstr "" -#: src/usr/local/www/firewall_nat.php:286 +#: src/usr/local/www/firewall_nat.php:288 #, php-format msgid "Firewall rule ID %s is managed by this rule" msgstr "" -#: src/usr/local/www/firewall_nat.php:313 -#: src/usr/local/www/firewall_nat.php:330 -#: src/usr/local/www/firewall_nat.php:348 -#: src/usr/local/www/firewall_nat.php:365 -#: src/usr/local/www/firewall_nat.php:382 -#: src/usr/local/www/firewall_nat.php:400 -#: src/usr/local/www/firewall_rules.php:695 -#: src/usr/local/www/firewall_rules.php:704 -#: src/usr/local/www/firewall_rules.php:713 -#: src/usr/local/www/firewall_rules.php:722 +#: src/usr/local/www/firewall_nat.php:315 +#: src/usr/local/www/firewall_nat.php:332 +#: src/usr/local/www/firewall_nat.php:350 +#: src/usr/local/www/firewall_nat.php:367 +#: src/usr/local/www/firewall_nat.php:384 +#: src/usr/local/www/firewall_nat.php:402 +#: src/usr/local/www/firewall_rules.php:694 +#: src/usr/local/www/firewall_rules.php:703 +#: src/usr/local/www/firewall_rules.php:712 +#: src/usr/local/www/firewall_rules.php:721 msgid "Alias details" msgstr "" -#: src/usr/local/www/firewall_nat.php:418 +#: src/usr/local/www/firewall_nat.php:420 msgid "Edit rule" msgstr "" -#: src/usr/local/www/firewall_nat.php:419 +#: src/usr/local/www/firewall_nat.php:421 msgid "Add a new NAT based on this one" msgstr "" -#: src/usr/local/www/firewall_nat.php:420 +#: src/usr/local/www/firewall_nat.php:422 msgid "Delete rule" msgstr "" -#: src/usr/local/www/firewall_nat.php:440 -#: src/usr/local/www/firewall_rules.php:806 +#: src/usr/local/www/firewall_nat.php:442 +#: src/usr/local/www/firewall_rules.php:805 msgid "Add rule to the top of the list" msgstr "" -#: src/usr/local/www/firewall_nat.php:444 -#: src/usr/local/www/firewall_rules.php:810 +#: src/usr/local/www/firewall_nat.php:446 +#: src/usr/local/www/firewall_rules.php:809 msgid "Add rule to the end of the list" msgstr "" -#: src/usr/local/www/firewall_nat.php:448 -#: src/usr/local/www/firewall_rules.php:814 +#: src/usr/local/www/firewall_nat.php:450 +#: src/usr/local/www/firewall_rules.php:813 msgid "Delete selected rules" msgstr "" -#: src/usr/local/www/firewall_nat.php:452 -#: src/usr/local/www/firewall_rules.php:818 +#: src/usr/local/www/firewall_nat.php:454 +#: src/usr/local/www/firewall_rules.php:817 msgid "Save rule order" msgstr "" -#: src/usr/local/www/firewall_nat.php:456 -#: src/usr/local/www/firewall_rules.php:822 +#: src/usr/local/www/firewall_nat.php:458 +#: src/usr/local/www/firewall_rules.php:821 msgid "Add separator" msgstr "" -#: src/usr/local/www/firewall_nat.php:458 -#: src/usr/local/www/firewall_rules.php:824 +#: src/usr/local/www/firewall_nat.php:460 +#: src/usr/local/www/firewall_rules.php:823 msgid "Separator" msgstr "" -#: src/usr/local/www/firewall_nat.php:469 -#: src/usr/local/www/firewall_rules.php:872 +#: src/usr/local/www/firewall_nat.php:471 +#: src/usr/local/www/firewall_rules.php:871 msgid "Enter a description, Save, then drag to final location." msgstr "" -#: src/usr/local/www/firewall_nat.php:505 +#: src/usr/local/www/firewall_nat.php:507 msgid "" "One or more Port Forward rules have been moved but have not yet been saved" msgstr "" -#: src/usr/local/www/firewall_nat.php:520 -#: src/usr/local/www/firewall_rules.php:833 +#: src/usr/local/www/firewall_nat.php:522 +#: src/usr/local/www/firewall_rules.php:832 msgid "Legend" msgstr "" -#: src/usr/local/www/firewall_nat.php:521 +#: src/usr/local/www/firewall_nat.php:523 #: src/usr/local/www/firewall_nat_edit.php:893 #: src/usr/local/www/firewall_nat_edit.php:928 -#: src/usr/local/www/firewall_rules.php:834 -#: src/usr/local/www/firewall_rules_edit.php:1097 +#: src/usr/local/www/firewall_rules.php:833 +#: src/usr/local/www/firewall_rules_edit.php:1092 #: src/usr/local/www/services_captiveportal_mac.php:62 #: src/usr/local/www/services_captiveportal_mac_edit.php:204 #: src/usr/local/www/status_logs_common.inc:418 @@ -10821,7 +10565,7 @@ msgstr "" msgid "Pass" msgstr "" -#: src/usr/local/www/firewall_nat.php:522 +#: src/usr/local/www/firewall_nat.php:524 msgid "Linked rule" msgstr "" @@ -10892,7 +10636,7 @@ msgstr "" #: src/usr/local/www/firewall_nat_1to1.php:256 #: src/usr/local/www/firewall_nat_out.php:643 -#: src/usr/local/www/firewall_nat_out_edit.php:549 +#: src/usr/local/www/firewall_nat_out_edit.php:564 #: src/usr/local/www/status_carp.php:173 #: src/usr/local/www/system_gateway_groups_edit.php:287 #: src/usr/local/www/system_gateway_groups_edit.php:307 @@ -10914,7 +10658,7 @@ msgid "" msgstr "" #: src/usr/local/www/firewall_nat_1to1_edit.php:112 -#: src/usr/local/www/firewall_nat_out_edit.php:145 +#: src/usr/local/www/firewall_nat_out_edit.php:146 #, php-format msgid "" "Invalid characters detected (%s). Please remove invalid characters and save " @@ -10950,15 +10694,15 @@ msgstr "" #: src/usr/local/www/firewall_nat_1to1_edit.php:189 #: src/usr/local/www/firewall_nat_edit.php:300 -#: src/usr/local/www/firewall_rules_edit.php:523 +#: src/usr/local/www/firewall_rules_edit.php:518 #, php-format msgid "%s is not a valid destination IP address or alias." msgstr "" #: src/usr/local/www/firewall_nat_1to1_edit.php:193 #: src/usr/local/www/firewall_nat_edit.php:306 -#: src/usr/local/www/firewall_nat_out_edit.php:205 -#: src/usr/local/www/firewall_rules_edit.php:526 +#: src/usr/local/www/firewall_nat_out_edit.php:206 +#: src/usr/local/www/firewall_rules_edit.php:521 msgid "A valid destination bit count must be specified." msgstr "" @@ -10970,15 +10714,15 @@ msgstr "" #: src/usr/local/www/firewall_nat_1to1_edit.php:296 #: src/usr/local/www/firewall_nat_edit.php:518 #: src/usr/local/www/firewall_nat_edit.php:558 -#: src/usr/local/www/firewall_nat_out_edit.php:480 -#: src/usr/local/www/firewall_nat_out_edit.php:504 -#: src/usr/local/www/firewall_rules_edit.php:1289 +#: src/usr/local/www/firewall_nat_out_edit.php:495 +#: src/usr/local/www/firewall_nat_out_edit.php:519 +#: src/usr/local/www/firewall_rules_edit.php:1284 #: src/usr/local/www/firewall_virtual_ip_edit.php:379 #: src/usr/local/www/system_routes.php:243 #: src/usr/local/www/vpn_ipsec_mobile.php:488 -#: src/usr/local/www/vpn_ipsec_phase2.php:526 -#: src/usr/local/www/vpn_ipsec_phase2.php:546 -#: src/usr/local/www/vpn_ipsec_phase2.php:572 +#: src/usr/local/www/vpn_ipsec_phase2.php:521 +#: src/usr/local/www/vpn_ipsec_phase2.php:541 +#: src/usr/local/www/vpn_ipsec_phase2.php:567 msgid "Network" msgstr "" @@ -10986,8 +10730,8 @@ msgstr "" #: src/usr/local/www/firewall_nat_1to1_edit.php:299 #: src/usr/local/www/firewall_nat_edit.php:521 #: src/usr/local/www/firewall_nat_edit.php:561 -#: src/usr/local/www/firewall_rules_edit.php:1300 -#: src/usr/local/www/guiconfig.inc:218 +#: src/usr/local/www/firewall_rules_edit.php:1295 +#: src/usr/local/www/guiconfig.inc:219 msgid "PPPoE clients" msgstr "" @@ -10995,22 +10739,22 @@ msgstr "" #: src/usr/local/www/firewall_nat_1to1_edit.php:303 #: src/usr/local/www/firewall_nat_edit.php:525 #: src/usr/local/www/firewall_nat_edit.php:565 -#: src/usr/local/www/firewall_rules_edit.php:1303 -#: src/usr/local/www/guiconfig.inc:219 +#: src/usr/local/www/firewall_rules_edit.php:1298 +#: src/usr/local/www/guiconfig.inc:220 msgid "L2TP clients" msgstr "" #: src/usr/local/www/firewall_nat_1to1_edit.php:296 #: src/usr/local/www/firewall_nat_edit.php:518 #: src/usr/local/www/firewall_nat_edit.php:558 -#: src/usr/local/www/firewall_rules_edit.php:1288 +#: src/usr/local/www/firewall_rules_edit.php:1283 msgid "Single host or alias" msgstr "" #: src/usr/local/www/firewall_nat_1to1_edit.php:296 #: src/usr/local/www/firewall_nat_edit.php:558 -#: src/usr/local/www/firewall_nat_out_edit.php:480 -#: src/usr/local/www/firewall_rules_edit.php:1297 +#: src/usr/local/www/firewall_nat_out_edit.php:495 +#: src/usr/local/www/firewall_rules_edit.php:1292 msgid "This Firewall (self)" msgstr "" @@ -11034,7 +10778,7 @@ msgstr "" #: src/usr/local/www/firewall_nat_edit.php:656 #: src/usr/local/www/firewall_nat_npt_edit.php:155 #: src/usr/local/www/firewall_rules.php:143 -#: src/usr/local/www/firewall_rules_edit.php:1023 +#: src/usr/local/www/firewall_rules_edit.php:1018 msgid "L2TP VPN" msgstr "" @@ -11042,8 +10786,8 @@ msgstr "" #: src/usr/local/www/firewall_nat_edit.php:661 #: src/usr/local/www/firewall_nat_npt_edit.php:161 #: src/usr/local/www/firewall_rules.php:150 -#: src/usr/local/www/firewall_rules_edit.php:1027 -#: src/usr/local/www/head.inc:273 src/usr/local/www/services_pppoe.php:82 +#: src/usr/local/www/firewall_rules_edit.php:1022 +#: src/usr/local/www/head.inc:271 src/usr/local/www/services_pppoe.php:82 #: src/usr/local/www/services_pppoe.php:96 #: src/usr/local/www/services_pppoe_edit.php:280 msgid "PPPoE Server" @@ -11053,23 +10797,23 @@ msgstr "" #: src/usr/local/www/firewall_nat_edit.php:666 #: src/usr/local/www/firewall_nat_npt_edit.php:167 #: src/usr/local/www/firewall_rules.php:157 -#: src/usr/local/www/firewall_rules_edit.php:1032 -#: src/usr/local/www/head.inc:288 src/usr/local/www/head.inc:304 -#: src/usr/local/www/status_graph.php:54 src/usr/local/www/status_graph.php:234 +#: src/usr/local/www/firewall_rules_edit.php:1027 +#: src/usr/local/www/head.inc:286 src/usr/local/www/head.inc:302 +#: src/usr/local/www/status_graph.php:42 src/usr/local/www/status_graph.php:442 #: src/usr/local/www/status_ipsec.php:456 #: src/usr/local/www/status_ipsec_leases.php:32 #: src/usr/local/www/status_ipsec_sad.php:36 #: src/usr/local/www/status_ipsec_spd.php:39 #: src/usr/local/www/status_logs.php:47 #: src/usr/local/www/status_logs_common.inc:92 -#: src/usr/local/www/status_logs_settings.php:208 +#: src/usr/local/www/status_logs_settings.php:216 #: src/usr/local/www/vpn_ipsec.php:219 src/usr/local/www/vpn_ipsec_keys.php:72 #: src/usr/local/www/vpn_ipsec_keys_edit.php:122 #: src/usr/local/www/vpn_ipsec_mobile.php:306 -#: src/usr/local/www/vpn_ipsec_phase1.php:631 -#: src/usr/local/www/vpn_ipsec_phase1.php:633 -#: src/usr/local/www/vpn_ipsec_phase2.php:408 -#: src/usr/local/www/vpn_ipsec_phase2.php:411 +#: src/usr/local/www/vpn_ipsec_phase1.php:627 +#: src/usr/local/www/vpn_ipsec_phase1.php:629 +#: src/usr/local/www/vpn_ipsec_phase2.php:403 +#: src/usr/local/www/vpn_ipsec_phase2.php:406 #: src/usr/local/www/vpn_ipsec_settings.php:202 #: src/usr/local/www/widgets/include/ipsec.inc:22 msgid "IPsec" @@ -11077,7 +10821,7 @@ msgstr "" #: src/usr/local/www/firewall_nat_1to1_edit.php:413 #: src/usr/local/www/firewall_nat_edit.php:679 -#: src/usr/local/www/firewall_nat_out_edit.php:463 +#: src/usr/local/www/firewall_nat_out_edit.php:478 msgid "" "Choose which interface this rule applies to. In most cases \"WAN\" is " "specified." @@ -11116,15 +10860,15 @@ msgstr "" #: src/usr/local/www/firewall_nat_edit.php:772 #: src/usr/local/www/firewall_nat_out.php:281 #: src/usr/local/www/firewall_nat_out.php:534 -#: src/usr/local/www/firewall_nat_out_edit.php:151 -#: src/usr/local/www/firewall_nat_out_edit.php:498 -#: src/usr/local/www/firewall_rules.php:379 -#: src/usr/local/www/firewall_rules_edit.php:419 +#: src/usr/local/www/firewall_nat_out_edit.php:152 +#: src/usr/local/www/firewall_nat_out_edit.php:513 +#: src/usr/local/www/firewall_rules.php:378 +#: src/usr/local/www/firewall_rules_edit.php:414 #: src/usr/local/www/status_ipsec_sad.php:66 #: src/usr/local/www/status_ipsec_spd.php:59 #: src/usr/local/www/status_logs_filter.php:162 #: src/usr/local/www/status_logs_filter_dynamic.php:393 -#: src/usr/local/www/widgets/widgets/ipsec.widget.php:204 +#: src/usr/local/www/widgets/widgets/ipsec.widget.php:205 #: src/usr/local/www/widgets/widgets/log.widget.php:105 msgid "Destination" msgstr "" @@ -11142,9 +10886,9 @@ msgstr "" #: src/usr/local/www/firewall_nat_1to1_edit.php:489 #: src/usr/local/www/firewall_nat_edit.php:886 -#: src/usr/local/www/firewall_rules.php:770 +#: src/usr/local/www/firewall_rules.php:769 #: src/usr/local/www/services_dyndns_edit.php:258 -#: src/usr/local/www/vpn_ipsec_phase1.php:859 +#: src/usr/local/www/vpn_ipsec_phase1.php:855 #: src/usr/local/www/vpn_openvpn_csc.php:328 msgid "Disable" msgstr "" @@ -11185,7 +10929,7 @@ msgid "Redirect target IP must be IPv4." msgstr "" #: src/usr/local/www/firewall_nat_edit.php:264 -#: src/usr/local/www/firewall_rules_edit.php:454 +#: src/usr/local/www/firewall_rules_edit.php:449 #, php-format msgid "" "%s is not a valid start source port. It must be a port alias or integer " @@ -11193,7 +10937,7 @@ msgid "" msgstr "" #: src/usr/local/www/firewall_nat_edit.php:267 -#: src/usr/local/www/firewall_rules_edit.php:457 +#: src/usr/local/www/firewall_rules_edit.php:452 #, php-format msgid "" "%s is not a valid end source port. It must be a port alias or integer " @@ -11201,7 +10945,7 @@ msgid "" msgstr "" #: src/usr/local/www/firewall_nat_edit.php:270 -#: src/usr/local/www/firewall_rules_edit.php:460 +#: src/usr/local/www/firewall_rules_edit.php:455 #, php-format msgid "" "%s is not a valid start destination port. It must be a port alias or integer " @@ -11209,7 +10953,7 @@ msgid "" msgstr "" #: src/usr/local/www/firewall_nat_edit.php:273 -#: src/usr/local/www/firewall_rules_edit.php:463 +#: src/usr/local/www/firewall_rules_edit.php:458 #, php-format msgid "" "%s is not a valid end destination port. It must be a port alias or integer " @@ -11224,7 +10968,7 @@ msgid "" msgstr "" #: src/usr/local/www/firewall_nat_edit.php:288 -#: src/usr/local/www/firewall_rules_edit.php:515 +#: src/usr/local/www/firewall_rules_edit.php:510 #, php-format msgid "%s is not a valid source IP address or alias." msgstr "" @@ -11235,8 +10979,8 @@ msgid "Source must be IPv4." msgstr "" #: src/usr/local/www/firewall_nat_edit.php:294 -#: src/usr/local/www/firewall_nat_out_edit.php:195 -#: src/usr/local/www/firewall_rules_edit.php:518 +#: src/usr/local/www/firewall_nat_out_edit.php:196 +#: src/usr/local/www/firewall_rules_edit.php:513 msgid "A valid source bit count must be specified." msgstr "" @@ -11279,44 +11023,43 @@ msgstr "" #: src/usr/local/www/firewall_nat_edit.php:692 #: src/usr/local/www/firewall_nat_edit.php:1178 -#: src/usr/local/www/firewall_rules_edit.php:1333 -#: src/usr/local/www/firewall_rules_edit.php:1413 -#: src/usr/local/www/firewall_rules_edit.php:1732 -#: src/usr/local/www/firewall_rules_edit.php:1804 +#: src/usr/local/www/firewall_rules_edit.php:1401 +#: src/usr/local/www/firewall_rules_edit.php:1720 +#: src/usr/local/www/firewall_rules_edit.php:1792 #: src/usr/local/www/interfaces_bridge_edit.php:416 #: src/usr/local/www/interfaces_bridge_edit.php:661 -#: src/usr/local/www/interfaces_ppps_edit.php:800 -#: src/usr/local/www/interfaces_ppps_edit.php:1015 -#: src/usr/local/www/services_dhcp.php:969 -#: src/usr/local/www/services_dhcp.php:1019 -#: src/usr/local/www/services_dhcp.php:1048 -#: src/usr/local/www/services_dhcp.php:1075 -#: src/usr/local/www/services_dhcp.php:1096 -#: src/usr/local/www/services_dhcp.php:1118 -#: src/usr/local/www/services_dhcp.php:1175 -#: src/usr/local/www/services_dhcp.php:1397 -#: src/usr/local/www/services_dhcp.php:1432 -#: src/usr/local/www/services_dhcp.php:1467 -#: src/usr/local/www/services_dhcp.php:1501 -#: src/usr/local/www/services_dhcp.php:1535 -#: src/usr/local/www/services_dhcp.php:1570 -#: src/usr/local/www/services_dhcp.php:1609 -#: src/usr/local/www/services_dhcp_edit.php:562 -#: src/usr/local/www/services_dhcp_edit.php:610 -#: src/usr/local/www/services_dhcp_edit.php:646 -#: src/usr/local/www/services_dhcp_edit.php:703 -#: src/usr/local/www/services_dhcp_edit.php:738 -#: src/usr/local/www/services_dhcp_edit.php:772 -#: src/usr/local/www/services_dhcpv6.php:727 -#: src/usr/local/www/services_dhcpv6.php:795 -#: src/usr/local/www/services_dhcpv6.php:831 -#: src/usr/local/www/services_dhcpv6.php:852 -#: src/usr/local/www/services_dhcpv6.php:880 -#: src/usr/local/www/services_dhcpv6.php:1074 -#: src/usr/local/www/services_dhcpv6.php:1109 -#: src/usr/local/www/services_dhcpv6.php:1143 -#: src/usr/local/www/services_dhcpv6.php:1178 -#: src/usr/local/www/services_dhcpv6.php:1214 +#: src/usr/local/www/interfaces_ppps_edit.php:822 +#: src/usr/local/www/interfaces_ppps_edit.php:1037 +#: src/usr/local/www/services_dhcp.php:982 +#: src/usr/local/www/services_dhcp.php:1032 +#: src/usr/local/www/services_dhcp.php:1061 +#: src/usr/local/www/services_dhcp.php:1088 +#: src/usr/local/www/services_dhcp.php:1109 +#: src/usr/local/www/services_dhcp.php:1131 +#: src/usr/local/www/services_dhcp.php:1188 +#: src/usr/local/www/services_dhcp.php:1410 +#: src/usr/local/www/services_dhcp.php:1445 +#: src/usr/local/www/services_dhcp.php:1480 +#: src/usr/local/www/services_dhcp.php:1514 +#: src/usr/local/www/services_dhcp.php:1548 +#: src/usr/local/www/services_dhcp.php:1583 +#: src/usr/local/www/services_dhcp.php:1622 +#: src/usr/local/www/services_dhcp_edit.php:569 +#: src/usr/local/www/services_dhcp_edit.php:617 +#: src/usr/local/www/services_dhcp_edit.php:653 +#: src/usr/local/www/services_dhcp_edit.php:710 +#: src/usr/local/www/services_dhcp_edit.php:745 +#: src/usr/local/www/services_dhcp_edit.php:779 +#: src/usr/local/www/services_dhcpv6.php:722 +#: src/usr/local/www/services_dhcpv6.php:790 +#: src/usr/local/www/services_dhcpv6.php:826 +#: src/usr/local/www/services_dhcpv6.php:847 +#: src/usr/local/www/services_dhcpv6.php:875 +#: src/usr/local/www/services_dhcpv6.php:1069 +#: src/usr/local/www/services_dhcpv6.php:1104 +#: src/usr/local/www/services_dhcpv6.php:1138 +#: src/usr/local/www/services_dhcpv6.php:1173 +#: src/usr/local/www/services_dhcpv6.php:1209 #: src/usr/local/www/services_ntpd.php:305 #: src/usr/local/www/services_ntpd.php:341 #: src/usr/local/www/services_ntpd.php:410 @@ -11332,17 +11075,17 @@ msgstr "" #: src/usr/local/www/firewall_nat_edit.php:704 #: src/usr/local/www/firewall_nat_out.php:279 #: src/usr/local/www/firewall_nat_out.php:532 -#: src/usr/local/www/firewall_nat_out_edit.php:151 -#: src/usr/local/www/firewall_nat_out_edit.php:474 -#: src/usr/local/www/firewall_rules.php:377 -#: src/usr/local/www/firewall_rules_edit.php:418 +#: src/usr/local/www/firewall_nat_out_edit.php:152 +#: src/usr/local/www/firewall_nat_out_edit.php:489 +#: src/usr/local/www/firewall_rules.php:376 +#: src/usr/local/www/firewall_rules_edit.php:413 #: src/usr/local/www/status_ipsec_sad.php:65 #: src/usr/local/www/status_ipsec_spd.php:58 #: src/usr/local/www/status_logs_filter.php:161 #: src/usr/local/www/status_logs_filter_dynamic.php:392 #: src/usr/local/www/vpn_ipsec_mobile.php:455 #: src/usr/local/www/vpn_ipsec_mobile.php:465 -#: src/usr/local/www/widgets/widgets/ipsec.widget.php:203 +#: src/usr/local/www/widgets/widgets/ipsec.widget.php:204 #: src/usr/local/www/widgets/widgets/log.widget.php:104 msgid "Source" msgstr "" @@ -11371,10 +11114,10 @@ msgstr "" #: src/usr/local/www/firewall_nat_edit.php:811 #: src/usr/local/www/firewall_nat_edit.php:825 #: src/usr/local/www/firewall_nat_edit.php:858 -#: src/usr/local/www/firewall_rules_edit.php:1361 -#: src/usr/local/www/firewall_rules_edit.php:1375 -#: src/usr/local/www/interfaces.php:2581 -#: src/usr/local/www/interfaces_ppps_edit.php:727 +#: src/usr/local/www/firewall_rules_edit.php:1358 +#: src/usr/local/www/firewall_rules_edit.php:1372 +#: src/usr/local/www/interfaces.php:2589 +#: src/usr/local/www/interfaces_ppps_edit.php:749 #: src/usr/local/www/services_ntpd_gps.php:215 msgid "Custom" msgstr "" @@ -11424,8 +11167,8 @@ msgid "" msgstr "" #: src/usr/local/www/firewall_nat_edit.php:872 -#: src/usr/local/www/firewall_nat_out_edit.php:598 -#: src/usr/local/www/firewall_rules_edit.php:1552 +#: src/usr/local/www/firewall_nat_out_edit.php:620 +#: src/usr/local/www/firewall_rules_edit.php:1540 msgid "No XMLRPC Sync" msgstr "" @@ -11476,52 +11219,52 @@ msgid "" msgstr "" #: src/usr/local/www/firewall_nat_edit.php:939 -#: src/usr/local/www/firewall_nat_out_edit.php:634 -#: src/usr/local/www/firewall_rules_edit.php:1682 +#: src/usr/local/www/firewall_nat_out_edit.php:656 +#: src/usr/local/www/firewall_rules_edit.php:1670 msgid "Rule Information" msgstr "" #: src/usr/local/www/firewall_nat_edit.php:944 #: src/usr/local/www/firewall_nat_edit.php:951 -#: src/usr/local/www/firewall_nat_out_edit.php:639 -#: src/usr/local/www/firewall_nat_out_edit.php:646 -#: src/usr/local/www/firewall_rules_edit.php:1687 -#: src/usr/local/www/firewall_rules_edit.php:1694 +#: src/usr/local/www/firewall_nat_out_edit.php:661 +#: src/usr/local/www/firewall_nat_out_edit.php:668 +#: src/usr/local/www/firewall_rules_edit.php:1675 +#: src/usr/local/www/firewall_rules_edit.php:1682 msgid " by " msgstr "" #: src/usr/local/www/firewall_nat_edit.php:943 -#: src/usr/local/www/firewall_nat_out_edit.php:638 -#: src/usr/local/www/firewall_rules_edit.php:1686 +#: src/usr/local/www/firewall_nat_out_edit.php:660 +#: src/usr/local/www/firewall_rules_edit.php:1674 msgid "Created" msgstr "" #: src/usr/local/www/firewall_nat_edit.php:950 -#: src/usr/local/www/firewall_nat_out_edit.php:645 -#: src/usr/local/www/firewall_rules_edit.php:1693 +#: src/usr/local/www/firewall_nat_out_edit.php:667 +#: src/usr/local/www/firewall_rules_edit.php:1681 msgid "Updated" msgstr "" #: src/usr/local/www/firewall_nat_edit.php:1180 -#: src/usr/local/www/firewall_rules_edit.php:1730 -#: src/usr/local/www/firewall_rules_edit.php:1802 +#: src/usr/local/www/firewall_rules_edit.php:1718 +#: src/usr/local/www/firewall_rules_edit.php:1790 #: src/usr/local/www/interfaces_bridge_edit.php:659 -#: src/usr/local/www/interfaces_ppps_edit.php:1013 -#: src/usr/local/www/services_dhcp.php:1395 -#: src/usr/local/www/services_dhcp.php:1430 -#: src/usr/local/www/services_dhcp.php:1465 -#: src/usr/local/www/services_dhcp.php:1499 -#: src/usr/local/www/services_dhcp.php:1533 -#: src/usr/local/www/services_dhcp.php:1568 -#: src/usr/local/www/services_dhcp.php:1607 -#: src/usr/local/www/services_dhcp_edit.php:701 -#: src/usr/local/www/services_dhcp_edit.php:736 -#: src/usr/local/www/services_dhcp_edit.php:770 -#: src/usr/local/www/services_dhcpv6.php:1072 -#: src/usr/local/www/services_dhcpv6.php:1107 -#: src/usr/local/www/services_dhcpv6.php:1141 -#: src/usr/local/www/services_dhcpv6.php:1176 -#: src/usr/local/www/services_dhcpv6.php:1212 +#: src/usr/local/www/interfaces_ppps_edit.php:1035 +#: src/usr/local/www/services_dhcp.php:1408 +#: src/usr/local/www/services_dhcp.php:1443 +#: src/usr/local/www/services_dhcp.php:1478 +#: src/usr/local/www/services_dhcp.php:1512 +#: src/usr/local/www/services_dhcp.php:1546 +#: src/usr/local/www/services_dhcp.php:1581 +#: src/usr/local/www/services_dhcp.php:1620 +#: src/usr/local/www/services_dhcp_edit.php:708 +#: src/usr/local/www/services_dhcp_edit.php:743 +#: src/usr/local/www/services_dhcp_edit.php:777 +#: src/usr/local/www/services_dhcpv6.php:1067 +#: src/usr/local/www/services_dhcpv6.php:1102 +#: src/usr/local/www/services_dhcpv6.php:1136 +#: src/usr/local/www/services_dhcpv6.php:1171 +#: src/usr/local/www/services_dhcpv6.php:1207 #: src/usr/local/www/services_ntpd.php:408 #: src/usr/local/www/services_ntpd.php:445 #: src/usr/local/www/services_ntpd_gps.php:532 @@ -11578,14 +11321,14 @@ msgstr "" #: src/usr/local/www/firewall_nat_npt_edit.php:213 #: src/usr/local/www/firewall_nat_npt_edit.php:228 -#: src/usr/local/www/firewall_nat_out_edit.php:536 -#: src/usr/local/www/status_lb_vs.php:63 src/usr/local/www/system.php:383 -#: src/usr/local/www/vpn_ipsec_phase2.php:526 -#: src/usr/local/www/vpn_ipsec_phase2.php:533 -#: src/usr/local/www/vpn_ipsec_phase2.php:546 -#: src/usr/local/www/vpn_ipsec_phase2.php:559 -#: src/usr/local/www/vpn_ipsec_phase2.php:572 -#: src/usr/local/www/vpn_ipsec_phase2.php:579 +#: src/usr/local/www/firewall_nat_out_edit.php:551 +#: src/usr/local/www/status_lb_vs.php:63 src/usr/local/www/system.php:390 +#: src/usr/local/www/vpn_ipsec_phase2.php:521 +#: src/usr/local/www/vpn_ipsec_phase2.php:528 +#: src/usr/local/www/vpn_ipsec_phase2.php:541 +#: src/usr/local/www/vpn_ipsec_phase2.php:554 +#: src/usr/local/www/vpn_ipsec_phase2.php:567 +#: src/usr/local/www/vpn_ipsec_phase2.php:574 msgid "Address" msgstr "" @@ -11618,8 +11361,7 @@ msgid "Default rules for each interface have been created." msgstr "" #: src/usr/local/www/firewall_nat_out.php:227 -#: src/usr/local/www/status_logs_settings.php:219 -msgid "General Logging Options" +msgid "Outbound NAT Mode" msgstr "" #: src/usr/local/www/firewall_nat_out.php:237 @@ -11719,154 +11461,160 @@ msgid "" "One or more NAT outbound mappings have been moved but have not yet been saved" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:151 -#: src/usr/local/www/firewall_rules_edit.php:434 +#: src/usr/local/www/firewall_nat_out_edit.php:152 +#: src/usr/local/www/firewall_rules_edit.php:429 msgid "Source bit count" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:151 -#: src/usr/local/www/firewall_rules_edit.php:439 +#: src/usr/local/www/firewall_nat_out_edit.php:152 +#: src/usr/local/www/firewall_rules_edit.php:434 msgid "Destination bit count" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:177 +#: src/usr/local/www/firewall_nat_out_edit.php:178 msgid "A valid port or port alias must be supplied for the source port entry." msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:181 +#: src/usr/local/www/firewall_nat_out_edit.php:182 msgid "" "A valid port or port alias must be supplied for the destination port entry." msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:185 +#: src/usr/local/www/firewall_nat_out_edit.php:186 msgid "A valid port must be supplied for the NAT port entry." msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:190 +#: src/usr/local/www/firewall_nat_out_edit.php:191 msgid "A valid source must be specified." msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:200 +#: src/usr/local/www/firewall_nat_out_edit.php:201 msgid "A valid destination must be specified." msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:210 +#: src/usr/local/www/firewall_nat_out_edit.php:211 msgid "Negating destination address of \"any\" is invalid." msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:215 +#: src/usr/local/www/firewall_nat_out_edit.php:216 msgid "A valid target IP address must be specified." msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:220 +#: src/usr/local/www/firewall_nat_out_edit.php:221 msgid "A valid target IP must be specified when using the 'Other Subnet' type." msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:224 +#: src/usr/local/www/firewall_nat_out_edit.php:225 msgid "" "A valid target bit count must be specified when using the 'Other Subnet' " "type." msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:237 +#: src/usr/local/www/firewall_nat_out_edit.php:239 msgid "Only Round Robin pool options may be chosen when selecting an alias." msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:370 +#: src/usr/local/www/firewall_nat_out_edit.php:248 +msgid "" +"Incorrect format for source-hash key, \"0x\" must be followed by exactly 32 " +"hexadecimal characters." +msgstr "" + +#: src/usr/local/www/firewall_nat_out_edit.php:385 #: src/usr/local/www/system_gateway_groups_edit.php:162 msgid "Interface Address" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:400 +#: src/usr/local/www/firewall_nat_out_edit.php:415 msgid "Host Alias: " msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:403 +#: src/usr/local/www/firewall_nat_out_edit.php:418 msgid "Other Subnet (Enter Below)" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:414 +#: src/usr/local/www/firewall_nat_out_edit.php:429 msgid "Edit Advanced Outbound NAT Entry" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:425 +#: src/usr/local/www/firewall_nat_out_edit.php:440 msgid "Do not NAT" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:428 +#: src/usr/local/www/firewall_nat_out_edit.php:443 msgid "In most cases this option is not required." msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:472 +#: src/usr/local/www/firewall_nat_out_edit.php:487 msgid "" "Choose which protocol this rule should match. In most cases \"any\" is " "specified." msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:487 +#: src/usr/local/www/firewall_nat_out_edit.php:502 msgid "Source network for the outbound NAT mapping." msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:511 +#: src/usr/local/www/firewall_nat_out_edit.php:526 msgid "Destination network for the outbound NAT mapping." msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:527 +#: src/usr/local/www/firewall_nat_out_edit.php:542 msgid "Invert the sense of the destination match." msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:531 +#: src/usr/local/www/firewall_nat_out_edit.php:546 msgid "Translation" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:543 +#: src/usr/local/www/firewall_nat_out_edit.php:558 msgid "Other subnet" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:546 +#: src/usr/local/www/firewall_nat_out_edit.php:561 msgid "" "Packets matching this rule will be mapped to the IP address given here.<br /" ">To apply this rule to a different IP address than the IP address of the " "interface chosen above, select it here (<a href=\"firewall_virtual_ip.php\">" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:557 -#: src/usr/local/www/interfaces.php:1835 src/usr/local/www/interfaces.php:2810 -#: src/usr/local/www/interfaces.php:2819 src/usr/local/www/interfaces.php:2828 -#: src/usr/local/www/interfaces.php:2886 src/usr/local/www/interfaces.php:3141 +#: src/usr/local/www/firewall_nat_out_edit.php:572 +#: src/usr/local/www/interfaces.php:1838 src/usr/local/www/interfaces.php:2818 +#: src/usr/local/www/interfaces.php:2827 src/usr/local/www/interfaces.php:2836 +#: src/usr/local/www/interfaces.php:2894 src/usr/local/www/interfaces.php:3149 #: src/usr/local/www/services_ntpd_gps.php:215 msgid "Default" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:558 +#: src/usr/local/www/firewall_nat_out_edit.php:573 msgid "Round Robin" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:559 +#: src/usr/local/www/firewall_nat_out_edit.php:574 msgid "Round Robin with Sticky Address" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:560 +#: src/usr/local/www/firewall_nat_out_edit.php:575 msgid "Random" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:561 +#: src/usr/local/www/firewall_nat_out_edit.php:576 msgid "Random with Sticky Address" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:562 +#: src/usr/local/www/firewall_nat_out_edit.php:577 msgid "Source hash" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:563 +#: src/usr/local/www/firewall_nat_out_edit.php:578 msgid "Bit mask" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:554 +#: src/usr/local/www/firewall_nat_out_edit.php:569 msgid "Pool options" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:565 +#: src/usr/local/www/firewall_nat_out_edit.php:580 msgid "" "Only Round Robin types work with Host Aliases. Any type can be used with a " "Subnet.<br /></span><ul class=\"help-block\"><li>Round Robin: Loops through " @@ -11881,15 +11629,26 @@ msgid "" "ul><span class=\"help-block\">" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:582 -msgid "Enter the source port or range for the outbound NAT mapping." +#: src/usr/local/www/firewall_nat_out_edit.php:591 +msgid "Source Hash Key" msgstr "" #: src/usr/local/www/firewall_nat_out_edit.php:594 +msgid "" +"The key that is fed to the hashing algorithm in hex format, preceeded by \"0x" +"\", or any string. A non-hex string is hashed using md5 to a hexadecimal " +"key. Defaults to a randomly generated value." +msgstr "" + +#: src/usr/local/www/firewall_nat_out_edit.php:604 +msgid "Enter the source port or range for the outbound NAT mapping." +msgstr "" + +#: src/usr/local/www/firewall_nat_out_edit.php:616 msgid "Misc" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:602 +#: src/usr/local/www/firewall_nat_out_edit.php:624 msgid "" "Prevents the rule on Master from automatically syncing to other CARP " "members. This does NOT prevent the rule from being overwritten on Slave." @@ -11909,34 +11668,34 @@ msgstr "" msgid "States details" msgstr "" -#: src/usr/local/www/firewall_rules.php:186 +#: src/usr/local/www/firewall_rules.php:182 #, php-format msgid "" "The settings have been applied. The firewall rules are now reloading in the " "background.<br />%s Monitor %s the reload progress." msgstr "" -#: src/usr/local/www/firewall_rules.php:312 -#: src/usr/local/www/firewall_rules_edit.php:1046 -#: src/usr/local/www/firewall_rules_edit.php:1202 +#: src/usr/local/www/firewall_rules.php:311 +#: src/usr/local/www/firewall_rules_edit.php:1041 +#: src/usr/local/www/firewall_rules_edit.php:1197 msgid "Floating" msgstr "" -#: src/usr/local/www/firewall_rules.php:336 +#: src/usr/local/www/firewall_rules.php:335 msgid "The firewall rule configuration has been changed." msgstr "" -#: src/usr/local/www/firewall_rules.php:368 +#: src/usr/local/www/firewall_rules.php:367 msgid "Rules (Drag to Change Order)" msgstr "" -#: src/usr/local/www/firewall_rules.php:381 -#: src/usr/local/www/firewall_rules_edit.php:1613 +#: src/usr/local/www/firewall_rules.php:380 +#: src/usr/local/www/firewall_rules_edit.php:1601 #: src/usr/local/www/interfaces.php:527 src/usr/local/www/interfaces.php:578 -#: src/usr/local/www/services_dhcp.php:901 -#: src/usr/local/www/services_dhcp_edit.php:527 -#: src/usr/local/www/status_gateways.php:60 src/usr/local/www/system.php:405 -#: src/usr/local/www/system.php:408 +#: src/usr/local/www/services_dhcp.php:914 +#: src/usr/local/www/services_dhcp_edit.php:534 +#: src/usr/local/www/status_gateways.php:60 src/usr/local/www/system.php:412 +#: src/usr/local/www/system.php:415 #: src/usr/local/www/system_gateway_groups_edit.php:305 #: src/usr/local/www/system_gateways.php:244 #: src/usr/local/www/system_gateways_edit.php:611 @@ -11946,28 +11705,28 @@ msgstr "" msgid "Gateway" msgstr "" -#: src/usr/local/www/firewall_rules.php:382 +#: src/usr/local/www/firewall_rules.php:381 #: src/usr/local/www/status_queues.php:159 msgid "Queue" msgstr "" -#: src/usr/local/www/firewall_rules.php:383 -#: src/usr/local/www/firewall_rules_edit.php:1582 +#: src/usr/local/www/firewall_rules.php:382 +#: src/usr/local/www/firewall_rules_edit.php:1570 msgid "Schedule" msgstr "" -#: src/usr/local/www/firewall_rules.php:399 -#: src/usr/local/www/firewall_rules.php:490 +#: src/usr/local/www/firewall_rules.php:398 +#: src/usr/local/www/firewall_rules.php:489 msgid "traffic is passed" msgstr "" -#: src/usr/local/www/firewall_rules.php:409 +#: src/usr/local/www/firewall_rules.php:408 msgid "Anti-Lockout Rule" msgstr "" -#: src/usr/local/www/firewall_rules.php:411 -#: src/usr/local/www/firewall_rules.php:430 -#: src/usr/local/www/firewall_rules.php:449 src/usr/local/www/head.inc:532 +#: src/usr/local/www/firewall_rules.php:410 +#: src/usr/local/www/firewall_rules.php:429 +#: src/usr/local/www/firewall_rules.php:448 src/usr/local/www/head.inc:517 #: src/usr/local/www/load_balancer_monitor.php:95 #: src/usr/local/www/load_balancer_pool.php:109 #: src/usr/local/www/load_balancer_setting.php:86 @@ -11978,235 +11737,235 @@ msgstr "" #: src/usr/local/www/services_ntpd_acls.php:173 #: src/usr/local/www/services_ntpd_gps.php:196 #: src/usr/local/www/services_ntpd_pps.php:115 -#: src/usr/local/www/services_router_advertisements.php:451 +#: src/usr/local/www/services_router_advertisements.php:446 #: src/usr/local/www/status_logs_common.inc:98 -#: src/usr/local/www/status_logs_settings.php:180 -#: src/usr/local/www/status_logs_settings.php:214 +#: src/usr/local/www/status_logs_settings.php:188 +#: src/usr/local/www/status_logs_settings.php:222 #: src/usr/local/www/system_authservers.php:422 -#: src/usr/local/www/system_groupmanager.php:282 +#: src/usr/local/www/system_groupmanager.php:276 #: src/usr/local/www/system_groupmanager_addprivs.php:133 -#: src/usr/local/www/system_usermanager.php:555 -#: src/usr/local/www/system_usermanager_addprivs.php:134 +#: src/usr/local/www/system_usermanager.php:549 +#: src/usr/local/www/system_usermanager_addprivs.php:131 #: src/usr/local/www/system_usermanager_settings.php:106 #: src/usr/local/www/system_usermanager_settings.php:167 #: src/usr/local/www/system_usermanager_settings.php:178 msgid "Settings" msgstr "" -#: src/usr/local/www/firewall_rules.php:418 -#: src/usr/local/www/firewall_rules.php:437 -#: src/usr/local/www/firewall_rules.php:481 +#: src/usr/local/www/firewall_rules.php:417 +#: src/usr/local/www/firewall_rules.php:436 +#: src/usr/local/www/firewall_rules.php:480 msgid "traffic is blocked" msgstr "" -#: src/usr/local/www/firewall_rules.php:421 +#: src/usr/local/www/firewall_rules.php:420 msgid "RFC 1918 networks" msgstr "" -#: src/usr/local/www/firewall_rules.php:428 +#: src/usr/local/www/firewall_rules.php:427 msgid "Block private networks" msgstr "" -#: src/usr/local/www/firewall_rules.php:440 +#: src/usr/local/www/firewall_rules.php:439 #, php-format msgid "Reserved%sNot assigned by IANA" msgstr "" -#: src/usr/local/www/firewall_rules.php:447 -#: src/usr/local/www/interfaces.php:3102 +#: src/usr/local/www/firewall_rules.php:446 +#: src/usr/local/www/interfaces.php:3110 msgid "Block bogon networks" msgstr "" -#: src/usr/local/www/firewall_rules.php:484 +#: src/usr/local/www/firewall_rules.php:483 msgid "traffic is rejected" msgstr "" -#: src/usr/local/www/firewall_rules.php:487 +#: src/usr/local/www/firewall_rules.php:486 msgid "traffic is matched" msgstr "" -#: src/usr/local/www/firewall_rules.php:499 -#: src/usr/local/www/firewall_rules.php:840 +#: src/usr/local/www/firewall_rules.php:498 +#: src/usr/local/www/firewall_rules.php:839 msgid ""Quick" rule. Applied immediately on match." msgstr "" -#: src/usr/local/www/firewall_rules.php:504 +#: src/usr/local/www/firewall_rules.php:503 msgid "advanced setting" msgstr "" -#: src/usr/local/www/firewall_rules.php:508 +#: src/usr/local/www/firewall_rules.php:507 msgid "traffic is logged" msgstr "" -#: src/usr/local/www/firewall_rules.php:527 +#: src/usr/local/www/firewall_rules.php:526 #: src/usr/local/www/firewall_schedule.php:35 #: src/usr/local/www/firewall_schedule_edit.php:56 #: src/usr/local/www/firewall_schedule_edit.php:255 msgid "Mon" msgstr "" -#: src/usr/local/www/firewall_rules.php:527 +#: src/usr/local/www/firewall_rules.php:526 #: src/usr/local/www/firewall_schedule.php:35 #: src/usr/local/www/firewall_schedule_edit.php:56 msgid "Tues" msgstr "" -#: src/usr/local/www/firewall_rules.php:527 +#: src/usr/local/www/firewall_rules.php:526 #: src/usr/local/www/firewall_schedule.php:35 #: src/usr/local/www/firewall_schedule_edit.php:56 #: src/usr/local/www/firewall_schedule_edit.php:257 msgid "Wed" msgstr "" -#: src/usr/local/www/firewall_rules.php:527 +#: src/usr/local/www/firewall_rules.php:526 #: src/usr/local/www/firewall_schedule.php:35 #: src/usr/local/www/firewall_schedule_edit.php:56 msgid "Thur" msgstr "" -#: src/usr/local/www/firewall_rules.php:527 +#: src/usr/local/www/firewall_rules.php:526 #: src/usr/local/www/firewall_schedule.php:35 #: src/usr/local/www/firewall_schedule_edit.php:56 #: src/usr/local/www/firewall_schedule_edit.php:259 msgid "Fri" msgstr "" -#: src/usr/local/www/firewall_rules.php:527 +#: src/usr/local/www/firewall_rules.php:526 #: src/usr/local/www/firewall_schedule.php:35 #: src/usr/local/www/firewall_schedule_edit.php:56 #: src/usr/local/www/firewall_schedule_edit.php:260 msgid "Sat" msgstr "" -#: src/usr/local/www/firewall_rules.php:527 +#: src/usr/local/www/firewall_rules.php:526 #: src/usr/local/www/firewall_schedule.php:35 #: src/usr/local/www/firewall_schedule_edit.php:56 #: src/usr/local/www/firewall_schedule_edit.php:261 msgid "Sun" msgstr "" -#: src/usr/local/www/firewall_rules.php:528 +#: src/usr/local/www/firewall_rules.php:527 #: src/usr/local/www/firewall_schedule.php:36 #: src/usr/local/www/firewall_schedule_edit.php:57 msgid "January" msgstr "" -#: src/usr/local/www/firewall_rules.php:528 +#: src/usr/local/www/firewall_rules.php:527 #: src/usr/local/www/firewall_schedule.php:36 #: src/usr/local/www/firewall_schedule_edit.php:57 msgid "February" msgstr "" -#: src/usr/local/www/firewall_rules.php:528 +#: src/usr/local/www/firewall_rules.php:527 #: src/usr/local/www/firewall_schedule.php:36 #: src/usr/local/www/firewall_schedule_edit.php:57 msgid "March" msgstr "" -#: src/usr/local/www/firewall_rules.php:528 +#: src/usr/local/www/firewall_rules.php:527 #: src/usr/local/www/firewall_schedule.php:36 #: src/usr/local/www/firewall_schedule_edit.php:57 msgid "April" msgstr "" -#: src/usr/local/www/firewall_rules.php:528 +#: src/usr/local/www/firewall_rules.php:527 #: src/usr/local/www/firewall_schedule.php:36 #: src/usr/local/www/firewall_schedule_edit.php:57 msgid "May" msgstr "" -#: src/usr/local/www/firewall_rules.php:528 +#: src/usr/local/www/firewall_rules.php:527 #: src/usr/local/www/firewall_schedule.php:36 #: src/usr/local/www/firewall_schedule_edit.php:57 msgid "June" msgstr "" -#: src/usr/local/www/firewall_rules.php:528 +#: src/usr/local/www/firewall_rules.php:527 #: src/usr/local/www/firewall_schedule.php:36 #: src/usr/local/www/firewall_schedule_edit.php:57 msgid "July" msgstr "" -#: src/usr/local/www/firewall_rules.php:528 +#: src/usr/local/www/firewall_rules.php:527 #: src/usr/local/www/firewall_schedule.php:36 #: src/usr/local/www/firewall_schedule_edit.php:57 msgid "August" msgstr "" -#: src/usr/local/www/firewall_rules.php:528 +#: src/usr/local/www/firewall_rules.php:527 #: src/usr/local/www/firewall_schedule.php:36 #: src/usr/local/www/firewall_schedule_edit.php:57 msgid "September" msgstr "" -#: src/usr/local/www/firewall_rules.php:528 +#: src/usr/local/www/firewall_rules.php:527 #: src/usr/local/www/firewall_schedule.php:36 #: src/usr/local/www/firewall_schedule_edit.php:57 msgid "October" msgstr "" -#: src/usr/local/www/firewall_rules.php:528 +#: src/usr/local/www/firewall_rules.php:527 #: src/usr/local/www/firewall_schedule.php:36 #: src/usr/local/www/firewall_schedule_edit.php:57 msgid "November" msgstr "" -#: src/usr/local/www/firewall_rules.php:528 +#: src/usr/local/www/firewall_rules.php:527 #: src/usr/local/www/firewall_schedule.php:36 #: src/usr/local/www/firewall_schedule_edit.php:57 msgid "December" msgstr "" -#: src/usr/local/www/firewall_rules.php:641 +#: src/usr/local/www/firewall_rules.php:640 msgid "Traffic matching this rule is currently being denied" msgstr "" -#: src/usr/local/www/firewall_rules.php:645 +#: src/usr/local/www/firewall_rules.php:644 msgid "Traffic matching this rule is currently being allowed" msgstr "" -#: src/usr/local/www/firewall_rules.php:654 +#: src/usr/local/www/firewall_rules.php:653 msgid "This rule is not currently active because its period has expired" msgstr "" -#: src/usr/local/www/firewall_rules.php:683 -#: src/usr/local/www/firewall_rules_edit.php:1244 +#: src/usr/local/www/firewall_rules.php:682 +#: src/usr/local/www/firewall_rules_edit.php:1239 msgid "ICMP type" msgstr "" -#: src/usr/local/www/firewall_rules.php:764 +#: src/usr/local/www/firewall_rules.php:763 msgid "Copy" msgstr "" -#: src/usr/local/www/firewall_rules.php:773 +#: src/usr/local/www/firewall_rules.php:772 msgid "Delete this rule" msgstr "" -#: src/usr/local/www/firewall_rules.php:795 +#: src/usr/local/www/firewall_rules.php:794 msgid "No floating rules are currently defined." msgstr "" -#: src/usr/local/www/firewall_rules.php:797 +#: src/usr/local/www/firewall_rules.php:796 msgid "No rules are currently defined for this interface" msgstr "" -#: src/usr/local/www/firewall_rules.php:798 +#: src/usr/local/www/firewall_rules.php:797 msgid "" "All incoming connections on this interface will be blocked until pass rules " "are added." msgstr "" -#: src/usr/local/www/firewall_rules.php:800 +#: src/usr/local/www/firewall_rules.php:799 msgid "Click the button to add a new rule." msgstr "" -#: src/usr/local/www/firewall_rules.php:835 -#: src/usr/local/www/firewall_rules_edit.php:1103 +#: src/usr/local/www/firewall_rules.php:834 +#: src/usr/local/www/firewall_rules_edit.php:1098 msgid "Match" msgstr "" -#: src/usr/local/www/firewall_rules.php:836 -#: src/usr/local/www/firewall_rules_edit.php:1098 +#: src/usr/local/www/firewall_rules.php:835 +#: src/usr/local/www/firewall_rules_edit.php:1093 #: src/usr/local/www/services_captiveportal_mac.php:63 #: src/usr/local/www/services_captiveportal_mac_edit.php:204 #: src/usr/local/www/status_logs_common.inc:459 @@ -12215,36 +11974,36 @@ msgstr "" msgid "Block" msgstr "" -#: src/usr/local/www/firewall_rules.php:837 -#: src/usr/local/www/firewall_rules_edit.php:1099 +#: src/usr/local/www/firewall_rules.php:836 +#: src/usr/local/www/firewall_rules_edit.php:1094 #: src/usr/local/www/widgets/widgets/log.widget.php:232 msgid "Reject" msgstr "" -#: src/usr/local/www/firewall_rules.php:838 -#: src/usr/local/www/firewall_rules_edit.php:1396 +#: src/usr/local/www/firewall_rules.php:837 +#: src/usr/local/www/firewall_rules_edit.php:1384 #: src/usr/local/www/status_logs_common.inc:783 msgid "Log" msgstr "" -#: src/usr/local/www/firewall_rules.php:839 +#: src/usr/local/www/firewall_rules.php:838 msgid "Advanced filter" msgstr "" -#: src/usr/local/www/firewall_rules.php:845 +#: src/usr/local/www/firewall_rules.php:844 msgid "" "Rules are evaluated on a first-match basis (i.e. the action of the first " "rule to match a packet will be executed). " msgstr "" -#: src/usr/local/www/firewall_rules.php:847 +#: src/usr/local/www/firewall_rules.php:846 msgid "" "This means that if block rules are used, it is important to pay attention to " "the rule order. Everything that isn't explicitly passed is blocked by " "default. " msgstr "" -#: src/usr/local/www/firewall_rules.php:851 +#: src/usr/local/www/firewall_rules.php:850 msgid "" "Floating rules are evaluated on a first-match basis (i.e. the action of the " "first rule to match a packet will be executed) only if the 'quick' option is " @@ -12253,296 +12012,297 @@ msgid "" "matches, the per-interface or default rules are used. " msgstr "" -#: src/usr/local/www/firewall_rules.php:858 +#: src/usr/local/www/firewall_rules.php:857 #, php-format msgid "" "%sClick the anchor icon %s to move checked rules before the clicked row. " "Hold down the shift key and click to move the rules after the clicked row." msgstr "" -#: src/usr/local/www/firewall_rules.php:973 +#: src/usr/local/www/firewall_rules.php:972 msgid "One or more rules have been moved but have not yet been saved" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:314 -#: src/usr/local/www/firewall_rules_edit.php:328 -msgid "A gateway can not be assigned to a rule that applies to IPv4 and IPv6" +#: src/usr/local/www/firewall_rules_edit.php:310 +#: src/usr/local/www/firewall_rules_edit.php:322 +msgid "" +"Gateways can not be assigned in a rule that applies to both IPv4 and IPv6." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:317 -msgid "" -"An IPv4 gateway group can not be assigned on an IPv6 Address Family rule" +#: src/usr/local/www/firewall_rules_edit.php:312 +msgid "An IPv4 gateway group can not be assigned in IPv6 rules." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:320 -msgid "" -"An IPv6 gateway group can not be assigned on an IPv4 Address Family rule" +#: src/usr/local/www/firewall_rules_edit.php:314 +msgid "An IPv6 gateway group can not be assigned in IPv4 rules." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:331 -msgid "An IPv4 Gateway can not be assigned to an IPv6 Filter rule" +#: src/usr/local/www/firewall_rules_edit.php:325 +msgid "An IPv4 gateway can not be assigned in IPv6 rules." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:334 -msgid "An IPv6 Gateway can not be assigned to an IPv4 Filter rule" +#: src/usr/local/www/firewall_rules_edit.php:328 +msgid "An IPv6 gateway can not be assigned in IPv4 rules." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:339 +#: src/usr/local/www/firewall_rules_edit.php:334 msgid "" "An ICMP type can not be assigned to a rule that applies to IPv4 and IPv6" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:424 +#: src/usr/local/www/firewall_rules_edit.php:419 #, php-format msgid "%s is only valid with protocol TCP." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:427 +#: src/usr/local/www/firewall_rules_edit.php:422 #, php-format msgid "%s is only valid if the gateway is set to 'default'." msgstr "" +#: src/usr/local/www/firewall_rules_edit.php:499 #: src/usr/local/www/firewall_rules_edit.php:504 -#: src/usr/local/www/firewall_rules_edit.php:509 msgid "Alias entries must be a single host or alias." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:531 -#, php-format +#: src/usr/local/www/firewall_rules_edit.php:526 msgid "" -"The Source IP address %s Address Family differs from the destination %s." +"The source and destination IP addresses must have the same family (IPv4 / " +"IPv6)." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:535 +#: src/usr/local/www/firewall_rules_edit.php:530 msgid "IPv6 addresses cannot be used in IPv4 rules." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:538 +#: src/usr/local/www/firewall_rules_edit.php:533 msgid "IPv4 addresses can not be used in IPv6 rules." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:542 -msgid "An IPv4 or IPv6 address can not be used in combined IPv4 + IPv6 rules." +#: src/usr/local/www/firewall_rules_edit.php:537 +msgid "" +"IPv4 and IPv6 addresses can not be used in rules that apply to both IPv4 and " +"IPv6." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:559 +#: src/usr/local/www/firewall_rules_edit.php:554 msgid "OS detection is only valid with protocol TCP." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:562 +#: src/usr/local/www/firewall_rules_edit.php:557 msgid "Invalid OS detection selection. Please select a valid OS." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:568 +#: src/usr/local/www/firewall_rules_edit.php:563 msgid "A queue must be selected when an acknowledge queue is also selected." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:570 +#: src/usr/local/www/firewall_rules_edit.php:565 msgid "Acknowledge queue and Queue cannot be the same." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:574 +#: src/usr/local/www/firewall_rules_edit.php:569 msgid "" "Limiters can not be used in Floating rules without choosing a direction." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:577 +#: src/usr/local/www/firewall_rules_edit.php:572 msgid "" "Gateways can not be used in Floating rules without choosing a direction." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:581 +#: src/usr/local/www/firewall_rules_edit.php:576 msgid "" "A queue must be selected for the In direction before selecting one for Out " "too." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:583 +#: src/usr/local/www/firewall_rules_edit.php:578 msgid "In and Out Queue cannot be the same." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:585 -#: src/usr/local/www/firewall_rules_edit.php:587 +#: src/usr/local/www/firewall_rules_edit.php:580 +#: src/usr/local/www/firewall_rules_edit.php:582 msgid "" "A queue and a virtual interface cannot be selected for IN and Out. Both must " "be from the same type." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:590 +#: src/usr/local/www/firewall_rules_edit.php:585 msgid "" "Please select a gateway, normally the interface selected gateway, so the " "limiters work correctly" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:594 +#: src/usr/local/www/firewall_rules_edit.php:589 msgid "ID must be an integer" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:599 +#: src/usr/local/www/firewall_rules_edit.php:594 msgid "" "The maximum number of established connections per host (advanced option) can " "only be specified for TCP protocol." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:602 +#: src/usr/local/www/firewall_rules_edit.php:597 msgid "" "The maximum new connections per host / per second(s) (advanced option) can " "only be specified for TCP protocol." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:605 +#: src/usr/local/www/firewall_rules_edit.php:600 msgid "" "The state timeout (advanced option) can only be specified for TCP protocol." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:611 +#: src/usr/local/www/firewall_rules_edit.php:606 msgid "" "The maximum state entries (advanced option) can only be specified for Pass " "type rules." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:614 +#: src/usr/local/www/firewall_rules_edit.php:609 msgid "" "The maximum number of unique source hosts (advanced option) can only be " "specified for Pass type rules." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:617 +#: src/usr/local/www/firewall_rules_edit.php:612 msgid "" "The maximum number of established connections per host (advanced option) can " "only be specified for Pass type rules." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:620 +#: src/usr/local/www/firewall_rules_edit.php:615 msgid "" "The maximum state entries per host (advanced option) can only be specified " "for Pass type rules." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:623 +#: src/usr/local/www/firewall_rules_edit.php:618 msgid "" "The maximum new connections per host / per second(s) (advanced option) can " "only be specified for Pass type rules." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:626 +#: src/usr/local/www/firewall_rules_edit.php:621 msgid "" "The state timeout (advanced option) can only be specified for Pass type " "rules." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:632 +#: src/usr/local/www/firewall_rules_edit.php:627 msgid "" "The maximum state entries (advanced option) cannot be specified if statetype " "is none." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:635 +#: src/usr/local/www/firewall_rules_edit.php:630 msgid "" "The maximum number of unique source hosts (advanced option) cannot be " "specified if statetype is none." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:638 +#: src/usr/local/www/firewall_rules_edit.php:633 msgid "" "The maximum number of established connections per host (advanced option) " "cannot be specified if statetype is none." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:641 +#: src/usr/local/www/firewall_rules_edit.php:636 msgid "" "The maximum state entries per host (advanced option) cannot be specified if " "statetype is none." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:644 +#: src/usr/local/www/firewall_rules_edit.php:639 msgid "" "The maximum new connections per host / per second(s) (advanced option) " "cannot be specified if statetype is none." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:647 +#: src/usr/local/www/firewall_rules_edit.php:642 msgid "" "The state timeout (advanced option) cannot be specified if statetype is none." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:652 +#: src/usr/local/www/firewall_rules_edit.php:647 msgid "Maximum state entries (advanced option) must be a positive integer" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:656 +#: src/usr/local/www/firewall_rules_edit.php:651 msgid "" "Maximum number of unique source hosts (advanced option) must be a positive " "integer" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:660 +#: src/usr/local/www/firewall_rules_edit.php:655 msgid "" "Maximum number of established connections per host (advanced option) must be " "a positive integer" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:664 +#: src/usr/local/www/firewall_rules_edit.php:659 msgid "" "Maximum state entries per host (advanced option) must be a positive integer" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:668 +#: src/usr/local/www/firewall_rules_edit.php:663 msgid "" "Maximum new connections per host / per second(s) (advanced option) must be a " "positive integer" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:672 +#: src/usr/local/www/firewall_rules_edit.php:667 msgid "State timeout (advanced option) must be a positive integer" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:677 +#: src/usr/local/www/firewall_rules_edit.php:672 msgid "" "Both maximum new connections per host and the interval (per second(s)) must " "be specified" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:692 +#: src/usr/local/www/firewall_rules_edit.php:687 msgid "" "If TCP flags that should be set is specified, then out of which flags should " "be specified as well." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:969 +#: src/usr/local/www/firewall_rules_edit.php:964 msgid "set" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:970 +#: src/usr/local/www/firewall_rules_edit.php:965 msgid "out of" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:997 +#: src/usr/local/www/firewall_rules_edit.php:992 msgid " Any flags." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1059 +#: src/usr/local/www/firewall_rules_edit.php:1054 msgid "Edit Firewall Rule" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1064 +#: src/usr/local/www/firewall_rules_edit.php:1059 #: src/usr/local/www/status_ipsec_leases.php:54 msgid "ID" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1073 +#: src/usr/local/www/firewall_rules_edit.php:1068 msgid "Tracker" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1081 +#: src/usr/local/www/firewall_rules_edit.php:1076 msgid "After" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1088 +#: src/usr/local/www/firewall_rules_edit.php:1083 msgid "Ruleid" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1108 +#: src/usr/local/www/firewall_rules_edit.php:1103 #: src/usr/local/www/services_captiveportal_mac.php:176 #: src/usr/local/www/services_captiveportal_mac_edit.php:99 #: src/usr/local/www/services_captiveportal_mac_edit.php:202 @@ -12553,13 +12313,13 @@ msgstr "" #: src/usr/local/www/status_logs_filter_dynamic.php:389 #: src/usr/local/www/status_logs_vpn.php:138 #: src/usr/local/www/status_logs_vpn.php:365 -#: src/usr/local/www/system_groupmanager.php:238 -#: src/usr/local/www/system_usermanager.php:446 +#: src/usr/local/www/system_groupmanager.php:232 +#: src/usr/local/www/system_usermanager.php:440 #: src/usr/local/www/widgets/widgets/services_status.widget.php:76 msgid "Action" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1111 +#: src/usr/local/www/firewall_rules_edit.php:1106 msgid "" "Choose what to do with packets that match the criteria specified below.<br/" ">Hint: the difference between block and reject is that with reject, a packet " @@ -12568,143 +12328,136 @@ msgid "" "original packet is discarded." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1122 +#: src/usr/local/www/firewall_rules_edit.php:1117 msgid "Set this option to disable this rule without removing it from the list." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1128 +#: src/usr/local/www/firewall_rules_edit.php:1123 msgid "Quick" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1131 +#: src/usr/local/www/firewall_rules_edit.php:1126 msgid "" "Set this option to apply this action to traffic that matches this rule " "immediately." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1141 +#: src/usr/local/www/firewall_rules_edit.php:1136 msgid "View the NAT rule" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1146 +#: src/usr/local/www/firewall_rules_edit.php:1141 msgid "Associated filter rule" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1178 +#: src/usr/local/www/firewall_rules_edit.php:1173 msgid "Choose the interface(s) for this rule." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1185 +#: src/usr/local/www/firewall_rules_edit.php:1180 msgid "Choose the interface from which packets must come to match this rule." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1195 +#: src/usr/local/www/firewall_rules_edit.php:1190 msgid "in" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1196 +#: src/usr/local/www/firewall_rules_edit.php:1191 msgid "out" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1191 +#: src/usr/local/www/firewall_rules_edit.php:1186 #: src/usr/local/www/services_captiveportal_hostname_edit.php:176 #: src/usr/local/www/services_captiveportal_ip_edit.php:233 #: src/usr/local/www/status_ipsec_spd.php:60 msgid "Direction" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1217 +#: src/usr/local/www/firewall_rules_edit.php:1212 msgid "Select the Internet Protocol version this rule applies to." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1240 +#: src/usr/local/www/firewall_rules_edit.php:1235 msgid "Choose which IP protocol this rule should match." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1247 -#: src/usr/local/www/firewall_rules_edit.php:1254 +#: src/usr/local/www/firewall_rules_edit.php:1242 +#: src/usr/local/www/firewall_rules_edit.php:1249 msgid "" "If ICMP is selected for the protocol above, an ICMP type may be specified " "here." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1251 +#: src/usr/local/www/firewall_rules_edit.php:1246 msgid "ICMPv6 type" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1266 +#: src/usr/local/www/firewall_rules_edit.php:1261 msgid " not" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1293 +#: src/usr/local/www/firewall_rules_edit.php:1288 msgid "This firewall (self)" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1317 +#: src/usr/local/www/firewall_rules_edit.php:1312 msgid " Type" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1324 +#: src/usr/local/www/firewall_rules_edit.php:1319 msgid " Address" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1339 +#: src/usr/local/www/firewall_rules_edit.php:1332 +msgid "" +"The source port (or port range) is usually random and almost never equal to " +"the destination port range. It is not usually required, and should usually " +"be left at its default value, <b>any</b>)." +msgstr "" + +#: src/usr/local/www/firewall_rules_edit.php:1337 msgid "(other)" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1345 +#: src/usr/local/www/firewall_rules_edit.php:1342 msgid " port range" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1351 +#: src/usr/local/www/firewall_rules_edit.php:1348 msgid " port begin" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1354 +#: src/usr/local/www/firewall_rules_edit.php:1351 #: src/usr/local/www/services_captiveportal_hostname_edit.php:154 #: src/usr/local/www/services_captiveportal_ip_edit.php:198 -#: src/usr/local/www/services_dhcp.php:835 -#: src/usr/local/www/services_dhcpv6.php:613 -#: src/usr/local/www/services_dhcpv6.php:638 +#: src/usr/local/www/services_dhcp.php:848 +#: src/usr/local/www/services_dhcpv6.php:608 +#: src/usr/local/www/services_dhcpv6.php:633 #: src/usr/local/www/system_gateways_edit.php:707 #: src/usr/local/www/system_gateways_edit.php:727 msgid "From" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1365 +#: src/usr/local/www/firewall_rules_edit.php:1362 msgid " port end" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1368 +#: src/usr/local/www/firewall_rules_edit.php:1365 #: src/usr/local/www/services_captiveportal_hostname_edit.php:154 #: src/usr/local/www/services_captiveportal_ip_edit.php:198 -#: src/usr/local/www/services_dhcp.php:841 -#: src/usr/local/www/services_dhcpv6.php:622 -#: src/usr/local/www/services_dhcpv6.php:647 +#: src/usr/local/www/services_dhcp.php:854 +#: src/usr/local/www/services_dhcpv6.php:617 +#: src/usr/local/www/services_dhcpv6.php:642 #: src/usr/local/www/system_gateways_edit.php:714 #: src/usr/local/www/system_gateways_edit.php:734 msgid "To" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1379 -msgid "" -"Specify the source port or port range for this rule. This is usually random " -"and almost never equal to the destination port range (and should usually be " -"<b>any</b>). The \"To\" field may be left empty if only filtering a single " -"port." -msgstr "" - -#: src/usr/local/www/firewall_rules_edit.php:1384 -msgid "" -"Specify the destination port or port range for this rule. The \"To\" field " -"may be left empty if only filtering a single port." -msgstr "" - -#: src/usr/local/www/firewall_rules_edit.php:1393 +#: src/usr/local/www/firewall_rules_edit.php:1381 msgid "Extra Options" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1399 +#: src/usr/local/www/firewall_rules_edit.php:1387 msgid "" "Hint: the firewall has limited local log space. Don't turn on logging for " "everything. If doing a lot of logging, consider using a remote syslog server " @@ -12712,189 +12465,189 @@ msgid "" "a> page)." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1409 +#: src/usr/local/www/firewall_rules_edit.php:1397 #: src/usr/local/www/services_unbound_acls.php:239 msgid "A description may be entered here for administrative reference." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1432 +#: src/usr/local/www/firewall_rules_edit.php:1420 msgid "Source OS" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1435 +#: src/usr/local/www/firewall_rules_edit.php:1423 msgid "" "Note: this only works for TCP rules. General OS choice matches all subtypes." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1439 +#: src/usr/local/www/firewall_rules_edit.php:1427 msgid "Diffserv Code Point" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1446 +#: src/usr/local/www/firewall_rules_edit.php:1434 msgid "Allow IP options" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1454 +#: src/usr/local/www/firewall_rules_edit.php:1442 #: src/usr/local/www/system_advanced_firewall.php:519 msgid "Disable reply-to" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1461 +#: src/usr/local/www/firewall_rules_edit.php:1449 #: src/usr/local/www/interfaces_qinq.php:110 msgid "Tag" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1464 +#: src/usr/local/www/firewall_rules_edit.php:1452 msgid "" "A packet matching this rule can be marked and this mark used to match on " "other NAT/filter rules. It is called <b>Policy filtering</b>." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1469 +#: src/usr/local/www/firewall_rules_edit.php:1457 msgid "Tagged" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1472 +#: src/usr/local/www/firewall_rules_edit.php:1460 msgid "A packet can be matched on a mark placed before on another rule." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1476 +#: src/usr/local/www/firewall_rules_edit.php:1464 msgid "Max. states" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1479 +#: src/usr/local/www/firewall_rules_edit.php:1467 msgid "Maximum state entries this rule can create." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1483 +#: src/usr/local/www/firewall_rules_edit.php:1471 msgid "Max. src nodes" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1486 +#: src/usr/local/www/firewall_rules_edit.php:1474 msgid "Maximum number of unique source hosts." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1490 +#: src/usr/local/www/firewall_rules_edit.php:1478 msgid "Max. connections" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1493 +#: src/usr/local/www/firewall_rules_edit.php:1481 msgid "Maximum number of established connections per host (TCP only)." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1497 +#: src/usr/local/www/firewall_rules_edit.php:1485 msgid "Max. src. states" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1500 +#: src/usr/local/www/firewall_rules_edit.php:1488 msgid "Maximum state entries per host." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1504 +#: src/usr/local/www/firewall_rules_edit.php:1492 msgid "Max. src. conn. Rate" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1507 +#: src/usr/local/www/firewall_rules_edit.php:1495 msgid "Maximum new connections per host (TCP only)." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1511 +#: src/usr/local/www/firewall_rules_edit.php:1499 msgid "Max. src. conn. Rates" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1515 +#: src/usr/local/www/firewall_rules_edit.php:1503 msgid "/ per how many second(s) (TCP only)" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1519 +#: src/usr/local/www/firewall_rules_edit.php:1507 msgid "State timeout" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1523 +#: src/usr/local/www/firewall_rules_edit.php:1511 msgid "State Timeout in seconds (TCP only)" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1526 +#: src/usr/local/www/firewall_rules_edit.php:1514 #: src/usr/local/www/status_logs_filter.php:331 #: src/usr/local/www/status_logs_filter_dynamic.php:477 msgid "TCP Flags" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1528 +#: src/usr/local/www/firewall_rules_edit.php:1516 msgid "" "Use this to choose TCP flags that must be set or cleared for this rule to " "match." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1532 +#: src/usr/local/www/firewall_rules_edit.php:1520 msgid "No pfSync" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1542 +#: src/usr/local/www/firewall_rules_edit.php:1530 msgid "Keep" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1543 +#: src/usr/local/www/firewall_rules_edit.php:1531 msgid "Sloppy" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1544 +#: src/usr/local/www/firewall_rules_edit.php:1532 msgid "Synproxy" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1539 +#: src/usr/local/www/firewall_rules_edit.php:1527 msgid "State type" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1547 +#: src/usr/local/www/firewall_rules_edit.php:1535 msgid "" "Select which type of state tracking mechanism to use. If in doubt, use keep " "state.<br /><span></span>" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1555 +#: src/usr/local/www/firewall_rules_edit.php:1543 msgid "This does NOT prevent the rule from being overwritten on Slave." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1561 +#: src/usr/local/www/firewall_rules_edit.php:1549 msgid "VLAN Prio" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1564 +#: src/usr/local/www/firewall_rules_edit.php:1552 msgid "Choose 802.1p priority to match on." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1568 +#: src/usr/local/www/firewall_rules_edit.php:1556 msgid "VLAN Prio Set" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1571 +#: src/usr/local/www/firewall_rules_edit.php:1559 msgid "Choose 802.1p priority to apply." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1585 +#: src/usr/local/www/firewall_rules_edit.php:1573 msgid "Leave as 'none' to leave the rule enabled all the time." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1616 +#: src/usr/local/www/firewall_rules_edit.php:1604 msgid "" "Leave as 'default' to use the system routing table. Or choose a gateway to " "utilize policy based routing." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1619 +#: src/usr/local/www/firewall_rules_edit.php:1607 msgid "In / Out pipe" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1623 +#: src/usr/local/www/firewall_rules_edit.php:1611 msgid "DNpipe" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1630 +#: src/usr/local/www/firewall_rules_edit.php:1618 msgid "PDNpipe" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1635 +#: src/usr/local/www/firewall_rules_edit.php:1623 msgid "" "Choose the Out queue/Virtual interface only if In is also selected. The Out " "selection is applied to traffic leaving the interface where the rule is " @@ -12904,23 +12657,23 @@ msgid "" "is for incoming and In is for outgoing." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1643 +#: src/usr/local/www/firewall_rules_edit.php:1631 msgid "Ackqueue / Queue" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1660 +#: src/usr/local/www/firewall_rules_edit.php:1648 msgid "Ackqueue" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1672 +#: src/usr/local/www/firewall_rules_edit.php:1660 msgid "Choose the Acknowledge Queue only if there is a selected Queue." msgstr "" #: src/usr/local/www/firewall_schedule.php:42 #: src/usr/local/www/firewall_schedule.php:87 #: src/usr/local/www/firewall_schedule_edit.php:52 -#: src/usr/local/www/head.inc:251 -#: src/usr/local/www/system_advanced_misc.php:463 +#: src/usr/local/www/head.inc:249 +#: src/usr/local/www/system_advanced_misc.php:462 msgid "Schedules" msgstr "" @@ -13147,7 +12900,7 @@ msgstr "" #: src/usr/local/www/firewall_shaper_wizards.php:80 #: src/usr/local/www/vpn_openvpn_client.php:417 #: src/usr/local/www/vpn_openvpn_csc.php:299 -#: src/usr/local/www/vpn_openvpn_server.php:584 +#: src/usr/local/www/vpn_openvpn_server.php:588 msgid "Wizards" msgstr "" @@ -13212,7 +12965,7 @@ msgid "" msgstr "" #: src/usr/local/www/firewall_virtual_ip.php:103 -#: src/usr/local/www/license.php:119 +#: src/usr/local/www/license.php:111 msgid "server" msgstr "" @@ -13264,7 +13017,7 @@ msgstr "" #: src/usr/local/www/firewall_virtual_ip.php:238 #: src/usr/local/www/firewall_virtual_ip_edit.php:296 -#: src/usr/local/www/head.inc:253 +#: src/usr/local/www/head.inc:251 msgid "Virtual IPs" msgstr "" @@ -13518,123 +13271,123 @@ msgstr "" msgid "Cannot get CPU load" msgstr "" -#: src/usr/local/www/guiconfig.inc:127 +#: src/usr/local/www/guiconfig.inc:128 msgid "One Level" msgstr "" -#: src/usr/local/www/guiconfig.inc:128 +#: src/usr/local/www/guiconfig.inc:129 msgid "Entire Subtree" msgstr "" -#: src/usr/local/www/guiconfig.inc:155 +#: src/usr/local/www/guiconfig.inc:156 msgid "Authentication and Accounting" msgstr "" -#: src/usr/local/www/guiconfig.inc:157 +#: src/usr/local/www/guiconfig.inc:158 #: src/usr/local/www/services_captiveportal.php:877 #: src/usr/local/www/vpn_l2tp.php:289 msgid "Accounting" msgstr "" -#: src/usr/local/www/guiconfig.inc:217 +#: src/usr/local/www/guiconfig.inc:218 msgid "This Firewall" msgstr "" -#: src/usr/local/www/guiconfig.inc:228 +#: src/usr/local/www/guiconfig.inc:229 msgid "autoselect" msgstr "" -#: src/usr/local/www/guiconfig.inc:229 +#: src/usr/local/www/guiconfig.inc:230 msgid "100BASE-TX full-duplex" msgstr "" -#: src/usr/local/www/guiconfig.inc:230 +#: src/usr/local/www/guiconfig.inc:231 msgid "100BASE-TX half-duplex" msgstr "" -#: src/usr/local/www/guiconfig.inc:231 +#: src/usr/local/www/guiconfig.inc:232 msgid "10BASE-T full-duplex" msgstr "" -#: src/usr/local/www/guiconfig.inc:232 +#: src/usr/local/www/guiconfig.inc:233 msgid "10BASE-T half-duplex" msgstr "" -#: src/usr/local/www/guiconfig.inc:235 src/usr/local/www/interfaces.php:2901 +#: src/usr/local/www/guiconfig.inc:236 src/usr/local/www/interfaces.php:2909 #: src/usr/local/www/interfaces_wireless_edit.php:190 msgid "Infrastructure (BSS)" msgstr "" -#: src/usr/local/www/guiconfig.inc:236 src/usr/local/www/interfaces.php:2901 +#: src/usr/local/www/guiconfig.inc:237 src/usr/local/www/interfaces.php:2909 #: src/usr/local/www/interfaces_wireless_edit.php:191 msgid "Ad-hoc (IBSS)" msgstr "" -#: src/usr/local/www/guiconfig.inc:237 src/usr/local/www/interfaces.php:2901 +#: src/usr/local/www/guiconfig.inc:238 src/usr/local/www/interfaces.php:2909 #: src/usr/local/www/interfaces_wireless_edit.php:192 msgid "Access Point" msgstr "" -#: src/usr/local/www/guiconfig.inc:244 +#: src/usr/local/www/guiconfig.inc:245 #, php-format msgid "The field %s contains invalid characters." msgstr "" -#: src/usr/local/www/guiconfig.inc:250 +#: src/usr/local/www/guiconfig.inc:251 #, php-format msgid "The field %s is required." msgstr "" -#: src/usr/local/www/guiconfig.inc:257 +#: src/usr/local/www/guiconfig.inc:258 msgid "The following input errors were detected:" msgstr "" -#: src/usr/local/www/guiconfig.inc:314 +#: src/usr/local/www/guiconfig.inc:315 msgid "Apply Changes" msgstr "" -#: src/usr/local/www/guiconfig.inc:347 +#: src/usr/local/www/guiconfig.inc:348 #: src/usr/local/www/status_logs_common.inc:720 msgid "The changes have been applied successfully." msgstr "" -#: src/usr/local/www/guiconfig.inc:354 +#: src/usr/local/www/guiconfig.inc:355 msgid "" "<a href=\"status_filter_reload.php\">Monitor</a> the filter reload progress." msgstr "" -#: src/usr/local/www/guiconfig.inc:535 src/usr/local/www/guiconfig.inc:586 +#: src/usr/local/www/guiconfig.inc:536 src/usr/local/www/guiconfig.inc:587 #, php-format msgid "File %s is a directory." msgstr "" -#: src/usr/local/www/guiconfig.inc:537 src/usr/local/www/guiconfig.inc:588 +#: src/usr/local/www/guiconfig.inc:538 src/usr/local/www/guiconfig.inc:589 msgid "Log file started." msgstr "" -#: src/usr/local/www/guiconfig.inc:975 +#: src/usr/local/www/guiconfig.inc:976 msgid "Currently viewing: " msgstr "" -#: src/usr/local/www/guiconfig.inc:1062 +#: src/usr/local/www/guiconfig.inc:1063 msgid "listing only first 10k items" msgstr "" -#: src/usr/local/www/guiconfig.inc:1072 -#: src/usr/local/www/services_dhcp.php:1241 -#: src/usr/local/www/services_dhcpv6.php:923 +#: src/usr/local/www/guiconfig.inc:1073 +#: src/usr/local/www/services_dhcp.php:1254 +#: src/usr/local/www/services_dhcpv6.php:918 #: src/usr/local/www/system_advanced_sysctl.php:162 #: src/usr/local/www/system_advanced_sysctl.php:211 -#: src/usr/local/www/system_certmanager.php:738 +#: src/usr/local/www/system_certmanager.php:751 msgid "Value" msgstr "" #: src/usr/local/www/head.inc:211 -#: src/usr/local/www/system_advanced_admin.php:285 +#: src/usr/local/www/system_advanced_admin.php:283 #: src/usr/local/www/system_advanced_firewall.php:371 -#: src/usr/local/www/system_advanced_misc.php:287 +#: src/usr/local/www/system_advanced_misc.php:286 #: src/usr/local/www/system_advanced_network.php:140 -#: src/usr/local/www/system_advanced_notifications.php:181 +#: src/usr/local/www/system_advanced_notifications.php:188 #: src/usr/local/www/system_advanced_sysctl.php:121 #: src/usr/local/www/system_gateways_edit.php:685 #: src/usr/local/www/vpn_openvpn_csc.php:560 @@ -13642,7 +13395,7 @@ msgstr "" msgid "Advanced" msgstr "" -#: src/usr/local/www/head.inc:213 src/usr/local/www/system.php:336 +#: src/usr/local/www/head.inc:213 src/usr/local/www/system.php:341 msgid "General Setup" msgstr "" @@ -13650,11 +13403,11 @@ msgstr "" msgid "High Avail. Sync" msgstr "" -#: src/usr/local/www/head.inc:218 +#: src/usr/local/www/head.inc:216 msgid "Setup Wizard" msgstr "" -#: src/usr/local/www/head.inc:219 src/usr/local/www/status_logs.php:59 +#: src/usr/local/www/head.inc:217 src/usr/local/www/status_logs.php:59 #: src/usr/local/www/status_logs_common.inc:105 #: src/usr/local/www/system_gateway_groups.php:104 #: src/usr/local/www/system_gateway_groups_edit.php:147 @@ -13665,42 +13418,42 @@ msgstr "" msgid "Routing" msgstr "" -#: src/usr/local/www/head.inc:220 +#: src/usr/local/www/head.inc:218 msgid "Cert. Manager" msgstr "" -#: src/usr/local/www/head.inc:222 src/usr/local/www/head.inc:224 +#: src/usr/local/www/head.inc:220 src/usr/local/www/head.inc:222 #: src/usr/local/www/system_authservers.php:403 -#: src/usr/local/www/system_groupmanager.php:263 +#: src/usr/local/www/system_groupmanager.php:257 #: src/usr/local/www/system_groupmanager_addprivs.php:36 -#: src/usr/local/www/system_usermanager.php:533 +#: src/usr/local/www/system_usermanager.php:527 #: src/usr/local/www/system_usermanager_addprivs.php:36 #: src/usr/local/www/system_usermanager_settings.php:106 msgid "User Manager" msgstr "" -#: src/usr/local/www/head.inc:228 src/usr/local/www/system_user_settings.php:32 +#: src/usr/local/www/head.inc:226 src/usr/local/www/system_user_settings.php:32 msgid "User Settings" msgstr "" -#: src/usr/local/www/head.inc:236 +#: src/usr/local/www/head.inc:234 msgid "(assign)" msgstr "" -#: src/usr/local/www/head.inc:266 src/usr/local/www/services_dhcpv6.php:472 +#: src/usr/local/www/head.inc:264 src/usr/local/www/services_dhcpv6.php:467 #: src/usr/local/www/services_dhcpv6_edit.php:201 -#: src/usr/local/www/services_router_advertisements.php:242 +#: src/usr/local/www/services_router_advertisements.php:237 msgid "DHCPv6 Server & RA" msgstr "" -#: src/usr/local/www/head.inc:270 src/usr/local/www/services_igmpproxy.php:68 +#: src/usr/local/www/head.inc:268 src/usr/local/www/services_igmpproxy.php:68 #: src/usr/local/www/services_igmpproxy.php:82 #: src/usr/local/www/services_igmpproxy_edit.php:33 -#: src/usr/local/www/status_logs_settings.php:288 +#: src/usr/local/www/status_logs_settings.php:296 msgid "IGMP Proxy" msgstr "" -#: src/usr/local/www/head.inc:271 src/usr/local/www/head.inc:305 +#: src/usr/local/www/head.inc:269 src/usr/local/www/head.inc:303 #: src/usr/local/www/load_balancer_monitor.php:73 #: src/usr/local/www/load_balancer_monitor_edit.php:202 #: src/usr/local/www/load_balancer_pool.php:87 @@ -13711,48 +13464,48 @@ msgstr "" #: src/usr/local/www/status_lb_pool.php:59 #: src/usr/local/www/status_lb_vs.php:45 src/usr/local/www/status_logs.php:51 #: src/usr/local/www/status_logs_common.inc:95 -#: src/usr/local/www/status_logs_settings.php:211 +#: src/usr/local/www/status_logs_settings.php:219 msgid "Load Balancer" msgstr "" -#: src/usr/local/www/head.inc:272 src/usr/local/www/head.inc:306 -#: src/usr/local/www/services_dhcp.php:1056 +#: src/usr/local/www/head.inc:270 src/usr/local/www/head.inc:304 +#: src/usr/local/www/services_dhcp.php:1069 #: src/usr/local/www/services_ntpd.php:184 #: src/usr/local/www/services_ntpd_acls.php:161 #: src/usr/local/www/services_ntpd_gps.php:191 #: src/usr/local/www/services_ntpd_pps.php:102 #: src/usr/local/www/status_logs.php:55 #: src/usr/local/www/status_logs_common.inc:97 -#: src/usr/local/www/status_logs_settings.php:213 +#: src/usr/local/www/status_logs_settings.php:221 #: src/usr/local/www/status_ntpd.php:254 msgid "NTP" msgstr "" -#: src/usr/local/www/head.inc:274 src/usr/local/www/services_snmp.php:177 +#: src/usr/local/www/head.inc:272 src/usr/local/www/services_snmp.php:177 msgid "SNMP" msgstr "" -#: src/usr/local/www/head.inc:280 src/usr/local/www/head.inc:319 +#: src/usr/local/www/head.inc:278 src/usr/local/www/head.inc:313 #: src/usr/local/www/status_upnp.php:42 msgid "UPnP & NAT-PMP" msgstr "" -#: src/usr/local/www/head.inc:291 src/usr/local/www/interfaces.php:1616 -#: src/usr/local/www/interfaces_ppps_edit.php:444 +#: src/usr/local/www/head.inc:289 src/usr/local/www/interfaces.php:1619 +#: src/usr/local/www/interfaces_ppps_edit.php:464 #: src/usr/local/www/vpn_l2tp.php:173 src/usr/local/www/vpn_l2tp_users.php:29 #: src/usr/local/www/vpn_l2tp_users_edit.php:29 msgid "L2TP" msgstr "" -#: src/usr/local/www/head.inc:297 +#: src/usr/local/www/head.inc:295 msgid "CARP (failover)" msgstr "" -#: src/usr/local/www/head.inc:298 src/usr/local/www/index.php:289 +#: src/usr/local/www/head.inc:296 src/usr/local/www/index.php:289 msgid "Dashboard" msgstr "" -#: src/usr/local/www/head.inc:299 +#: src/usr/local/www/head.inc:297 #: src/usr/local/www/status_gateway_groups.php:47 #: src/usr/local/www/status_gateway_groups.php:52 #: src/usr/local/www/status_gateway_groups.php:64 @@ -13772,24 +13525,24 @@ msgstr "" msgid "Gateways" msgstr "" -#: src/usr/local/www/head.inc:300 src/usr/local/www/status_dhcp_leases.php:36 +#: src/usr/local/www/head.inc:298 src/usr/local/www/status_dhcp_leases.php:36 msgid "DHCP Leases" msgstr "" -#: src/usr/local/www/head.inc:301 src/usr/local/www/status_dhcpv6_leases.php:37 +#: src/usr/local/www/head.inc:299 src/usr/local/www/status_dhcpv6_leases.php:37 msgid "DHCPv6 Leases" msgstr "" -#: src/usr/local/www/head.inc:302 src/usr/local/www/status_filter_reload.php:33 +#: src/usr/local/www/head.inc:300 src/usr/local/www/status_filter_reload.php:33 #: src/usr/local/www/status_filter_reload.php:60 msgid "Filter Reload" msgstr "" -#: src/usr/local/www/head.inc:310 src/usr/local/www/status_pkglogs.php:71 +#: src/usr/local/www/head.inc:306 src/usr/local/www/status_pkglogs.php:71 msgid "Package Logs" msgstr "" -#: src/usr/local/www/head.inc:314 +#: src/usr/local/www/head.inc:308 #: src/usr/local/www/load_balancer_monitor.php:73 #: src/usr/local/www/load_balancer_monitor_edit.php:202 #: src/usr/local/www/load_balancer_pool.php:87 @@ -13811,10 +13564,10 @@ msgstr "" #: src/usr/local/www/services_captiveportal_zones_edit.php:35 #: src/usr/local/www/services_checkip.php:65 #: src/usr/local/www/services_checkip_edit.php:106 -#: src/usr/local/www/services_dhcp.php:693 -#: src/usr/local/www/services_dhcp_edit.php:381 +#: src/usr/local/www/services_dhcp.php:699 +#: src/usr/local/www/services_dhcp_edit.php:388 #: src/usr/local/www/services_dhcp_relay.php:120 -#: src/usr/local/www/services_dhcpv6.php:472 +#: src/usr/local/www/services_dhcpv6.php:467 #: src/usr/local/www/services_dhcpv6_edit.php:201 #: src/usr/local/www/services_dhcpv6_relay.php:118 #: src/usr/local/www/services_dnsmasq.php:182 @@ -13832,7 +13585,7 @@ msgstr "" #: src/usr/local/www/services_pppoe_edit.php:280 #: src/usr/local/www/services_rfc2136.php:58 #: src/usr/local/www/services_rfc2136_edit.php:148 -#: src/usr/local/www/services_router_advertisements.php:242 +#: src/usr/local/www/services_router_advertisements.php:237 #: src/usr/local/www/services_snmp.php:177 #: src/usr/local/www/services_unbound.php:238 #: src/usr/local/www/services_unbound_acls.php:174 @@ -13847,12 +13600,12 @@ msgstr "" msgid "Services" msgstr "" -#: src/usr/local/www/head.inc:316 src/usr/local/www/status_graph.php:132 -#: src/usr/local/www/status_graph.php:240 +#: src/usr/local/www/head.inc:310 src/usr/local/www/status_graph.php:120 +#: src/usr/local/www/status_graph.php:448 msgid "Traffic Graph" msgstr "" -#: src/usr/local/www/head.inc:331 src/usr/local/www/interfaces_assign.php:498 +#: src/usr/local/www/head.inc:325 src/usr/local/www/interfaces_assign.php:498 #: src/usr/local/www/interfaces_bridge.php:85 #: src/usr/local/www/interfaces_gif.php:80 #: src/usr/local/www/interfaces_gre.php:80 @@ -13870,92 +13623,84 @@ msgstr "" msgid "Wireless" msgstr "" -#: src/usr/local/www/head.inc:373 -msgid "Restart HTTPD" -msgstr "" - -#: src/usr/local/www/head.inc:379 +#: src/usr/local/www/head.inc:365 msgid "pfSense Gold" msgstr "" -#: src/usr/local/www/head.inc:384 +#: src/usr/local/www/head.inc:370 msgid "About this Page" msgstr "" -#: src/usr/local/www/head.inc:386 +#: src/usr/local/www/head.inc:372 msgid "Bug Database" msgstr "" -#: src/usr/local/www/head.inc:389 +#: src/usr/local/www/head.inc:375 msgid "User Forum" msgstr "" -#: src/usr/local/www/head.inc:390 +#: src/usr/local/www/head.inc:376 msgid "Documentation" msgstr "" -#: src/usr/local/www/head.inc:391 -msgid "Developers Wiki" -msgstr "" - -#: src/usr/local/www/head.inc:392 +#: src/usr/local/www/head.inc:377 msgid "Paid Support" msgstr "" -#: src/usr/local/www/head.inc:393 +#: src/usr/local/www/head.inc:378 msgid "pfSense Book" msgstr "" -#: src/usr/local/www/head.inc:394 +#: src/usr/local/www/head.inc:379 msgid "FreeBSD Handbook" msgstr "" -#: src/usr/local/www/head.inc:462 src/usr/local/www/head.inc:624 +#: src/usr/local/www/head.inc:447 src/usr/local/www/head.inc:609 msgid "Notices" msgstr "" -#: src/usr/local/www/head.inc:471 +#: src/usr/local/www/head.inc:456 msgid "Log out" msgstr "" -#: src/usr/local/www/head.inc:495 +#: src/usr/local/www/head.inc:480 msgid "Save dashboard layout" msgstr "" -#: src/usr/local/www/head.inc:503 +#: src/usr/local/www/head.inc:488 msgid "Available widgets" msgstr "" -#: src/usr/local/www/head.inc:511 +#: src/usr/local/www/head.inc:496 msgid "Log filter" msgstr "" -#: src/usr/local/www/head.inc:522 +#: src/usr/local/www/head.inc:507 msgid "Manage log" msgstr "" -#: src/usr/local/www/head.inc:540 +#: src/usr/local/www/head.inc:525 msgid "Refresh Graph" msgstr "" -#: src/usr/local/www/head.inc:580 +#: src/usr/local/www/head.inc:565 msgid "Help for items on this page" msgstr "" -#: src/usr/local/www/head.inc:591 +#: src/usr/local/www/head.inc:576 #, php-format msgid "" "<p>%s is booting, then packages will be reinstalled in the background.</" "p><p>Do not make changes in the GUI until this is complete.</p>" msgstr "" -#: src/usr/local/www/head.inc:594 +#: src/usr/local/www/head.inc:579 msgid "" "<p>Packages are currently being reinstalled in the background.</p><p>Do not " "make changes in the GUI until this is complete.</p>" msgstr "" -#: src/usr/local/www/head.inc:595 +#: src/usr/local/www/head.inc:580 #, php-format msgid "" "<p>If the above message is still displayed after a couple of hours, use the " @@ -13963,15 +13708,15 @@ msgid "" "> %2$s\">%1$s > %2$s</a> page and reinstall packages manually.</p>" msgstr "" -#: src/usr/local/www/head.inc:605 +#: src/usr/local/www/head.inc:590 msgid "This page is currently being managed by a remote machine." msgstr "" -#: src/usr/local/www/head.inc:663 +#: src/usr/local/www/head.inc:648 msgid "Close" msgstr "" -#: src/usr/local/www/head.inc:664 +#: src/usr/local/www/head.inc:649 msgid "Mark All as Read" msgstr "" @@ -13982,22 +13727,22 @@ msgid "" "href='crash_reporter.php'>here</a> for more information." msgstr "" -#: src/usr/local/www/index.php:185 +#: src/usr/local/www/index.php:186 #, php-format msgid "Welcome to %s!\n" msgstr "" -#: src/usr/local/www/index.php:186 +#: src/usr/local/www/index.php:187 msgid "One moment while the initial setup wizard starts." msgstr "" -#: src/usr/local/www/index.php:187 +#: src/usr/local/www/index.php:188 msgid "" "Embedded platform users: Please be patient, the wizard takes a little longer " "to run than the normal GUI." msgstr "" -#: src/usr/local/www/index.php:188 +#: src/usr/local/www/index.php:189 #, php-format msgid "To bypass the wizard, click on the %s logo on the initial page." msgstr "" @@ -14010,7 +13755,7 @@ msgstr "" msgid "One or more widgets have been moved but have not yet been saved" msgstr "" -#: src/usr/local/www/interfaces.php:411 +#: src/usr/local/www/interfaces.php:412 msgid "The settings have already been applied!" msgstr "" @@ -14065,7 +13810,7 @@ msgid "Modem Port" msgstr "" #: src/usr/local/www/interfaces.php:541 -#: src/usr/local/www/interfaces_ppps_edit.php:200 +#: src/usr/local/www/interfaces_ppps_edit.php:204 msgid "Phone Number" msgstr "" @@ -14078,17 +13823,17 @@ msgid "PPPoE password" msgstr "" #: src/usr/local/www/interfaces.php:547 src/usr/local/www/interfaces.php:557 -#: src/usr/local/www/interfaces.php:567 src/usr/local/www/interfaces.php:2562 -#: src/usr/local/www/interfaces.php:2692 -#: src/usr/local/www/interfaces_ppps_edit.php:206 -#: src/usr/local/www/interfaces_ppps_edit.php:217 +#: src/usr/local/www/interfaces.php:567 src/usr/local/www/interfaces.php:2570 +#: src/usr/local/www/interfaces.php:2700 +#: src/usr/local/www/interfaces_ppps_edit.php:210 +#: src/usr/local/www/interfaces_ppps_edit.php:221 msgid "Dial on demand" msgstr "" #: src/usr/local/www/interfaces.php:547 src/usr/local/www/interfaces.php:557 #: src/usr/local/www/interfaces.php:567 -#: src/usr/local/www/interfaces_ppps_edit.php:206 -#: src/usr/local/www/interfaces_ppps_edit.php:217 +#: src/usr/local/www/interfaces_ppps_edit.php:210 +#: src/usr/local/www/interfaces_ppps_edit.php:221 msgid "Idle timeout value" msgstr "" @@ -14237,22 +13982,22 @@ msgid "The service name contains invalid characters." msgstr "" #: src/usr/local/www/interfaces.php:754 src/usr/local/www/interfaces.php:777 -#: src/usr/local/www/interfaces_ppps_edit.php:247 +#: src/usr/local/www/interfaces_ppps_edit.php:251 msgid "The idle timeout value must be an integer." msgstr "" #: src/usr/local/www/interfaces.php:758 -#: src/usr/local/www/interfaces_ppps_edit.php:251 +#: src/usr/local/www/interfaces_ppps_edit.php:255 msgid "A valid PPPoE reset hour must be specified (0-23)." msgstr "" #: src/usr/local/www/interfaces.php:762 -#: src/usr/local/www/interfaces_ppps_edit.php:255 +#: src/usr/local/www/interfaces_ppps_edit.php:259 msgid "A valid PPPoE reset minute must be specified (0-59)." msgstr "" #: src/usr/local/www/interfaces.php:765 -#: src/usr/local/www/interfaces_ppps_edit.php:258 +#: src/usr/local/www/interfaces_ppps_edit.php:262 msgid "A valid PPPoE reset date must be specified (mm/dd/yyyy)." msgstr "" @@ -14293,7 +14038,7 @@ msgstr "" msgid "The MSS must be an integer between 576 and 65535 bytes." msgstr "" -#: src/usr/local/www/interfaces.php:843 src/usr/local/www/interfaces.php:2906 +#: src/usr/local/www/interfaces.php:843 src/usr/local/www/interfaces.php:2914 #: src/usr/local/www/status_interfaces.php:142 msgid "SSID" msgstr "" @@ -14381,367 +14126,371 @@ msgstr "" msgid "PTPP Password and confirmed password must match!" msgstr "" -#: src/usr/local/www/interfaces.php:1590 +#: src/usr/local/www/interfaces.php:1593 #, php-format msgid "" "Unable to change mode to %s. The maximum number of wireless clones supported " "in this mode may have been reached." msgstr "" -#: src/usr/local/www/interfaces.php:1616 +#: src/usr/local/www/interfaces.php:1619 msgid "Static IPv4" msgstr "" -#: src/usr/local/www/interfaces.php:1616 src/usr/local/www/status_logs.php:43 +#: src/usr/local/www/interfaces.php:1619 src/usr/local/www/status_logs.php:43 #: src/usr/local/www/status_logs_common.inc:90 -#: src/usr/local/www/status_logs_settings.php:206 +#: src/usr/local/www/status_logs_settings.php:214 msgid "DHCP" msgstr "" -#: src/usr/local/www/interfaces.php:1616 -#: src/usr/local/www/interfaces_ppps_edit.php:444 +#: src/usr/local/www/interfaces.php:1619 +#: src/usr/local/www/interfaces_ppps_edit.php:464 #: src/usr/local/www/status_logs.php:49 #: src/usr/local/www/status_logs_common.inc:93 -#: src/usr/local/www/status_logs_settings.php:209 +#: src/usr/local/www/status_logs_settings.php:217 msgid "PPP" msgstr "" -#: src/usr/local/www/interfaces.php:1616 -#: src/usr/local/www/interfaces_ppps_edit.php:444 +#: src/usr/local/www/interfaces.php:1619 +#: src/usr/local/www/interfaces_ppps_edit.php:464 msgid "PPPoE" msgstr "" -#: src/usr/local/www/interfaces.php:1616 -#: src/usr/local/www/interfaces_ppps_edit.php:444 +#: src/usr/local/www/interfaces.php:1619 +#: src/usr/local/www/interfaces_ppps_edit.php:464 msgid "PPTP" msgstr "" -#: src/usr/local/www/interfaces.php:1617 +#: src/usr/local/www/interfaces.php:1620 msgid "Static IPv6" msgstr "" -#: src/usr/local/www/interfaces.php:1617 +#: src/usr/local/www/interfaces.php:1620 msgid "DHCP6" msgstr "" -#: src/usr/local/www/interfaces.php:1617 +#: src/usr/local/www/interfaces.php:1620 msgid "SLAAC" msgstr "" -#: src/usr/local/www/interfaces.php:1617 +#: src/usr/local/www/interfaces.php:1620 msgid "6rd Tunnel" msgstr "" -#: src/usr/local/www/interfaces.php:1617 +#: src/usr/local/www/interfaces.php:1620 msgid "6to4 Tunnel" msgstr "" -#: src/usr/local/www/interfaces.php:1617 +#: src/usr/local/www/interfaces.php:1620 msgid "Track Interface" msgstr "" -#: src/usr/local/www/interfaces.php:1627 +#: src/usr/local/www/interfaces.php:1630 msgid "Default (no preference, typically autoselect)" msgstr "" -#: src/usr/local/www/interfaces.php:1628 +#: src/usr/local/www/interfaces.php:1631 msgid "------- Media Supported by this interface -------" msgstr "" -#: src/usr/local/www/interfaces.php:1671 +#: src/usr/local/www/interfaces.php:1674 #, php-format msgid "The %s configuration has been changed." msgstr "" -#: src/usr/local/www/interfaces.php:1672 +#: src/usr/local/www/interfaces.php:1675 msgid "The changes must be applied to take effect." msgstr "" -#: src/usr/local/www/interfaces.php:1673 +#: src/usr/local/www/interfaces.php:1676 msgid "Don't forget to adjust the DHCP Server range if needed after applying." msgstr "" -#: src/usr/local/www/interfaces.php:1683 +#: src/usr/local/www/interfaces.php:1686 msgid "General Configuration" msgstr "" -#: src/usr/local/www/interfaces.php:1698 +#: src/usr/local/www/interfaces.php:1701 msgid "Enter a description (name) for the interface here." msgstr "" -#: src/usr/local/www/interfaces.php:1702 +#: src/usr/local/www/interfaces.php:1705 msgid "IPv4 Configuration Type" msgstr "" -#: src/usr/local/www/interfaces.php:1709 +#: src/usr/local/www/interfaces.php:1712 msgid "IPv6 Configuration Type" msgstr "" -#: src/usr/local/www/interfaces.php:1716 src/usr/local/www/interfaces.php:1731 +#: src/usr/local/www/interfaces.php:1719 src/usr/local/www/interfaces.php:1734 #: src/usr/local/www/services_captiveportal_mac_edit.php:209 #: src/usr/local/www/services_captiveportal_mac_edit.php:224 -#: src/usr/local/www/services_dhcp_edit.php:396 -#: src/usr/local/www/services_dhcp_edit.php:411 +#: src/usr/local/www/services_dhcp_edit.php:403 +#: src/usr/local/www/services_dhcp_edit.php:418 #: src/usr/local/www/status_interfaces.php:114 msgid "MAC Address" msgstr "" -#: src/usr/local/www/interfaces.php:1724 +#: src/usr/local/www/interfaces.php:1727 #: src/usr/local/www/services_captiveportal_mac_edit.php:217 -#: src/usr/local/www/services_dhcp_edit.php:404 +#: src/usr/local/www/services_dhcp_edit.php:411 msgid "Copy My MAC" msgstr "" -#: src/usr/local/www/interfaces.php:1734 +#: src/usr/local/www/interfaces.php:1737 msgid "" "This field can be used to modify (\"spoof\") the MAC address of this " "interface.<br />Enter a MAC address in the following format: xx:xx:xx:xx:xx:" "xx or leave blank." msgstr "" -#: src/usr/local/www/interfaces.php:1740 -#: src/usr/local/www/interfaces_ppps_edit.php:895 +#: src/usr/local/www/interfaces.php:1743 +#: src/usr/local/www/interfaces_ppps_edit.php:917 #: src/usr/local/www/status_interfaces.php:137 msgid "MTU" msgstr "" -#: src/usr/local/www/interfaces.php:1743 +#: src/usr/local/www/interfaces.php:1746 msgid "" "If this field is blank, the adapter's default MTU will be used. This is " "typically 1500 bytes but can vary in some circumstances." msgstr "" -#: src/usr/local/www/interfaces.php:1748 +#: src/usr/local/www/interfaces.php:1751 msgid "MSS" msgstr "" -#: src/usr/local/www/interfaces.php:1751 +#: src/usr/local/www/interfaces.php:1754 msgid "" "If a value is entered in this field, then MSS clamping for TCP connections " "to the value entered above minus 40 (TCP/IP header size) will be in effect." msgstr "" -#: src/usr/local/www/interfaces.php:1757 +#: src/usr/local/www/interfaces.php:1760 msgid "Speed and Duplex" msgstr "" -#: src/usr/local/www/interfaces.php:1760 +#: src/usr/local/www/interfaces.php:1763 msgid "" "Explicitly set speed and duplex mode for this interface.<br />WARNING: MUST " "be set to autoselect (automatically negotiate speed) unless the port this " "interface connects to has its speed and duplex forced." msgstr "" -#: src/usr/local/www/interfaces.php:1766 +#: src/usr/local/www/interfaces.php:1769 msgid "Static IPv4 Configuration" msgstr "" -#: src/usr/local/www/interfaces.php:1771 +#: src/usr/local/www/interfaces.php:1774 #: src/usr/local/www/status_interfaces.php:119 msgid "IPv4 Address" msgstr "" -#: src/usr/local/www/interfaces.php:1775 +#: src/usr/local/www/interfaces.php:1778 msgid "IPv4 Upstream gateway" msgstr "" -#: src/usr/local/www/interfaces.php:1779 +#: src/usr/local/www/interfaces.php:1782 msgid "IPv4 Upstream Gateway" msgstr "" -#: src/usr/local/www/interfaces.php:1786 src/usr/local/www/interfaces.php:1819 +#: src/usr/local/www/interfaces.php:1789 src/usr/local/www/interfaces.php:1822 msgid "Add a new gateway" msgstr "" -#: src/usr/local/www/interfaces.php:1793 +#: src/usr/local/www/interfaces.php:1796 msgid "Gateways can be managed by " msgstr "" -#: src/usr/local/www/interfaces.php:1793 +#: src/usr/local/www/interfaces.php:1796 msgid " clicking here" msgstr "" -#: src/usr/local/www/interfaces.php:1791 +#: src/usr/local/www/interfaces.php:1794 msgid "" "If this interface is an Internet connection, select an existing Gateway from " "the list or add a new one using the \"Add\" button.<br />On local area " "network interfaces the upstream gateway should be \"none\". " msgstr "" -#: src/usr/local/www/interfaces.php:1799 +#: src/usr/local/www/interfaces.php:1802 msgid "Static IPv6 Configuration" msgstr "" -#: src/usr/local/www/interfaces.php:1808 +#: src/usr/local/www/interfaces.php:1811 msgid "IPv6 Upstream gateway" msgstr "" -#: src/usr/local/www/interfaces.php:1812 +#: src/usr/local/www/interfaces.php:1815 msgid "IPv6 Upstream Gateway" msgstr "" -#: src/usr/local/www/interfaces.php:1824 +#: src/usr/local/www/interfaces.php:1827 msgid "" "If this interface is an Internet connection, select an existing Gateway from " "the list or add a new one using the \"Add\" button.<br />On local LANs the " "upstream gateway should be \"none\". " msgstr "" -#: src/usr/local/www/interfaces.php:1831 +#: src/usr/local/www/interfaces.php:1834 msgid "New IPv6 Gateway" msgstr "" -#: src/usr/local/www/interfaces.php:1842 src/usr/local/www/interfaces.php:3148 +#: src/usr/local/www/interfaces.php:1845 src/usr/local/www/interfaces.php:3156 #: src/usr/local/www/system_gateways_edit.php:607 msgid "Gateway name" msgstr "" -#: src/usr/local/www/interfaces.php:1849 +#: src/usr/local/www/interfaces.php:1852 #: src/usr/local/www/status_interfaces.php:125 msgid "Gateway IPv6" msgstr "" -#: src/usr/local/www/interfaces.php:1886 +#: src/usr/local/www/interfaces.php:1889 msgid "DHCP Client Configuration" msgstr "" -#: src/usr/local/www/interfaces.php:1889 src/usr/local/www/interfaces.php:2072 +#: src/usr/local/www/interfaces.php:1892 src/usr/local/www/interfaces.php:2075 msgid "Options" msgstr "" -#: src/usr/local/www/interfaces.php:1896 +#: src/usr/local/www/interfaces.php:1899 msgid "Use advanced DHCP configuration options." msgstr "" -#: src/usr/local/www/interfaces.php:1903 src/usr/local/www/interfaces.php:2086 +#: src/usr/local/www/interfaces.php:1906 src/usr/local/www/interfaces.php:2089 msgid "Override the configuration from this file." msgstr "" -#: src/usr/local/www/interfaces.php:1912 +#: src/usr/local/www/interfaces.php:1915 msgid "" "The value in this field is sent as the DHCP client identifier and hostname " "when requesting a DHCP lease. Some ISPs may require this (for client " "identification)." msgstr "" -#: src/usr/local/www/interfaces.php:1916 +#: src/usr/local/www/interfaces.php:1919 msgid "Alias IPv4 address" msgstr "" -#: src/usr/local/www/interfaces.php:1918 +#: src/usr/local/www/interfaces.php:1921 msgid "" "The value in this field is used as a fixed alias IPv4 address by the DHCP " "client." msgstr "" -#: src/usr/local/www/interfaces.php:1922 +#: src/usr/local/www/interfaces.php:1925 msgid "Reject leases from" msgstr "" -#: src/usr/local/www/interfaces.php:1925 +#: src/usr/local/www/interfaces.php:1928 msgid "" -"If there is a certain upstream DHCP server that should be ignored, place the " -"IP address or subnet of the DHCP server to be ignored here. This is useful " -"for rejecting leases from cable modems that offer private IPs when they lose " -"upstream sync." +"To make the DHCP client reject leases from an undesirable DHCP server, place " +"the IP address of the DHCP server here. This is useful for rejecting leases " +"from cable modems that offer private IP addresses when they lose upstream " +"sync." msgstr "" -#: src/usr/local/www/interfaces.php:1928 +#: src/usr/local/www/interfaces.php:1931 msgid "Protocol timing" msgstr "" -#: src/usr/local/www/interfaces.php:1936 +#: src/usr/local/www/interfaces.php:1939 #: src/usr/local/www/load_balancer_setting.php:117 msgid "Timeout" msgstr "" -#: src/usr/local/www/interfaces.php:1943 +#: src/usr/local/www/interfaces.php:1946 #: src/usr/local/www/load_balancer_pool_edit.php:336 msgid "Retry" msgstr "" -#: src/usr/local/www/interfaces.php:1951 +#: src/usr/local/www/interfaces.php:1954 msgid "Select timeout" msgstr "" -#: src/usr/local/www/interfaces.php:1965 +#: src/usr/local/www/interfaces.php:1968 msgid "Backoff cutoff" msgstr "" -#: src/usr/local/www/interfaces.php:1972 +#: src/usr/local/www/interfaces.php:1975 msgid "Initial interval" msgstr "" -#: src/usr/local/www/interfaces.php:1976 +#: src/usr/local/www/interfaces.php:1979 msgid "Presets" msgstr "" -#: src/usr/local/www/interfaces.php:2011 +#: src/usr/local/www/interfaces.php:2014 msgid "" "The values in these fields are DHCP protocol timings used when requesting a " "lease.<br /><a target=\"_blank\" href=\"https://www.freebsd.org/cgi/man.cgi?" "query=dhclient.conf&sektion=5#PROTOCOL_TIMING\">See here more information</a>" msgstr "" -#: src/usr/local/www/interfaces.php:2018 src/usr/local/www/interfaces.php:2127 +#: src/usr/local/www/interfaces.php:2021 src/usr/local/www/interfaces.php:2135 msgid "Configuration File Override" msgstr "" -#: src/usr/local/www/interfaces.php:2028 +#: src/usr/local/www/interfaces.php:2031 msgid "Lease Requirements and Requests" msgstr "" -#: src/usr/local/www/interfaces.php:2033 src/usr/local/www/interfaces.php:2152 +#: src/usr/local/www/interfaces.php:2036 src/usr/local/www/interfaces.php:2160 msgid "Send options" msgstr "" -#: src/usr/local/www/interfaces.php:2043 +#: src/usr/local/www/interfaces.php:2046 msgid "Request options" msgstr "" -#: src/usr/local/www/interfaces.php:2051 +#: src/usr/local/www/interfaces.php:2054 msgid "Require options" msgstr "" -#: src/usr/local/www/interfaces.php:2058 +#: src/usr/local/www/interfaces.php:2061 msgid "Option modifiers" msgstr "" -#: src/usr/local/www/interfaces.php:2069 +#: src/usr/local/www/interfaces.php:2072 msgid "DHCP6 Client Configuration" msgstr "" -#: src/usr/local/www/interfaces.php:2079 +#: src/usr/local/www/interfaces.php:2082 msgid "Use advanced DHCPv6 configuration options." msgstr "" -#: src/usr/local/www/interfaces.php:2092 +#: src/usr/local/www/interfaces.php:2095 msgid "Use IPv4 connectivity as parent interface" msgstr "" -#: src/usr/local/www/interfaces.php:2099 +#: src/usr/local/www/interfaces.php:2102 msgid "Request only an IPv6 prefix" msgstr "" -#: src/usr/local/www/interfaces.php:2106 +#: src/usr/local/www/interfaces.php:2109 msgid "DHCPv6 Prefix Delegation size" msgstr "" -#: src/usr/local/www/interfaces.php:2109 +#: src/usr/local/www/interfaces.php:2112 msgid "" "The value in this field is the delegated prefix length provided by the " "DHCPv6 server. Normally specified by the ISP." msgstr "" -#: src/usr/local/www/interfaces.php:2113 +#: src/usr/local/www/interfaces.php:2116 msgid "Send IPv6 prefix hint" msgstr "" -#: src/usr/local/www/interfaces.php:2120 +#: src/usr/local/www/interfaces.php:2123 msgid "Debug" msgstr "" -#: src/usr/local/www/interfaces.php:2130 +#: src/usr/local/www/interfaces.php:2129 +msgid "Do not wait for a RA" +msgstr "" + +#: src/usr/local/www/interfaces.php:2138 msgid "" "The value in this field is the full absolute path to a DHCP client " "configuration file.\t [/[dirname/[.../]]filename[.ext]]<br />Value " @@ -14751,234 +14500,234 @@ msgid "" "ISPs may require certain options be or not be sent." msgstr "" -#: src/usr/local/www/interfaces.php:2139 +#: src/usr/local/www/interfaces.php:2147 msgid "Advanced DHCP6 Client Configuration" msgstr "" -#: src/usr/local/www/interfaces.php:2144 +#: src/usr/local/www/interfaces.php:2152 msgid "Information only" msgstr "" -#: src/usr/local/www/interfaces.php:2148 +#: src/usr/local/www/interfaces.php:2156 msgid "Only exchange informational configuration parameters with servers." msgstr "" -#: src/usr/local/www/interfaces.php:2162 +#: src/usr/local/www/interfaces.php:2170 msgid "Request Options" msgstr "" -#: src/usr/local/www/interfaces.php:2170 +#: src/usr/local/www/interfaces.php:2178 msgid "Scripts" msgstr "" -#: src/usr/local/www/interfaces.php:2176 +#: src/usr/local/www/interfaces.php:2184 msgid "Identity Association Statement" msgstr "" -#: src/usr/local/www/interfaces.php:2255 +#: src/usr/local/www/interfaces.php:2263 msgid "Prefix interface statement" msgstr "" -#: src/usr/local/www/interfaces.php:2273 +#: src/usr/local/www/interfaces.php:2281 msgid "Authentication statement" msgstr "" -#: src/usr/local/www/interfaces.php:2305 +#: src/usr/local/www/interfaces.php:2313 msgid "Keyinfo statement" msgstr "" -#: src/usr/local/www/interfaces.php:2346 +#: src/usr/local/www/interfaces.php:2354 msgid "" "<a target=\"_blank\" href=\"https://www.freebsd.org/cgi/man.cgi?query=dhcp6c." "conf&sektion=5&apropos=0&manpath=FreeBSD+10.1-RELEASE+and" "+Ports#Interface_statement\">See here more information</a>" msgstr "" -#: src/usr/local/www/interfaces.php:2352 +#: src/usr/local/www/interfaces.php:2360 msgid "6RD Configuration" msgstr "" -#: src/usr/local/www/interfaces.php:2357 +#: src/usr/local/www/interfaces.php:2365 msgid "6RD Prefix" msgstr "" -#: src/usr/local/www/interfaces.php:2364 +#: src/usr/local/www/interfaces.php:2372 msgid "6RD Border relay" msgstr "" -#: src/usr/local/www/interfaces.php:2371 +#: src/usr/local/www/interfaces.php:2379 msgid "6RD IPv4 Prefix length" msgstr "" -#: src/usr/local/www/interfaces.php:2374 +#: src/usr/local/www/interfaces.php:2382 msgid "" "6RD IPv4 prefix length. Normally specified by the ISP. A value of 0 means " "embed the entire IPv4 address in the 6RD prefix." msgstr "" -#: src/usr/local/www/interfaces.php:2379 +#: src/usr/local/www/interfaces.php:2387 msgid "Track IPv6 Interface" msgstr "" -#: src/usr/local/www/interfaces.php:2421 +#: src/usr/local/www/interfaces.php:2429 msgid "IPv6 Interface" msgstr "" -#: src/usr/local/www/interfaces.php:2424 +#: src/usr/local/www/interfaces.php:2432 msgid "Selects the dynamic IPv6 WAN interface to track for configuration." msgstr "" -#: src/usr/local/www/interfaces.php:2432 +#: src/usr/local/www/interfaces.php:2440 msgid "IPv6 Prefix ID" msgstr "" -#: src/usr/local/www/interfaces.php:2435 +#: src/usr/local/www/interfaces.php:2443 msgid "" "<span id=\"track6-prefix-id-range\"></span>The value in this field is the " "(Delegated) IPv6 prefix ID. This determines the configurable network ID " "based on the dynamic IPv6 connection. The default value is 0." msgstr "" -#: src/usr/local/www/interfaces.php:2448 -#: src/usr/local/www/interfaces_ppps_edit.php:552 +#: src/usr/local/www/interfaces.php:2456 +#: src/usr/local/www/interfaces_ppps_edit.php:572 msgid "PPP Configuration" msgstr "" -#: src/usr/local/www/interfaces.php:2453 src/usr/local/www/interfaces.php:2877 -#: src/usr/local/www/interfaces_ppps_edit.php:580 +#: src/usr/local/www/interfaces.php:2461 src/usr/local/www/interfaces.php:2885 +#: src/usr/local/www/interfaces_ppps_edit.php:600 msgid "Country" msgstr "" -#: src/usr/local/www/interfaces.php:2460 -#: src/usr/local/www/interfaces_ppps_edit.php:587 +#: src/usr/local/www/interfaces.php:2468 +#: src/usr/local/www/interfaces_ppps_edit.php:607 msgid "Provider" msgstr "" -#: src/usr/local/www/interfaces.php:2467 -#: src/usr/local/www/interfaces_ppps_edit.php:594 +#: src/usr/local/www/interfaces.php:2475 +#: src/usr/local/www/interfaces_ppps_edit.php:614 msgid "Plan" msgstr "" -#: src/usr/local/www/interfaces.php:2470 -#: src/usr/local/www/interfaces_ppps_edit.php:597 +#: src/usr/local/www/interfaces.php:2478 +#: src/usr/local/www/interfaces_ppps_edit.php:617 msgid "Select to fill in service provider data." msgstr "" -#: src/usr/local/www/interfaces.php:2488 -#: src/usr/local/www/interfaces_ppps_edit.php:643 +#: src/usr/local/www/interfaces.php:2496 +#: src/usr/local/www/interfaces_ppps_edit.php:663 msgid "Phone number" msgstr "" -#: src/usr/local/www/interfaces.php:2491 +#: src/usr/local/www/interfaces.php:2499 msgid "Typically *99# for GSM networks and #777 for CDMA networks." msgstr "" -#: src/usr/local/www/interfaces.php:2495 +#: src/usr/local/www/interfaces.php:2503 msgid "Access Point Name" msgstr "" -#: src/usr/local/www/interfaces.php:2521 +#: src/usr/local/www/interfaces.php:2529 msgid "Modem port" msgstr "" -#: src/usr/local/www/interfaces.php:2528 +#: src/usr/local/www/interfaces.php:2536 msgid "Advanced PPP" msgstr "" -#: src/usr/local/www/interfaces.php:2531 +#: src/usr/local/www/interfaces.php:2539 msgid "Create a new PPP configuration." msgstr "" -#: src/usr/local/www/interfaces.php:2536 +#: src/usr/local/www/interfaces.php:2544 msgid "PPPoE Configuration" msgstr "" -#: src/usr/local/www/interfaces.php:2555 -#: src/usr/local/www/interfaces_ppps_edit.php:699 +#: src/usr/local/www/interfaces.php:2563 +#: src/usr/local/www/interfaces_ppps_edit.php:720 msgid "Service name" msgstr "" -#: src/usr/local/www/interfaces.php:2558 +#: src/usr/local/www/interfaces.php:2566 msgid "This field can usually be left empty." msgstr "" -#: src/usr/local/www/interfaces.php:2570 +#: src/usr/local/www/interfaces.php:2578 msgid "Idle timeout" msgstr "" -#: src/usr/local/www/interfaces.php:2574 src/usr/local/www/interfaces.php:2705 +#: src/usr/local/www/interfaces.php:2582 src/usr/local/www/interfaces.php:2713 msgid "" "If no qualifying outgoing packets are transmitted for the specified number " "of seconds, the connection is brought down. An idle timeout of zero disables " "this feature." msgstr "" -#: src/usr/local/www/interfaces.php:2581 -#: src/usr/local/www/interfaces_ppps_edit.php:728 +#: src/usr/local/www/interfaces.php:2589 +#: src/usr/local/www/interfaces_ppps_edit.php:750 msgid "Pre-set" msgstr "" -#: src/usr/local/www/interfaces.php:2579 +#: src/usr/local/www/interfaces.php:2587 msgid "Periodic reset" msgstr "" -#: src/usr/local/www/interfaces.php:2582 +#: src/usr/local/www/interfaces.php:2590 msgid "Select a reset timing type." msgstr "" -#: src/usr/local/www/interfaces.php:2584 +#: src/usr/local/www/interfaces.php:2592 msgid "Custom reset" msgstr "" -#: src/usr/local/www/interfaces.php:2593 +#: src/usr/local/www/interfaces.php:2601 msgid "Hour (0-23)" msgstr "" -#: src/usr/local/www/interfaces.php:2601 +#: src/usr/local/www/interfaces.php:2609 msgid "Minutes (0-59)" msgstr "" -#: src/usr/local/www/interfaces.php:2608 +#: src/usr/local/www/interfaces.php:2616 msgid "Specific date (mm/dd/yyyy)" msgstr "" -#: src/usr/local/www/interfaces.php:2610 +#: src/usr/local/www/interfaces.php:2618 msgid "" "Leave the date field empty, for the reset to be executed each day at the " "time specified by the minutes and hour fields" msgstr "" -#: src/usr/local/www/interfaces.php:2614 +#: src/usr/local/www/interfaces.php:2622 msgid "cron based reset" msgstr "" -#: src/usr/local/www/interfaces.php:2653 src/usr/local/www/interfaces.php:2716 +#: src/usr/local/www/interfaces.php:2661 src/usr/local/www/interfaces.php:2724 msgid "Advanced and MLPPP" msgstr "" -#: src/usr/local/www/interfaces.php:2656 +#: src/usr/local/www/interfaces.php:2664 msgid "" "Click for additional PPPoE configuration options. Save first if changes have " "been made." msgstr "" -#: src/usr/local/www/interfaces.php:2661 +#: src/usr/local/www/interfaces.php:2669 msgid "PPTP/L2TP Configuration" msgstr "" -#: src/usr/local/www/interfaces.php:2680 -#: src/usr/local/www/interfaces_ppps_edit.php:217 -#: src/usr/local/www/interfaces_ppps_edit.php:220 +#: src/usr/local/www/interfaces.php:2688 +#: src/usr/local/www/interfaces_ppps_edit.php:221 +#: src/usr/local/www/interfaces_ppps_edit.php:224 msgid "Local IP address" msgstr "" -#: src/usr/local/www/interfaces.php:2686 -#: src/usr/local/www/interfaces_ppps_edit.php:217 -#: src/usr/local/www/interfaces_ppps_edit.php:220 +#: src/usr/local/www/interfaces.php:2694 +#: src/usr/local/www/interfaces_ppps_edit.php:221 +#: src/usr/local/www/interfaces_ppps_edit.php:224 msgid "Remote IP address" msgstr "" -#: src/usr/local/www/interfaces.php:2696 +#: src/usr/local/www/interfaces.php:2704 msgid "" "This option causes the interface to operate in dial-on-demand mode, allowing " "it to be a virtual full time connection. The interface is configured, but " @@ -14986,156 +14735,156 @@ msgid "" "traffic is detected." msgstr "" -#: src/usr/local/www/interfaces.php:2701 +#: src/usr/local/www/interfaces.php:2709 msgid "Idle timeout (seconds)" msgstr "" -#: src/usr/local/www/interfaces.php:2709 +#: src/usr/local/www/interfaces.php:2717 msgid "There are additional Local and Remote IP addresses defined for MLPPP." msgstr "" -#: src/usr/local/www/interfaces.php:2719 +#: src/usr/local/www/interfaces.php:2727 msgid "" "Click for additional PPTP and L2TP configuration options. Save first if " "changes have been made." msgstr "" -#: src/usr/local/www/interfaces.php:2726 +#: src/usr/local/www/interfaces.php:2734 msgid "" "Common Wireless Configuration - Settings apply to all wireless networks on " msgstr "" -#: src/usr/local/www/interfaces.php:2730 +#: src/usr/local/www/interfaces.php:2738 msgid "Persist common settings" msgstr "" -#: src/usr/local/www/interfaces.php:2750 +#: src/usr/local/www/interfaces.php:2758 msgid "Standard" msgstr "" -#: src/usr/local/www/interfaces.php:2760 src/usr/local/www/interfaces.php:2810 +#: src/usr/local/www/interfaces.php:2768 src/usr/local/www/interfaces.php:2818 msgid "Off" msgstr "" -#: src/usr/local/www/interfaces.php:2760 +#: src/usr/local/www/interfaces.php:2768 msgid "CTS to self" msgstr "" -#: src/usr/local/www/interfaces.php:2760 +#: src/usr/local/www/interfaces.php:2768 msgid "RTS and CTS" msgstr "" -#: src/usr/local/www/interfaces.php:2758 +#: src/usr/local/www/interfaces.php:2766 msgid "802.11g OFDM Protection Mode" msgstr "" -#: src/usr/local/www/interfaces.php:2761 +#: src/usr/local/www/interfaces.php:2769 msgid "" "For IEEE 802.11g, use the specified technique for protecting OFDM frames in " "a mixed 11b/11g network." msgstr "" -#: src/usr/local/www/interfaces.php:2771 src/usr/local/www/interfaces.php:2819 -#: src/usr/local/www/interfaces.php:2828 -#: src/usr/local/www/vpn_ipsec_phase1.php:666 -#: src/usr/local/www/vpn_ipsec_phase1.php:851 -#: src/usr/local/www/vpn_ipsec_phase2.php:631 +#: src/usr/local/www/interfaces.php:2779 src/usr/local/www/interfaces.php:2827 +#: src/usr/local/www/interfaces.php:2836 +#: src/usr/local/www/vpn_ipsec_phase1.php:662 +#: src/usr/local/www/vpn_ipsec_phase1.php:847 +#: src/usr/local/www/vpn_ipsec_phase2.php:626 msgid "Auto" msgstr "" -#: src/usr/local/www/interfaces.php:2795 +#: src/usr/local/www/interfaces.php:2803 #: src/usr/local/www/status_interfaces.php:141 msgid "Channel" msgstr "" -#: src/usr/local/www/interfaces.php:2798 +#: src/usr/local/www/interfaces.php:2806 msgid "" "Legend: wireless standards - channel # (frequency @ max TX power / TX power " "allowed in reg. domain)<br />Not all channels may be supported by some " "cards. Auto may override the wireless standard selected above." msgstr "" -#: src/usr/local/www/interfaces.php:2803 +#: src/usr/local/www/interfaces.php:2811 msgid "Antenna Settings" msgstr "" -#: src/usr/local/www/interfaces.php:2810 +#: src/usr/local/www/interfaces.php:2818 msgid "On" msgstr "" -#: src/usr/local/www/interfaces.php:2811 +#: src/usr/local/www/interfaces.php:2819 msgid "Diversity" msgstr "" -#: src/usr/local/www/interfaces.php:2819 src/usr/local/www/interfaces.php:2828 +#: src/usr/local/www/interfaces.php:2827 src/usr/local/www/interfaces.php:2836 msgid "#1" msgstr "" -#: src/usr/local/www/interfaces.php:2819 src/usr/local/www/interfaces.php:2828 +#: src/usr/local/www/interfaces.php:2827 src/usr/local/www/interfaces.php:2836 msgid "#2" msgstr "" -#: src/usr/local/www/interfaces.php:2820 +#: src/usr/local/www/interfaces.php:2828 msgid "Transmit antenna" msgstr "" -#: src/usr/local/www/interfaces.php:2829 +#: src/usr/local/www/interfaces.php:2837 msgid "Receive antenna" msgstr "" -#: src/usr/local/www/interfaces.php:2832 +#: src/usr/local/www/interfaces.php:2840 msgid "" "Note: The antenna numbers do not always match up with the labels on the card." msgstr "" -#: src/usr/local/www/interfaces.php:2841 +#: src/usr/local/www/interfaces.php:2849 msgid "Distance setting (meters)" msgstr "" -#: src/usr/local/www/interfaces.php:2844 +#: src/usr/local/www/interfaces.php:2852 msgid "" "This field can be used to tune ACK/CTS timers to fit the distance between AP " "and Client" msgstr "" -#: src/usr/local/www/interfaces.php:2850 +#: src/usr/local/www/interfaces.php:2858 msgid "Regulatory Settings" msgstr "" -#: src/usr/local/www/interfaces.php:2862 +#: src/usr/local/www/interfaces.php:2870 msgid "Regulatory domain" msgstr "" -#: src/usr/local/www/interfaces.php:2865 +#: src/usr/local/www/interfaces.php:2873 msgid "" "Some cards have a default that is not recognized and require changing the " "regulatory domain to one in this list for the changes to other regulatory " "settings to work" msgstr "" -#: src/usr/local/www/interfaces.php:2880 +#: src/usr/local/www/interfaces.php:2888 msgid "" "Any country setting other than \"Default\" will override the regulatory " "domain setting" msgstr "" -#: src/usr/local/www/interfaces.php:2886 +#: src/usr/local/www/interfaces.php:2894 msgid "Indoor" msgstr "" -#: src/usr/local/www/interfaces.php:2886 +#: src/usr/local/www/interfaces.php:2894 msgid "Outdoor" msgstr "" -#: src/usr/local/www/interfaces.php:2886 +#: src/usr/local/www/interfaces.php:2894 msgid "Anywhere" msgstr "" -#: src/usr/local/www/interfaces.php:2884 +#: src/usr/local/www/interfaces.php:2892 msgid "Location" msgstr "" -#: src/usr/local/www/interfaces.php:2887 +#: src/usr/local/www/interfaces.php:2895 msgid "" "These settings may affect which channels are available and the maximum " "transmit power allowed on those channels. Using the correct settings to " @@ -15146,190 +14895,190 @@ msgid "" "additional channels that are not already supported." msgstr "" -#: src/usr/local/www/interfaces.php:2895 +#: src/usr/local/www/interfaces.php:2903 msgid "Network-Specific Wireless Configuration" msgstr "" -#: src/usr/local/www/interfaces.php:2916 +#: src/usr/local/www/interfaces.php:2924 msgid "802.11g" msgstr "" -#: src/usr/local/www/interfaces.php:2916 +#: src/usr/local/www/interfaces.php:2924 msgid "802.11n" msgstr "" -#: src/usr/local/www/interfaces.php:2914 +#: src/usr/local/www/interfaces.php:2922 msgid "Minimum wireless standard" msgstr "" -#: src/usr/local/www/interfaces.php:2917 +#: src/usr/local/www/interfaces.php:2925 msgid "" "When operating as an access point, allow only stations capable of the " "selected wireless standard to associate (stations not capable are not " "permitted to associate)" msgstr "" -#: src/usr/local/www/interfaces.php:2921 +#: src/usr/local/www/interfaces.php:2929 msgid "802.11g only" msgstr "" -#: src/usr/local/www/interfaces.php:2925 +#: src/usr/local/www/interfaces.php:2933 msgid "" "When operating as an access point in 802.11g mode, allow only 11g-capable " "stations to associate (11b-only stations are not permitted to associate)" msgstr "" -#: src/usr/local/www/interfaces.php:2930 +#: src/usr/local/www/interfaces.php:2938 msgid "Allow intra-BSS communication" msgstr "" -#: src/usr/local/www/interfaces.php:2934 +#: src/usr/local/www/interfaces.php:2942 msgid "" "Provides extra security by isolating clients so they cannot directly " "communicate with one another" msgstr "" -#: src/usr/local/www/interfaces.php:2938 +#: src/usr/local/www/interfaces.php:2946 msgid "Enable WME" msgstr "" -#: src/usr/local/www/interfaces.php:2946 +#: src/usr/local/www/interfaces.php:2954 msgid "Hide SSID" msgstr "" -#: src/usr/local/www/interfaces.php:2955 src/usr/local/www/interfaces.php:2976 +#: src/usr/local/www/interfaces.php:2963 src/usr/local/www/interfaces.php:2984 msgid "WPA" msgstr "" -#: src/usr/local/www/interfaces.php:2967 +#: src/usr/local/www/interfaces.php:2975 msgid "WPA Pre-Shared Key" msgstr "" -#: src/usr/local/www/interfaces.php:2970 +#: src/usr/local/www/interfaces.php:2978 msgid "WPA Passphrase must be between 8 and 63 characters long" msgstr "" -#: src/usr/local/www/interfaces.php:2976 +#: src/usr/local/www/interfaces.php:2984 msgid "WPA2" msgstr "" -#: src/usr/local/www/interfaces.php:2976 src/usr/local/www/interfaces.php:2983 -#: src/usr/local/www/interfaces.php:2990 src/usr/local/www/pkg_mgr.php:158 +#: src/usr/local/www/interfaces.php:2984 src/usr/local/www/interfaces.php:2991 +#: src/usr/local/www/interfaces.php:2998 src/usr/local/www/pkg_mgr.php:158 #: src/usr/local/www/services_captiveportal_hostname_edit.php:154 #: src/usr/local/www/services_captiveportal_ip_edit.php:198 -#: src/usr/local/www/widgets/widgets/gateways.widget.php:109 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:111 #: src/usr/local/www/services_rfc2136_edit.php:279 msgid "Both" msgstr "" -#: src/usr/local/www/interfaces.php:2974 +#: src/usr/local/www/interfaces.php:2982 msgid "WPA mode" msgstr "" -#: src/usr/local/www/interfaces.php:2983 +#: src/usr/local/www/interfaces.php:2991 #: src/usr/local/www/vpn_ipsec_keys.php:102 #: src/usr/local/www/vpn_ipsec_keys_edit.php:68 #: src/usr/local/www/vpn_ipsec_keys_edit.php:150 #: src/usr/local/www/vpn_ipsec_phase1.php:213 -#: src/usr/local/www/vpn_ipsec_phase1.php:760 +#: src/usr/local/www/vpn_ipsec_phase1.php:756 msgid "Pre-Shared Key" msgstr "" -#: src/usr/local/www/interfaces.php:2983 +#: src/usr/local/www/interfaces.php:2991 msgid "Extensible Authentication Protocol" msgstr "" -#: src/usr/local/www/interfaces.php:2981 +#: src/usr/local/www/interfaces.php:2989 msgid "WPA Key Management Mode" msgstr "" -#: src/usr/local/www/interfaces.php:2990 +#: src/usr/local/www/interfaces.php:2998 msgid "AES (recommended)" msgstr "" -#: src/usr/local/www/interfaces.php:2990 +#: src/usr/local/www/interfaces.php:2998 msgid "TKIP" msgstr "" -#: src/usr/local/www/interfaces.php:2988 +#: src/usr/local/www/interfaces.php:2996 msgid "WPA Pairwise" msgstr "" -#: src/usr/local/www/interfaces.php:2995 +#: src/usr/local/www/interfaces.php:3003 msgid "Group Key Rotation" msgstr "" -#: src/usr/local/www/interfaces.php:2999 +#: src/usr/local/www/interfaces.php:3007 msgid "" "Time between group rekey events, specified in seconds. Allowed values are " "1-9999. Must be shorter than Master Key Regeneration time" msgstr "" -#: src/usr/local/www/interfaces.php:3003 +#: src/usr/local/www/interfaces.php:3011 msgid "Group Master Key Regeneration" msgstr "" -#: src/usr/local/www/interfaces.php:3007 +#: src/usr/local/www/interfaces.php:3015 msgid "" "Time between GMK rekey events, specified in seconds. Allowed values are " "1-9999. Must be longer than Group Key Rotation time" msgstr "" -#: src/usr/local/www/interfaces.php:3011 +#: src/usr/local/www/interfaces.php:3019 msgid "Strict Key Regeneration" msgstr "" -#: src/usr/local/www/interfaces.php:3019 +#: src/usr/local/www/interfaces.php:3027 msgid "802.1x RADIUS Options" msgstr "" -#: src/usr/local/www/interfaces.php:3023 +#: src/usr/local/www/interfaces.php:3031 msgid "IEEE802.1X" msgstr "" -#: src/usr/local/www/interfaces.php:3027 +#: src/usr/local/www/interfaces.php:3035 msgid "This option requires that the \"Enable WPA box\" is checked" msgstr "" -#: src/usr/local/www/interfaces.php:3029 +#: src/usr/local/www/interfaces.php:3037 msgid "Primary 802.1X server" msgstr "" -#: src/usr/local/www/interfaces.php:3035 src/usr/local/www/interfaces.php:3059 +#: src/usr/local/www/interfaces.php:3043 src/usr/local/www/interfaces.php:3067 msgid "IP address of the RADIUS server" msgstr "" -#: src/usr/local/www/interfaces.php:3042 src/usr/local/www/interfaces.php:3066 +#: src/usr/local/www/interfaces.php:3050 src/usr/local/www/interfaces.php:3074 msgid "Server auth port. Default is 1812" msgstr "" -#: src/usr/local/www/interfaces.php:3046 src/usr/local/www/interfaces.php:3070 +#: src/usr/local/www/interfaces.php:3054 src/usr/local/www/interfaces.php:3078 #: src/usr/local/www/system_authservers.php:271 #: src/usr/local/www/system_authservers.php:735 msgid "Shared Secret" msgstr "" -#: src/usr/local/www/interfaces.php:3049 src/usr/local/www/interfaces.php:3073 +#: src/usr/local/www/interfaces.php:3057 src/usr/local/www/interfaces.php:3081 msgid "RADIUS Shared secret for this firewall" msgstr "" -#: src/usr/local/www/interfaces.php:3053 +#: src/usr/local/www/interfaces.php:3061 msgid "Secondary 802.1X server" msgstr "" -#: src/usr/local/www/interfaces.php:3079 +#: src/usr/local/www/interfaces.php:3087 msgid "Authentication Roaming Preauth" msgstr "" -#: src/usr/local/www/interfaces.php:3088 +#: src/usr/local/www/interfaces.php:3096 msgid "Reserved Networks" msgstr "" -#: src/usr/local/www/interfaces.php:3092 +#: src/usr/local/www/interfaces.php:3100 msgid "Block private networks and loopback addresses" msgstr "" -#: src/usr/local/www/interfaces.php:3096 +#: src/usr/local/www/interfaces.php:3104 msgid "" "Blocks traffic from IP addresses that are reserved for private networks per " "RFC 1918 (10/8, 172.16/12, 192.168/16) and unique local addresses per RFC " @@ -15338,7 +15087,7 @@ msgid "" "private address space, too." msgstr "" -#: src/usr/local/www/interfaces.php:3106 +#: src/usr/local/www/interfaces.php:3114 msgid "" "Blocks traffic from reserved IP addresses (but not RFC 1918) or not yet " "assigned by IANA. Bogons are prefixes that should never appear in the " @@ -15347,11 +15096,11 @@ msgid "" "System->Advanced Firewall/NAT settings." msgstr "" -#: src/usr/local/www/interfaces.php:3137 +#: src/usr/local/www/interfaces.php:3145 msgid "New Gateway" msgstr "" -#: src/usr/local/www/interfaces.php:3155 +#: src/usr/local/www/interfaces.php:3163 #: src/usr/local/www/status_interfaces.php:121 msgid "Gateway IPv4" msgstr "" @@ -15503,7 +15252,7 @@ msgstr "" #: src/usr/local/www/interfaces_lagg.php:90 #: src/usr/local/www/interfaces_ppps.php:73 #: src/usr/local/www/interfaces_ppps.php:83 -#: src/usr/local/www/interfaces_ppps_edit.php:440 +#: src/usr/local/www/interfaces_ppps_edit.php:460 #: src/usr/local/www/interfaces_qinq.php:94 #: src/usr/local/www/interfaces_vlan.php:88 #: src/usr/local/www/interfaces_wireless.php:85 @@ -15620,7 +15369,7 @@ msgstr "" #: src/usr/local/www/interfaces_groups.php:80 #: src/usr/local/www/interfaces_lagg.php:105 #: src/usr/local/www/load_balancer_pool_edit.php:387 -#: src/usr/local/www/system_groupmanager.php:440 +#: src/usr/local/www/system_groupmanager.php:434 msgid "Members" msgstr "" @@ -15717,11 +15466,11 @@ msgid "Interfaces participating in the bridge." msgstr "" #: src/usr/local/www/interfaces_bridge_edit.php:430 -#: src/usr/local/www/interfaces_ppps_edit.php:814 -#: src/usr/local/www/vpn_ipsec_phase2.php:677 +#: src/usr/local/www/interfaces_ppps_edit.php:836 +#: src/usr/local/www/vpn_ipsec_phase2.php:672 #: src/usr/local/www/vpn_openvpn_client.php:745 -#: src/usr/local/www/vpn_openvpn_server.php:1126 -#: src/usr/local/www/interfaces.php:1894 src/usr/local/www/interfaces.php:2077 +#: src/usr/local/www/vpn_openvpn_server.php:1137 +#: src/usr/local/www/interfaces.php:1897 src/usr/local/www/interfaces.php:2080 msgid "Advanced Configuration" msgstr "" @@ -16172,12 +15921,12 @@ msgid "Add Static Route" msgstr "" #: src/usr/local/www/interfaces_groups.php:112 -#: src/usr/local/www/system_groupmanager.php:321 +#: src/usr/local/www/system_groupmanager.php:315 msgid "Edit group" msgstr "" #: src/usr/local/www/interfaces_groups.php:113 -#: src/usr/local/www/system_groupmanager.php:323 +#: src/usr/local/www/system_groupmanager.php:317 msgid "Delete group" msgstr "" @@ -16206,7 +15955,7 @@ msgstr "" #: src/usr/local/www/system_gateway_groups_edit.php:208 #: src/usr/local/www/system_gateway_groups_edit.php:265 #: src/usr/local/www/system_gateway_groups_edit.php:294 -#: src/usr/local/www/system_groupmanager.php:144 +#: src/usr/local/www/system_groupmanager.php:140 msgid "Group Name" msgstr "" @@ -16394,100 +16143,100 @@ msgstr "" msgid "Delete PPP interface" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:200 -#: src/usr/local/www/interfaces_ppps_edit.php:206 -#: src/usr/local/www/interfaces_ppps_edit.php:209 -#: src/usr/local/www/interfaces_ppps_edit.php:217 -#: src/usr/local/www/interfaces_ppps_edit.php:220 -#: src/usr/local/www/interfaces_ppps_edit.php:565 +#: src/usr/local/www/interfaces_ppps_edit.php:204 +#: src/usr/local/www/interfaces_ppps_edit.php:210 +#: src/usr/local/www/interfaces_ppps_edit.php:213 +#: src/usr/local/www/interfaces_ppps_edit.php:221 +#: src/usr/local/www/interfaces_ppps_edit.php:224 +#: src/usr/local/www/interfaces_ppps_edit.php:585 msgid "Link Interface(s)" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:217 -#: src/usr/local/www/interfaces_ppps_edit.php:220 -#: src/usr/local/www/services_dhcp.php:790 -#: src/usr/local/www/services_dhcpv6.php:582 +#: src/usr/local/www/interfaces_ppps_edit.php:221 +#: src/usr/local/www/interfaces_ppps_edit.php:224 +#: src/usr/local/www/services_dhcp.php:803 +#: src/usr/local/www/services_dhcpv6.php:577 msgid "Subnet" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:225 +#: src/usr/local/www/interfaces_ppps_edit.php:229 msgid "Please choose a Link Type." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:235 +#: src/usr/local/www/interfaces_ppps_edit.php:239 #: src/usr/local/www/services_captiveportal_vouchers.php:249 #: src/usr/local/www/services_checkip_edit.php:74 #: src/usr/local/www/services_dyndns_edit.php:111 msgid "Password and confirmed password must match." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:238 +#: src/usr/local/www/interfaces_ppps_edit.php:242 msgid "" "Multilink connections (MLPPP) using the PPP link type is not currently " "supported. Please select only one Link Interface." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:241 +#: src/usr/local/www/interfaces_ppps_edit.php:245 msgid "The Service name contains invalid characters." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:244 +#: src/usr/local/www/interfaces_ppps_edit.php:248 msgid "Do not specify both a Service name and a NULL Service name." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:263 +#: src/usr/local/www/interfaces_ppps_edit.php:267 msgid "" "A valid PPPoE reset month must be specified (1-12) in the Custom PPPoE " "Periodic reset fields." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:266 +#: src/usr/local/www/interfaces_ppps_edit.php:270 msgid "" "A valid PPPoE reset day of month must be specified (1-31) in the Custom " "PPPoE Periodic reset fields. No checks are done on valid # of days per month" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:269 +#: src/usr/local/www/interfaces_ppps_edit.php:273 msgid "" "A valid PPPoE reset year must be specified. Don't select a year in the past!" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:277 +#: src/usr/local/www/interfaces_ppps_edit.php:281 #, php-format msgid "A valid local IP address must be specified for %s." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:280 +#: src/usr/local/www/interfaces_ppps_edit.php:284 #, php-format msgid "A valid gateway IP address OR hostname must be specified for %s." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:283 +#: src/usr/local/www/interfaces_ppps_edit.php:287 #, php-format msgid "The bandwidth value for %s must be an integer." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:286 +#: src/usr/local/www/interfaces_ppps_edit.php:290 #, php-format msgid "The MTU for %s must be greater than 576 bytes." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:289 +#: src/usr/local/www/interfaces_ppps_edit.php:293 #, php-format msgid "The MRU for %s must be greater than 576 bytes." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:306 +#: src/usr/local/www/interfaces_ppps_edit.php:310 #, php-format msgid "" "The MTU (%d) is too big for %s (maximum allowed with current settings: %d)." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:444 +#: src/usr/local/www/interfaces_ppps_edit.php:464 msgid "Select" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:545 +#: src/usr/local/www/interfaces_ppps_edit.php:565 msgid "" "Bandwidth is set only for MLPPP connections and when links have different " "bandwidths<br />MTU defaults to 1492<br />MRU will be auto-negotiated by " @@ -16495,132 +16244,132 @@ msgid "" "default." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:556 -msgid "Link Type" -msgstr "" - -#: src/usr/local/www/interfaces_ppps_edit.php:569 +#: src/usr/local/www/interfaces_ppps_edit.php:589 msgid "Select at least two interfaces for Multilink (MLPPP) connections." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:576 +#: src/usr/local/www/interfaces_ppps_edit.php:596 msgid "" "A description may be entered here for administrative reference. Description " "will appear in the \"Interfaces Assign\" select lists." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:618 +#: src/usr/local/www/interfaces_ppps_edit.php:638 msgid "IP/Gateway (" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:631 -msgid "IP or Hostname" +#: src/usr/local/www/interfaces_ppps_edit.php:644 +msgid "Local IP Address" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:646 +#: src/usr/local/www/interfaces_ppps_edit.php:651 +msgid "Gateway IP or Hostname" +msgstr "" + +#: src/usr/local/www/interfaces_ppps_edit.php:666 msgid "Typically *99# for GSM networks and #777 for CDMA networks" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:651 +#: src/usr/local/www/interfaces_ppps_edit.php:671 msgid "Access Point Name (APN)" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:658 +#: src/usr/local/www/interfaces_ppps_edit.php:678 msgid "APN number (optional)" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:661 +#: src/usr/local/www/interfaces_ppps_edit.php:681 msgid "Defaults to 1 if APN is set. Ignored if no APN is set." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:665 +#: src/usr/local/www/interfaces_ppps_edit.php:685 msgid "SIM PIN" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:672 +#: src/usr/local/www/interfaces_ppps_edit.php:692 msgid "SIM PIN wait" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:675 +#: src/usr/local/www/interfaces_ppps_edit.php:695 msgid "" "Time to wait for SIM to discover network after PIN is sent to SIM (seconds)." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:679 +#: src/usr/local/www/interfaces_ppps_edit.php:699 msgid "Init string" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:682 +#: src/usr/local/www/interfaces_ppps_edit.php:702 msgid "" "Enter the modem initialization string here. Do NOT include the \"AT\" string " "at the beginning of the command. Many modern USB 3G modems don't need an " "initialization string." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:687 +#: src/usr/local/www/interfaces_ppps_edit.php:707 msgid "Connection Timeout" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:690 +#: src/usr/local/www/interfaces_ppps_edit.php:710 msgid "" "Enter timeout in seconds for connection to be established (sec.) Default is " "45 sec." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:694 +#: src/usr/local/www/interfaces_ppps_edit.php:714 msgid "Uptime logging" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:716 +#: src/usr/local/www/interfaces_ppps_edit.php:737 msgid "" "This field can usually be left empty. Service name will not be configured if " "this field is empty. Check the \"Configure NULL\" box to configure a blank " "Service name." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:723 +#: src/usr/local/www/interfaces_ppps_edit.php:745 msgid "Periodic Reset" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:730 +#: src/usr/local/www/interfaces_ppps_edit.php:752 msgid "Select a reset timing type" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:732 +#: src/usr/local/www/interfaces_ppps_edit.php:754 msgid "Reset Date/Time" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:740 +#: src/usr/local/www/interfaces_ppps_edit.php:762 msgid "Hour" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:747 +#: src/usr/local/www/interfaces_ppps_edit.php:769 msgid "Minute" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:755 +#: src/usr/local/www/interfaces_ppps_edit.php:777 msgid "Specific date" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:757 +#: src/usr/local/www/interfaces_ppps_edit.php:779 msgid "" "Leaving the date field empty will cause the reset to be executed each day at " "the time specified in the minutes and hour fields. " msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:761 +#: src/usr/local/www/interfaces_ppps_edit.php:783 msgid "Reset frequency" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:808 +#: src/usr/local/www/interfaces_ppps_edit.php:830 msgid "Advanced options" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:819 +#: src/usr/local/www/interfaces_ppps_edit.php:841 msgid "Dial On Demand" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:822 +#: src/usr/local/www/interfaces_ppps_edit.php:844 msgid "" "Causes the interface to operate in dial-on-demand mode. Do NOT enable if the " "link is to remain continuously connected. The interface is configured, but " @@ -16628,11 +16377,11 @@ msgid "" "traffic is detected." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:827 +#: src/usr/local/www/interfaces_ppps_edit.php:849 msgid "Idle Timeout" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:830 +#: src/usr/local/www/interfaces_ppps_edit.php:852 msgid "" "If no incoming or outgoing packets are transmitted for the entered number of " "seconds the connection is brought down. When the idle timeout occurs, if the " @@ -16640,13 +16389,13 @@ msgid "" "Otherwise, the interface is brought down and all associated routes removed." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:836 +#: src/usr/local/www/interfaces_ppps_edit.php:858 #: src/usr/local/www/vpn_openvpn_client.php:703 -#: src/usr/local/www/vpn_openvpn_server.php:919 +#: src/usr/local/www/vpn_openvpn_server.php:923 msgid "Compression" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:839 +#: src/usr/local/www/interfaces_ppps_edit.php:861 msgid "" "Disable vjcomp(compression) (auto-negotiated by default).<br />This option " "enables Van Jacobson TCP header compression, which saves several bytes per " @@ -16655,11 +16404,11 @@ msgid "" "stamping or SACK, which modify TCP options between sequential packets." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:846 +#: src/usr/local/www/interfaces_ppps_edit.php:868 msgid "TCPmssFix" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:849 +#: src/usr/local/www/interfaces_ppps_edit.php:871 msgid "" "Causes mpd to adjust incoming and outgoing TCP SYN segments so that the " "requested maximum segment size is not greater than the amount allowed by the " @@ -16674,11 +16423,11 @@ msgid "" "outgoing data." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:857 +#: src/usr/local/www/interfaces_ppps_edit.php:879 msgid "ShortSeq" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:860 +#: src/usr/local/www/interfaces_ppps_edit.php:882 msgid "" "This option is only meaningful if multi-link PPP is negotiated. It " "proscribes shorter multi-link fragment headers, saving two bytes on every " @@ -16686,35 +16435,35 @@ msgid "" "multi-link." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:865 +#: src/usr/local/www/interfaces_ppps_edit.php:887 msgid "ACFComp" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:868 +#: src/usr/local/www/interfaces_ppps_edit.php:890 msgid "" "Address and control field compression. This option only applies to " "asynchronous link types. It saves two bytes per frame." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:872 +#: src/usr/local/www/interfaces_ppps_edit.php:894 msgid "ProtoComp" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:875 +#: src/usr/local/www/interfaces_ppps_edit.php:897 msgid "" "Protocol field compression. This option saves one byte per frame for most " "frames." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:881 +#: src/usr/local/www/interfaces_ppps_edit.php:903 msgid "Link Parameters (" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:902 +#: src/usr/local/www/interfaces_ppps_edit.php:924 msgid "MRU" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:909 +#: src/usr/local/www/interfaces_ppps_edit.php:931 msgid "MRRU" msgstr "" @@ -16975,11 +16724,27 @@ msgid "" "rights reserved." msgstr "" -#: src/usr/local/www/license.php:51 +#: src/usr/local/www/license.php:37 +msgid "" +"Licensed under the Apache License, Version 2.0 (the \"License\");<br />you " +"may not use this file except in compliance with the License.<br />You may " +"obtain a copy of the License at" +msgstr "" + +#: src/usr/local/www/license.php:39 +msgid "" +"Unless required by applicable law or agreed to in writing, software<br /" +">distributed under the License is distributed on an \"AS IS\" BASIS,<br /" +">WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied." +"<br />See the License for the specific language governing permissions " +"and<br />limitations under the License." +msgstr "" + +#: src/usr/local/www/license.php:43 msgid "Third Party Credits" msgstr "" -#: src/usr/local/www/license.php:54 +#: src/usr/local/www/license.php:46 #, php-format msgid "" "%s is based upon/includes various free software packages, listed below. The " @@ -16987,75 +16752,75 @@ msgid "" "their efforts." msgstr "" -#: src/usr/local/www/license.php:59 src/usr/local/www/license.php:63 -#: src/usr/local/www/license.php:70 src/usr/local/www/license.php:74 -#: src/usr/local/www/license.php:82 src/usr/local/www/license.php:83 +#: src/usr/local/www/license.php:51 src/usr/local/www/license.php:55 +#: src/usr/local/www/license.php:62 src/usr/local/www/license.php:66 +#: src/usr/local/www/license.php:74 src/usr/local/www/license.php:75 +#: src/usr/local/www/license.php:79 src/usr/local/www/license.php:83 #: src/usr/local/www/license.php:87 src/usr/local/www/license.php:91 -#: src/usr/local/www/license.php:95 src/usr/local/www/license.php:99 -#: src/usr/local/www/license.php:103 src/usr/local/www/license.php:108 -#: src/usr/local/www/license.php:112 src/usr/local/www/license.php:116 -#: src/usr/local/www/license.php:120 src/usr/local/www/license.php:121 -#: src/usr/local/www/license.php:125 src/usr/local/www/license.php:129 -#: src/usr/local/www/license.php:134 src/usr/local/www/license.php:144 -#: src/usr/local/www/license.php:148 src/usr/local/www/license.php:152 -#: src/usr/local/www/license.php:160 src/usr/local/www/license.php:161 +#: src/usr/local/www/license.php:95 src/usr/local/www/license.php:100 +#: src/usr/local/www/license.php:104 src/usr/local/www/license.php:108 +#: src/usr/local/www/license.php:112 src/usr/local/www/license.php:113 +#: src/usr/local/www/license.php:117 src/usr/local/www/license.php:121 +#: src/usr/local/www/license.php:126 src/usr/local/www/license.php:136 +#: src/usr/local/www/license.php:140 src/usr/local/www/license.php:144 +#: src/usr/local/www/license.php:152 src/usr/local/www/license.php:153 +#: src/usr/local/www/license.php:157 src/usr/local/www/license.php:161 #: src/usr/local/www/license.php:165 src/usr/local/www/license.php:169 #: src/usr/local/www/license.php:173 src/usr/local/www/license.php:177 -#: src/usr/local/www/license.php:181 src/usr/local/www/license.php:185 -#: src/usr/local/www/license.php:189 src/usr/local/www/license.php:197 -#: src/usr/local/www/license.php:201 +#: src/usr/local/www/license.php:181 src/usr/local/www/license.php:189 +#: src/usr/local/www/license.php:193 msgid "Copyright" msgstr "" -#: src/usr/local/www/license.php:59 +#: src/usr/local/www/license.php:51 msgid "1992-2016 The FreeBSD Project. All rights reserved." msgstr "" -#: src/usr/local/www/license.php:62 +#: src/usr/local/www/license.php:54 msgid "This product includes" msgstr "" -#: src/usr/local/www/license.php:62 +#: src/usr/local/www/license.php:54 msgid "freely available from" msgstr "" -#: src/usr/local/www/license.php:63 +#: src/usr/local/www/license.php:55 msgid "1999-2016 The PHP Group. All rights reserved." msgstr "" -#: src/usr/local/www/license.php:120 +#: src/usr/local/www/license.php:112 msgid "2004-2013 Internet Software Consortium, Inc." msgstr "" -#: src/usr/local/www/license.php:121 +#: src/usr/local/www/license.php:113 msgid "1995-2003 Internet Software Consortium" msgstr "" -#: src/usr/local/www/license.php:130 src/usr/local/www/license.php:135 +#: src/usr/local/www/license.php:122 src/usr/local/www/license.php:127 msgid "All rights reserved." msgstr "" -#: src/usr/local/www/license.php:134 +#: src/usr/local/www/license.php:126 msgid "2011-2016 Nginx, Inc." msgstr "" -#: src/usr/local/www/license.php:139 +#: src/usr/local/www/license.php:131 msgid "Copyright 2000, 2001, 2002 by Edwin Groothuis. All rights reserved." msgstr "" -#: src/usr/local/www/license.php:140 +#: src/usr/local/www/license.php:132 msgid "This product includes software developed by Edwin Groothuis." msgstr "" -#: src/usr/local/www/license.php:144 +#: src/usr/local/www/license.php:136 msgid "2005-2016 University of Applied Sciences Rapperswil" msgstr "" -#: src/usr/local/www/license.php:156 +#: src/usr/local/www/license.php:148 msgid "Copyright (C) 2002-2016 OpenVPN Solutions LLC " msgstr "" -#: src/usr/local/www/license.php:193 +#: src/usr/local/www/license.php:185 msgid "Public Domain" msgstr "" @@ -17174,12 +16939,12 @@ msgid "TCP" msgstr "" #: src/usr/local/www/load_balancer_monitor_edit.php:206 -#: src/usr/local/www/system_advanced_admin.php:314 +#: src/usr/local/www/system_advanced_admin.php:312 msgid "HTTP" msgstr "" #: src/usr/local/www/load_balancer_monitor_edit.php:206 -#: src/usr/local/www/system_advanced_admin.php:322 +#: src/usr/local/www/system_advanced_admin.php:320 msgid "HTTPS" msgstr "" @@ -17245,18 +17010,18 @@ msgid "Pool" msgstr "" #: src/usr/local/www/load_balancer_pool.php:122 -#: src/usr/local/www/services_dhcp.php:873 +#: src/usr/local/www/services_dhcp.php:886 #: src/usr/local/www/status_lb_pool.php:131 #: src/usr/local/www/status_lb_vs.php:64 #: src/usr/local/www/vpn_openvpn_client.php:414 #: src/usr/local/www/vpn_openvpn_csc.php:296 -#: src/usr/local/www/vpn_openvpn_server.php:559 -#: src/usr/local/www/vpn_openvpn_server.php:581 +#: src/usr/local/www/vpn_openvpn_server.php:563 +#: src/usr/local/www/vpn_openvpn_server.php:585 msgid "Servers" msgstr "" #: src/usr/local/www/load_balancer_pool.php:163 -#: src/usr/local/www/services_dhcp.php:677 +#: src/usr/local/www/services_dhcp.php:683 msgid "Edit pool" msgstr "" @@ -17265,7 +17030,7 @@ msgid "Copy pool" msgstr "" #: src/usr/local/www/load_balancer_pool.php:165 -#: src/usr/local/www/services_dhcp.php:679 +#: src/usr/local/www/services_dhcp.php:685 msgid "Delete pool" msgstr "" @@ -17631,7 +17396,7 @@ msgstr "" msgid "Advanced Features" msgstr "" -#: src/usr/local/www/pkg_edit.php:721 src/usr/local/www/services_dhcp.php:752 +#: src/usr/local/www/pkg_edit.php:721 src/usr/local/www/services_dhcp.php:758 msgid "General Options" msgstr "" @@ -17651,13 +17416,13 @@ msgstr "" msgid "Visit official website" msgstr "" -#: src/usr/local/www/pkg_mgr.php:91 src/usr/local/www/pkg_mgr_installed.php:146 -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:108 +#: src/usr/local/www/pkg_mgr.php:91 src/usr/local/www/pkg_mgr_installed.php:144 +#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:106 msgid "View changelog" msgstr "" #: src/usr/local/www/pkg_mgr.php:102 -#: src/usr/local/www/pkg_mgr_installed.php:157 +#: src/usr/local/www/pkg_mgr_installed.php:155 msgid "Package Dependencies" msgstr "" @@ -17666,21 +17431,21 @@ msgid "Click to install" msgstr "" #: src/usr/local/www/pkg_mgr.php:116 -#: src/usr/local/www/pkg_mgr_installed.php:178 -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:128 +#: src/usr/local/www/pkg_mgr_installed.php:175 +#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:126 msgid "View more information" msgstr "" #: src/usr/local/www/pkg_mgr.php:129 src/usr/local/www/pkg_mgr.php:134 #: src/usr/local/www/pkg_mgr_install.php:244 -#: src/usr/local/www/pkg_mgr_installed.php:213 +#: src/usr/local/www/pkg_mgr_installed.php:208 msgid "Available Packages" msgstr "" #: src/usr/local/www/pkg_mgr.php:133 src/usr/local/www/pkg_mgr_install.php:243 -#: src/usr/local/www/pkg_mgr_installed.php:71 -#: src/usr/local/www/pkg_mgr_installed.php:208 -#: src/usr/local/www/pkg_mgr_installed.php:212 +#: src/usr/local/www/pkg_mgr_installed.php:203 +#: src/usr/local/www/pkg_mgr_installed.php:207 +#: src/usr/local/www/pkg_mgr_installed.php:214 #: src/usr/local/www/widgets/include/installed_packages.inc:24 msgid "Installed Packages" msgstr "" @@ -17700,18 +17465,17 @@ msgid "" msgstr "" #: src/usr/local/www/pkg_mgr.php:173 -#: src/usr/local/www/pkg_mgr_installed.php:219 -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:148 +#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:146 msgid "Packages" msgstr "" #: src/usr/local/www/pkg_mgr.php:176 -#: src/usr/local/www/pkg_mgr_installed.php:222 +#: src/usr/local/www/pkg_mgr_installed.php:217 msgid "Please wait while the list of packages is retrieved and formatted." msgstr "" #: src/usr/local/www/pkg_mgr.php:180 -#: src/usr/local/www/pkg_mgr_installed.php:226 +#: src/usr/local/www/pkg_mgr_installed.php:221 msgid "Unable to retrieve package information." msgstr "" @@ -17721,13 +17485,13 @@ msgstr "" #: src/usr/local/www/pkg_mgr_install.php:238 #: src/usr/local/www/pkg_mgr_install.php:239 -#: src/usr/local/www/system_update_settings.php:121 +#: src/usr/local/www/system_update_settings.php:116 msgid "System Update" msgstr "" #: src/usr/local/www/pkg_mgr_install.php:240 #: src/usr/local/www/system_update_settings.php:77 -#: src/usr/local/www/system_update_settings.php:122 +#: src/usr/local/www/system_update_settings.php:117 msgid "Update Settings" msgstr "" @@ -17896,88 +17660,67 @@ msgstr "" msgid "This may take several minutes!" msgstr "" -#: src/usr/local/www/pkg_mgr_installed.php:78 -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:51 +#: src/usr/local/www/pkg_mgr_installed.php:76 msgid "Category" msgstr "" -#: src/usr/local/www/pkg_mgr_installed.php:101 -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:71 +#: src/usr/local/www/pkg_mgr_installed.php:99 +#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:70 msgid "Package is configured, but not installed!" msgstr "" -#: src/usr/local/www/pkg_mgr_installed.php:107 -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:77 +#: src/usr/local/www/pkg_mgr_installed.php:105 +#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:76 #, php-format msgid "Newer than available (%s)" msgstr "" -#: src/usr/local/www/pkg_mgr_installed.php:110 -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:81 +#: src/usr/local/www/pkg_mgr_installed.php:108 +#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:80 #, php-format msgid "Upgrade available to %s" msgstr "" -#: src/usr/local/www/pkg_mgr_installed.php:116 +#: src/usr/local/www/pkg_mgr_installed.php:114 msgid "Up-to-date" msgstr "" -#: src/usr/local/www/pkg_mgr_installed.php:118 -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:92 +#: src/usr/local/www/pkg_mgr_installed.php:116 +#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:91 msgid "Error comparing version" msgstr "" -#: src/usr/local/www/pkg_mgr_installed.php:166 +#: src/usr/local/www/pkg_mgr_installed.php:163 #, php-format msgid "Remove package %s" msgstr "" -#: src/usr/local/www/pkg_mgr_installed.php:170 +#: src/usr/local/www/pkg_mgr_installed.php:167 #, php-format msgid "Update package %s" msgstr "" -#: src/usr/local/www/pkg_mgr_installed.php:173 +#: src/usr/local/www/pkg_mgr_installed.php:170 #, php-format msgid "Reinstall package %s" msgstr "" -#: src/usr/local/www/pkg_mgr_installed.php:194 +#: src/usr/local/www/pkg_mgr_installed.php:190 msgid "Current" msgstr "" -#: src/usr/local/www/pkg_mgr_installed.php:201 +#: src/usr/local/www/pkg_mgr_installed.php:197 msgid "Newer version available" msgstr "" -#: src/usr/local/www/pkg_mgr_installed.php:202 +#: src/usr/local/www/pkg_mgr_installed.php:198 msgid "Package is configured but not (fully) installed" msgstr "" -#: src/usr/local/www/pkg_mgr_installed.php:230 +#: src/usr/local/www/pkg_mgr_installed.php:225 msgid "There are no packages currently installed." msgstr "" -#: src/usr/local/www/restart_httpd.php:32 -msgid "Restarting httpd" -msgstr "" - -#: src/usr/local/www/restart_httpd.php:39 -msgid "Mounting file systems read/write" -msgstr "" - -#: src/usr/local/www/restart_httpd.php:42 -msgid "Forcing all PHP file permissions to 0755" -msgstr "" - -#: src/usr/local/www/restart_httpd.php:45 -msgid "Mounting file systems read only" -msgstr "" - -#: src/usr/local/www/restart_httpd.php:48 -msgid "Restarting mini_httpd" -msgstr "" - #: src/usr/local/www/services_captiveportal.php:84 #, php-format msgid "Captive Portal: zone %s: Restore default portal page" @@ -18083,45 +17826,45 @@ msgid "" msgstr "" #: src/usr/local/www/services_captiveportal.php:531 -#: src/usr/local/www/services_captiveportal_filemanager.php:141 +#: src/usr/local/www/services_captiveportal_filemanager.php:139 #: src/usr/local/www/services_captiveportal_hostname.php:106 #: src/usr/local/www/services_captiveportal_ip.php:100 #: src/usr/local/www/services_captiveportal_mac.php:59 #: src/usr/local/www/services_captiveportal_mac.php:165 #: src/usr/local/www/services_captiveportal_mac_edit.php:69 -#: src/usr/local/www/services_captiveportal_vouchers.php:406 +#: src/usr/local/www/services_captiveportal_vouchers.php:375 msgid "MACs" msgstr "" #: src/usr/local/www/services_captiveportal.php:532 -#: src/usr/local/www/services_captiveportal_filemanager.php:142 +#: src/usr/local/www/services_captiveportal_filemanager.php:140 #: src/usr/local/www/services_captiveportal_hostname.php:107 #: src/usr/local/www/services_captiveportal_ip.php:62 #: src/usr/local/www/services_captiveportal_ip.php:101 #: src/usr/local/www/services_captiveportal_ip_edit.php:66 #: src/usr/local/www/services_captiveportal_mac.php:166 -#: src/usr/local/www/services_captiveportal_vouchers.php:407 +#: src/usr/local/www/services_captiveportal_vouchers.php:376 msgid "Allowed IP Addresses" msgstr "" #: src/usr/local/www/services_captiveportal.php:533 -#: src/usr/local/www/services_captiveportal_filemanager.php:143 +#: src/usr/local/www/services_captiveportal_filemanager.php:141 #: src/usr/local/www/services_captiveportal_hostname.php:62 #: src/usr/local/www/services_captiveportal_hostname.php:108 #: src/usr/local/www/services_captiveportal_hostname_edit.php:64 #: src/usr/local/www/services_captiveportal_ip.php:102 #: src/usr/local/www/services_captiveportal_mac.php:167 -#: src/usr/local/www/services_captiveportal_vouchers.php:408 +#: src/usr/local/www/services_captiveportal_vouchers.php:377 msgid "Allowed Hostnames" msgstr "" #: src/usr/local/www/services_captiveportal.php:534 -#: src/usr/local/www/services_captiveportal_filemanager.php:144 +#: src/usr/local/www/services_captiveportal_filemanager.php:142 #: src/usr/local/www/services_captiveportal_hostname.php:109 #: src/usr/local/www/services_captiveportal_ip.php:103 #: src/usr/local/www/services_captiveportal_mac.php:168 #: src/usr/local/www/services_captiveportal_vouchers.php:78 -#: src/usr/local/www/services_captiveportal_vouchers.php:409 +#: src/usr/local/www/services_captiveportal_vouchers.php:378 #: src/usr/local/www/services_captiveportal_vouchers_edit.php:53 #: src/usr/local/www/status_captiveportal_expire.php:81 #: src/usr/local/www/status_captiveportal_test.php:89 @@ -18130,11 +17873,11 @@ msgstr "" #: src/usr/local/www/services_captiveportal.php:535 #: src/usr/local/www/services_captiveportal_filemanager.php:67 -#: src/usr/local/www/services_captiveportal_filemanager.php:145 +#: src/usr/local/www/services_captiveportal_filemanager.php:143 #: src/usr/local/www/services_captiveportal_hostname.php:110 #: src/usr/local/www/services_captiveportal_ip.php:104 #: src/usr/local/www/services_captiveportal_mac.php:169 -#: src/usr/local/www/services_captiveportal_vouchers.php:410 +#: src/usr/local/www/services_captiveportal_vouchers.php:379 msgid "File Manager" msgstr "" @@ -18481,7 +18224,7 @@ msgid "" msgstr "" #: src/usr/local/www/services_captiveportal.php:1033 -#: src/usr/local/www/system_advanced_admin.php:339 +#: src/usr/local/www/system_advanced_admin.php:337 msgid "SSL Certificate" msgstr "" @@ -18595,33 +18338,33 @@ msgstr "" msgid "The total size of all files uploaded may not exceed %s." msgstr "" -#: src/usr/local/www/services_captiveportal_filemanager.php:154 +#: src/usr/local/www/services_captiveportal_filemanager.php:152 msgid "Upload a New File" msgstr "" -#: src/usr/local/www/services_captiveportal_filemanager.php:165 +#: src/usr/local/www/services_captiveportal_filemanager.php:163 msgid "File" msgstr "" -#: src/usr/local/www/services_captiveportal_filemanager.php:184 +#: src/usr/local/www/services_captiveportal_filemanager.php:182 msgid "Installed Files" msgstr "" -#: src/usr/local/www/services_captiveportal_filemanager.php:204 +#: src/usr/local/www/services_captiveportal_filemanager.php:202 msgid "Delete file" msgstr "" -#: src/usr/local/www/services_captiveportal_filemanager.php:215 +#: src/usr/local/www/services_captiveportal_filemanager.php:213 msgid "Total" msgstr "" -#: src/usr/local/www/services_captiveportal_filemanager.php:245 +#: src/usr/local/www/services_captiveportal_filemanager.php:243 #: src/usr/local/www/services_ntpd_gps.php:207 #: src/usr/local/www/services_ntpd_pps.php:126 msgid "Notes" msgstr "" -#: src/usr/local/www/services_captiveportal_filemanager.php:247 +#: src/usr/local/www/services_captiveportal_filemanager.php:245 msgid "" "Any files that are uploaded here with the filename prefix of captiveportal- " "will be made available in the root directory of the captive portal HTTP(S) " @@ -18632,18 +18375,18 @@ msgid "" "portal page like this:" msgstr "" -#: src/usr/local/www/services_captiveportal_filemanager.php:254 +#: src/usr/local/www/services_captiveportal_filemanager.php:252 msgid "" "In addition, .php files can also be uploaded for execution.\tThe filename " "can be passed to the custom page from the initial page by using text similar " "to:" msgstr "" -#: src/usr/local/www/services_captiveportal_filemanager.php:256 +#: src/usr/local/www/services_captiveportal_filemanager.php:254 msgid "Acceptable usage policy" msgstr "" -#: src/usr/local/www/services_captiveportal_filemanager.php:257 +#: src/usr/local/www/services_captiveportal_filemanager.php:255 #, php-format msgid "The total size limit for all files is %s." msgstr "" @@ -18773,8 +18516,8 @@ msgid "Allowed IP address" msgstr "" #: src/usr/local/www/services_captiveportal_ip_edit.php:96 -#: src/usr/local/www/services_dhcp.php:795 -#: src/usr/local/www/services_dhcp.php:823 +#: src/usr/local/www/services_dhcp.php:808 +#: src/usr/local/www/services_dhcp.php:836 #: src/usr/local/www/services_pppoe_edit.php:342 msgid "Subnet mask" msgstr "" @@ -18943,7 +18686,7 @@ msgid "magic" msgstr "" #: src/usr/local/www/services_captiveportal_vouchers.php:213 -#: src/usr/local/www/services_captiveportal_vouchers.php:563 +#: src/usr/local/www/services_captiveportal_vouchers.php:532 msgid "Synchronize Voucher Database IP" msgstr "" @@ -18995,50 +18738,19 @@ msgstr "" msgid "The voucher database cannot be sync'd to this host (itself)." msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:320 -#, php-format -msgid "voucher XMLRPC sync data %s:%d" -msgstr "" - -#: src/usr/local/www/services_captiveportal_vouchers.php:326 -#, php-format -msgid "" -"A communications error occurred while attempting CaptivePortalVoucherSync " -"XMLRPC sync with %s:%d (pfsense.exec_php)." -msgstr "" - -#: src/usr/local/www/services_captiveportal_vouchers.php:328 -msgid "Communications error occurred" -msgstr "" - -#: src/usr/local/www/services_captiveportal_vouchers.php:333 -#, php-format -msgid "" -"An error code was received while attempting CaptivePortalVoucherSync XMLRPC " -"sync with %s:%d - Code %d: %s" -msgstr "" - -#: src/usr/local/www/services_captiveportal_vouchers.php:335 -msgid "Error code received" -msgstr "" - -#: src/usr/local/www/services_captiveportal_vouchers.php:338 +#: src/usr/local/www/services_captiveportal_vouchers.php:315 #, php-format msgid "" -"The Captive Portal voucher database has been synchronized with %s:%d " -"(pfsense.exec_php)." -msgstr "" - -#: src/usr/local/www/services_captiveportal_vouchers.php:344 -msgid "Could not synchronize the voucher database: Authentication Failed." +"The Captive Portal voucher database has been synchronized with %s (pfsense." +"exec_php)." msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:378 +#: src/usr/local/www/services_captiveportal_vouchers.php:347 #, php-format -msgid "Voucher database has been synchronized from %1$s:%2$s" +msgid "Voucher database has been synchronized from %1$s" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:416 +#: src/usr/local/www/services_captiveportal_vouchers.php:385 #: src/usr/local/www/services_captiveportal_vouchers_edit.php:184 #: src/usr/local/www/status_captiveportal.php:109 #: src/usr/local/www/status_captiveportal_expire.php:70 @@ -19049,92 +18761,92 @@ msgstr "" msgid "Voucher Rolls" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:422 +#: src/usr/local/www/services_captiveportal_vouchers.php:391 #: src/usr/local/www/services_captiveportal_vouchers_edit.php:188 msgid "Roll #" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:423 +#: src/usr/local/www/services_captiveportal_vouchers.php:392 #: src/usr/local/www/status_captiveportal_voucher_rolls.php:77 msgid "Minutes/Ticket" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:424 +#: src/usr/local/www/services_captiveportal_vouchers.php:393 #: src/usr/local/www/status_captiveportal_voucher_rolls.php:78 msgid "# of Tickets" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:425 +#: src/usr/local/www/services_captiveportal_vouchers.php:394 #: src/usr/local/www/services_captiveportal_vouchers_edit.php:209 #: src/usr/local/www/status_captiveportal_voucher_rolls.php:79 msgid "Comment" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:449 +#: src/usr/local/www/services_captiveportal_vouchers.php:418 msgid "Edit voucher roll" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:450 +#: src/usr/local/www/services_captiveportal_vouchers.php:419 msgid "Delete voucher roll" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:451 +#: src/usr/local/www/services_captiveportal_vouchers.php:420 msgid "Export vouchers for this roll to a .csv file" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:477 -#: src/usr/local/www/services_captiveportal_vouchers.php:488 +#: src/usr/local/www/services_captiveportal_vouchers.php:446 +#: src/usr/local/www/services_captiveportal_vouchers.php:457 msgid "Create, Generate and Activate Rolls with Vouchers" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:493 +#: src/usr/local/www/services_captiveportal_vouchers.php:462 msgid "Voucher Public Key" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:495 +#: src/usr/local/www/services_captiveportal_vouchers.php:464 msgid "" "Paste an RSA public key (64 Bit or smaller) in PEM format here. This key is " "used to decrypt vouchers." msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:499 +#: src/usr/local/www/services_captiveportal_vouchers.php:468 msgid "Voucher Private Key" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:501 +#: src/usr/local/www/services_captiveportal_vouchers.php:470 msgid "" "Paste an RSA private key (64 Bit or smaller) in PEM format here. This key is " "only used to generate encrypted vouchers and doesn't need to be available if " "the vouchers have been generated offline." msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:505 +#: src/usr/local/www/services_captiveportal_vouchers.php:474 msgid "Character set" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:508 +#: src/usr/local/www/services_captiveportal_vouchers.php:477 msgid "" "Tickets are generated with the specified character set. It should contain " "printable characters (numbers, lower case and upper case letters) that are " "hard to confuse with others. Avoid e.g. 0/O and l/1." msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:512 +#: src/usr/local/www/services_captiveportal_vouchers.php:481 msgid "# of Roll bits" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:515 +#: src/usr/local/www/services_captiveportal_vouchers.php:484 msgid "" "Reserves a range in each voucher to store the Roll # it belongs to. Allowed " "range: 1..31. Sum of Roll+Ticket+Checksum bits must be one Bit less than the " "RSA key size." msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:519 +#: src/usr/local/www/services_captiveportal_vouchers.php:488 msgid "# of Ticket bits" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:522 +#: src/usr/local/www/services_captiveportal_vouchers.php:491 msgid "" "Reserves a range in each voucher to store the Ticket# it belongs to. Allowed " "range: 1..16. Using 16 bits allows a roll to have up to 65535 vouchers. A " @@ -19142,83 +18854,83 @@ msgid "" "been used. A bit array for 65535 vouchers requires 8 KB of storage. " msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:528 +#: src/usr/local/www/services_captiveportal_vouchers.php:497 msgid "# of Checksum bits" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:531 +#: src/usr/local/www/services_captiveportal_vouchers.php:500 msgid "" "Reserves a range in each voucher to store a simple checksum over Roll # and " "Ticket#. Allowed range is 0..31." msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:535 +#: src/usr/local/www/services_captiveportal_vouchers.php:504 msgid "Magic number" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:538 +#: src/usr/local/www/services_captiveportal_vouchers.php:507 msgid "" "Magic number stored in every voucher. Verified during voucher check. Size " "depends on how many bits are left by Roll+Ticket+Checksum bits. If all bits " "are used, no magic number will be used and checked." msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:543 +#: src/usr/local/www/services_captiveportal_vouchers.php:512 msgid "Invalid voucher message" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:546 +#: src/usr/local/www/services_captiveportal_vouchers.php:515 msgid "" "Error message displayed for invalid vouchers on captive portal error page " "($PORTAL_MESSAGE$)." msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:551 +#: src/usr/local/www/services_captiveportal_vouchers.php:520 msgid "Expired voucher message" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:554 +#: src/usr/local/www/services_captiveportal_vouchers.php:523 msgid "" "Error message displayed for expired vouchers on captive portal error page " "($PORTAL_MESSAGE$)." msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:558 +#: src/usr/local/www/services_captiveportal_vouchers.php:527 msgid "Voucher Database Synchronization" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:565 +#: src/usr/local/www/services_captiveportal_vouchers.php:534 msgid "" "IP address of master nodes webConfigurator to synchronize voucher database " "and used vouchers from.<br />NOTE: this should be setup on the slave nodes " "and not the primary node!" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:570 +#: src/usr/local/www/services_captiveportal_vouchers.php:539 msgid "Voucher sync port" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:573 +#: src/usr/local/www/services_captiveportal_vouchers.php:542 msgid "The port of the master voucher node's webConfigurator. Example: 443 " msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:577 +#: src/usr/local/www/services_captiveportal_vouchers.php:546 msgid "Voucher sync username" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:580 +#: src/usr/local/www/services_captiveportal_vouchers.php:549 msgid "This is the username of the master voucher nodes webConfigurator." msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:584 +#: src/usr/local/www/services_captiveportal_vouchers.php:553 msgid "Voucher sync password" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:587 +#: src/usr/local/www/services_captiveportal_vouchers.php:556 msgid "This is the password of the master voucher nodes webConfigurator." msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:608 +#: src/usr/local/www/services_captiveportal_vouchers.php:577 msgid "" "Changing any Voucher parameter (apart from managing the list of Rolls) on " "this page will render existing vouchers useless if they were generated with " @@ -19227,13 +18939,13 @@ msgid "" "retrieved/synced from the master." msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:644 +#: src/usr/local/www/services_captiveportal_vouchers.php:613 msgid "Generate new keys" msgstr "" #: src/usr/local/www/services_captiveportal_vouchers_edit.php:91 -#: src/usr/local/www/services_dhcp.php:1226 -#: src/usr/local/www/services_dhcpv6.php:916 +#: src/usr/local/www/services_dhcp.php:1239 +#: src/usr/local/www/services_dhcpv6.php:911 msgid "Number" msgstr "" @@ -19408,7 +19120,7 @@ msgstr "" msgid "Delete service" msgstr "" -#: src/usr/local/www/services_checkip.php:160 +#: src/usr/local/www/services_checkip.php:161 msgid "" "The first (highest in list) enabled check ip service will be used to check " "IP addresses for Dynamic DNS services, and RFC 2136 entries that have the " @@ -19441,399 +19153,404 @@ msgstr "" msgid "User name" msgstr "" -#: src/usr/local/www/services_dhcp.php:235 -#: src/usr/local/www/services_dhcpv6.php:216 +#: src/usr/local/www/services_dhcp.php:236 +#: src/usr/local/www/services_dhcpv6.php:211 msgid "Range begin" msgstr "" -#: src/usr/local/www/services_dhcp.php:235 -#: src/usr/local/www/services_dhcpv6.php:216 +#: src/usr/local/www/services_dhcp.php:236 +#: src/usr/local/www/services_dhcpv6.php:211 msgid "Range end" msgstr "" -#: src/usr/local/www/services_dhcp.php:240 +#: src/usr/local/www/services_dhcp.php:241 msgid "" "Ignore Denied Clients may not be used when a Failover Peer IP is defined." msgstr "" -#: src/usr/local/www/services_dhcp.php:244 -#: src/usr/local/www/services_dhcp.php:247 -#: src/usr/local/www/services_dhcpv6.php:254 -#: src/usr/local/www/services_dhcpv6.php:264 +#: src/usr/local/www/services_dhcp.php:245 +#: src/usr/local/www/services_dhcp.php:248 +#: src/usr/local/www/services_dhcpv6.php:249 +#: src/usr/local/www/services_dhcpv6.php:259 msgid "A valid range must be specified." msgstr "" -#: src/usr/local/www/services_dhcp.php:250 +#: src/usr/local/www/services_dhcp.php:251 #: src/usr/local/www/services_dhcp_edit.php:235 msgid "A valid IP address must be specified for the gateway." msgstr "" -#: src/usr/local/www/services_dhcp.php:253 +#: src/usr/local/www/services_dhcp.php:254 #: src/usr/local/www/services_dhcp_edit.php:238 msgid "" "A valid IP address must be specified for the primary/secondary WINS servers." msgstr "" -#: src/usr/local/www/services_dhcp.php:259 +#: src/usr/local/www/services_dhcp.php:260 #: src/usr/local/www/services_dhcp_edit.php:245 #, php-format msgid "" "The gateway address %s does not lie within the chosen interface's subnet." msgstr "" -#: src/usr/local/www/services_dhcp.php:264 +#: src/usr/local/www/services_dhcp.php:265 #: src/usr/local/www/services_dhcp_edit.php:252 msgid "A valid IP address must be specified for each of the DNS servers." msgstr "" -#: src/usr/local/www/services_dhcp.php:268 +#: src/usr/local/www/services_dhcp.php:269 #: src/usr/local/www/services_dhcp_edit.php:256 -#: src/usr/local/www/services_dhcpv6.php:283 +#: src/usr/local/www/services_dhcpv6.php:278 msgid "The default lease time must be at least 60 seconds." msgstr "" -#: src/usr/local/www/services_dhcp.php:290 +#: src/usr/local/www/services_dhcp.php:291 #, php-format msgid "" "The Captive Portal zone (%1$s) has Hard Timeout parameter set to a value " "bigger than Default lease time (%2$s)." msgstr "" -#: src/usr/local/www/services_dhcp.php:296 +#: src/usr/local/www/services_dhcp.php:297 #: src/usr/local/www/services_dhcp_edit.php:259 -#: src/usr/local/www/services_dhcpv6.php:286 +#: src/usr/local/www/services_dhcpv6.php:281 msgid "" "The maximum lease time must be at least 60 seconds and higher than the " "default lease time." msgstr "" -#: src/usr/local/www/services_dhcp.php:299 +#: src/usr/local/www/services_dhcp.php:300 #: src/usr/local/www/services_dhcp_edit.php:262 -#: src/usr/local/www/services_dhcpv6.php:289 +#: src/usr/local/www/services_dhcpv6.php:284 msgid "A valid domain name must be specified for the dynamic DNS registration." msgstr "" -#: src/usr/local/www/services_dhcp.php:302 +#: src/usr/local/www/services_dhcp.php:303 #: src/usr/local/www/services_dhcp_edit.php:265 msgid "" "A valid primary domain name server IP address must be specified for the " "dynamic domain name." msgstr "" -#: src/usr/local/www/services_dhcp.php:306 +#: src/usr/local/www/services_dhcp.php:307 #: src/usr/local/www/services_dhcp_edit.php:269 -#: src/usr/local/www/services_dhcpv6.php:296 +#: src/usr/local/www/services_dhcpv6.php:291 msgid "Both a valid domain key and key name must be specified." msgstr "" -#: src/usr/local/www/services_dhcp.php:312 +#: src/usr/local/www/services_dhcp.php:313 #: src/usr/local/www/services_dhcp_edit.php:275 -#: src/usr/local/www/services_dhcpv6.php:302 -#: src/usr/local/www/services_router_advertisements.php:166 +#: src/usr/local/www/services_dhcpv6.php:297 +#: src/usr/local/www/services_router_advertisements.php:161 msgid "A valid domain search list must be specified." msgstr "" -#: src/usr/local/www/services_dhcp.php:320 +#: src/usr/local/www/services_dhcp.php:321 msgid "" "If a mac allow list is specified, it must contain only valid partial MAC " "addresses." msgstr "" -#: src/usr/local/www/services_dhcp.php:323 +#: src/usr/local/www/services_dhcp.php:324 msgid "" "If a mac deny list is specified, it must contain only valid partial MAC " "addresses." msgstr "" -#: src/usr/local/www/services_dhcp.php:327 +#: src/usr/local/www/services_dhcp.php:328 msgid "" "A valid IP address or hostname must be specified for the primary/secondary " "NTP servers." msgstr "" -#: src/usr/local/www/services_dhcp.php:330 -#: src/usr/local/www/services_dhcpv6.php:312 +#: src/usr/local/www/services_dhcp.php:331 +#: src/usr/local/www/services_dhcpv6.php:307 msgid "A valid domain name must be specified for the DNS domain." msgstr "" -#: src/usr/local/www/services_dhcp.php:333 +#: src/usr/local/www/services_dhcp.php:334 #: src/usr/local/www/services_dhcp_edit.php:285 -msgid "A valid IP address, hostname or URL must be specified for the TFTP server." +msgid "" +"A valid IP address, hostname or URL must be specified for the TFTP server." msgstr "" -#: src/usr/local/www/services_dhcp.php:336 +#: src/usr/local/www/services_dhcp.php:337 #: src/usr/local/www/services_dhcp_edit.php:288 msgid "A valid IP address must be specified for the network boot server." msgstr "" -#: src/usr/local/www/services_dhcp.php:340 +#: src/usr/local/www/services_dhcp.php:341 msgid "The network address cannot be used in the starting subnet range." msgstr "" -#: src/usr/local/www/services_dhcp.php:343 +#: src/usr/local/www/services_dhcp.php:344 msgid "The broadcast address cannot be used in the ending subnet range." msgstr "" -#: src/usr/local/www/services_dhcp.php:351 +#: src/usr/local/www/services_dhcp.php:352 #, php-format msgid "The subnet range cannot overlap with virtual IP address %s." msgstr "" -#: src/usr/local/www/services_dhcp.php:367 +#: src/usr/local/www/services_dhcp.php:368 msgid "" "Cannot enable static ARP when there are static map entries without IP " "addresses. Ensure all static maps have IP addresses and try again." msgstr "" -#: src/usr/local/www/services_dhcp.php:374 +#: src/usr/local/www/services_dhcp.php:375 msgid "Text type cannot include quotation marks." msgstr "" -#: src/usr/local/www/services_dhcp.php:376 +#: src/usr/local/www/services_dhcp.php:377 msgid "" "String type must be enclosed in quotes like \"this\" or must be a series of " "octets specified in hexadecimal, separated by colons, like 01:23:45:67:89:ab:" "cd:ef" msgstr "" -#: src/usr/local/www/services_dhcp.php:378 +#: src/usr/local/www/services_dhcp.php:379 msgid "Boolean type must be true, false, on, or off." msgstr "" -#: src/usr/local/www/services_dhcp.php:380 +#: src/usr/local/www/services_dhcp.php:381 msgid "Unsigned 8-bit integer type must be a number in the range 0 to 255." msgstr "" -#: src/usr/local/www/services_dhcp.php:382 +#: src/usr/local/www/services_dhcp.php:383 msgid "Unsigned 16-bit integer type must be a number in the range 0 to 65535." msgstr "" -#: src/usr/local/www/services_dhcp.php:384 +#: src/usr/local/www/services_dhcp.php:385 msgid "" "Unsigned 32-bit integer type must be a number in the range 0 to 4294967295." msgstr "" -#: src/usr/local/www/services_dhcp.php:386 +#: src/usr/local/www/services_dhcp.php:387 msgid "Signed 8-bit integer type must be a number in the range -128 to 127." msgstr "" -#: src/usr/local/www/services_dhcp.php:388 +#: src/usr/local/www/services_dhcp.php:389 msgid "" "Signed 16-bit integer type must be a number in the range -32768 to 32767." msgstr "" -#: src/usr/local/www/services_dhcp.php:390 +#: src/usr/local/www/services_dhcp.php:391 msgid "" "Signed 32-bit integer type must be a number in the range -2147483648 to " "2147483647." msgstr "" -#: src/usr/local/www/services_dhcp.php:392 +#: src/usr/local/www/services_dhcp.php:393 msgid "IP address or host type must be an IP address or host name." msgstr "" -#: src/usr/local/www/services_dhcp.php:400 -#: src/usr/local/www/services_dhcpv6.php:353 +#: src/usr/local/www/services_dhcp.php:401 +#: src/usr/local/www/services_dhcpv6.php:348 msgid "The range is invalid (first element higher than second element)." msgstr "" -#: src/usr/local/www/services_dhcp.php:405 -#: src/usr/local/www/services_dhcpv6.php:348 +#: src/usr/local/www/services_dhcp.php:406 +#: src/usr/local/www/services_dhcpv6.php:343 msgid "The specified range lies outside of the current subnet." msgstr "" -#: src/usr/local/www/services_dhcp.php:415 +#: src/usr/local/www/services_dhcp.php:416 msgid "" "The specified range must not be within the DHCP range for this interface." msgstr "" -#: src/usr/local/www/services_dhcp.php:428 +#: src/usr/local/www/services_dhcp.php:429 msgid "" "The specified range must not be within the range configured on a DHCP pool " "for this interface." msgstr "" -#: src/usr/local/www/services_dhcp.php:435 -#: src/usr/local/www/services_dhcpv6.php:358 +#: src/usr/local/www/services_dhcp.php:436 +#: src/usr/local/www/services_dhcpv6.php:353 #, php-format msgid "" "The DHCP relay on the %s interface must be disabled before enabling the DHCP " "server." msgstr "" -#: src/usr/local/www/services_dhcp.php:444 -#: src/usr/local/www/services_dhcpv6.php:375 +#: src/usr/local/www/services_dhcp.php:445 +#: src/usr/local/www/services_dhcpv6.php:370 #, php-format msgid "The DHCP range cannot overlap any static DHCP mappings." msgstr "" -#: src/usr/local/www/services_dhcp.php:655 +#: src/usr/local/www/services_dhcp.php:661 #: src/usr/local/www/status_dhcp_leases.php:465 msgid "Pool Start" msgstr "" -#: src/usr/local/www/services_dhcp.php:656 +#: src/usr/local/www/services_dhcp.php:662 #: src/usr/local/www/status_dhcp_leases.php:466 msgid "Pool End" msgstr "" -#: src/usr/local/www/services_dhcp.php:711 +#: src/usr/local/www/services_dhcp.php:717 msgid "" "DHCP Relay is currently enabled. Cannot enable the DHCP Server service while " "the DHCP Relay is enabled on any interface." msgstr "" -#: src/usr/local/www/services_dhcp.php:717 -#: src/usr/local/www/services_dhcpv6.php:495 +#: src/usr/local/www/services_dhcp.php:723 +#: src/usr/local/www/services_dhcpv6.php:490 msgid "The static mapping configuration has been changed." msgstr "" -#: src/usr/local/www/services_dhcp.php:743 +#: src/usr/local/www/services_dhcp.php:749 msgid "" "The DHCP Server can only be enabled on interfaces configured with a static " "IPv4 address. This system has none." msgstr "" -#: src/usr/local/www/services_dhcp.php:758 +#: src/usr/local/www/services_dhcp.php:764 #, php-format msgid "Enable DHCP server on %s interface" msgstr "" -#: src/usr/local/www/services_dhcp.php:762 +#: src/usr/local/www/services_dhcp.php:768 msgid "" "Editing pool-specific options. To return to the Interface, click its tab " "above." msgstr "" -#: src/usr/local/www/services_dhcp.php:767 +#: src/usr/local/www/services_dhcp.php:773 +msgid "BOOTP" +msgstr "" + +#: src/usr/local/www/services_dhcp.php:780 msgid "Deny unknown clients" msgstr "" -#: src/usr/local/www/services_dhcp.php:774 +#: src/usr/local/www/services_dhcp.php:787 msgid "Ignore denied clients" msgstr "" -#: src/usr/local/www/services_dhcp.php:777 +#: src/usr/local/www/services_dhcp.php:790 msgid "" "This option is not compatible with failover and cannot be enabled when a " "Failover Peer IP address is configured." msgstr "" -#: src/usr/local/www/services_dhcp.php:783 +#: src/usr/local/www/services_dhcp.php:796 msgid "Pool Description" msgstr "" -#: src/usr/local/www/services_dhcp.php:803 +#: src/usr/local/www/services_dhcp.php:816 msgid "In-use DHCP Pool Ranges:" msgstr "" -#: src/usr/local/www/services_dhcp.php:816 +#: src/usr/local/www/services_dhcp.php:829 msgid "Available range" msgstr "" -#: src/usr/local/www/services_dhcp.php:829 -#: src/usr/local/www/services_dhcpv6.php:624 +#: src/usr/local/www/services_dhcp.php:842 +#: src/usr/local/www/services_dhcpv6.php:619 msgid "Range" msgstr "" -#: src/usr/local/www/services_dhcp.php:848 +#: src/usr/local/www/services_dhcp.php:861 msgid "Additional Pools" msgstr "" -#: src/usr/local/www/services_dhcp.php:852 +#: src/usr/local/www/services_dhcp.php:865 msgid "Add pool" msgstr "" -#: src/usr/local/www/services_dhcp.php:861 +#: src/usr/local/www/services_dhcp.php:874 msgid "" "If additional pools of addresses are needed inside of this subnet outside " "the above Range, they may be specified here." msgstr "" -#: src/usr/local/www/services_dhcp.php:877 +#: src/usr/local/www/services_dhcp.php:890 #: src/usr/local/www/vpn_openvpn_csc.php:533 msgid "WINS servers" msgstr "" -#: src/usr/local/www/services_dhcp.php:890 +#: src/usr/local/www/services_dhcp.php:903 #: src/usr/local/www/status_interfaces.php:131 msgid "DNS servers" msgstr "" -#: src/usr/local/www/services_dhcp.php:892 +#: src/usr/local/www/services_dhcp.php:905 msgid "" "Leave blank to use the system default DNS servers: this interface's IP if " "DNS Forwarder or Resolver is enabled, otherwise the servers configured on " "the System / General Setup page." msgstr "" -#: src/usr/local/www/services_dhcp.php:897 +#: src/usr/local/www/services_dhcp.php:910 msgid "Other Options" msgstr "" -#: src/usr/local/www/services_dhcp.php:904 +#: src/usr/local/www/services_dhcp.php:917 msgid "" "The default is to use the IP on this interface of the firewall as the " "gateway. Specify an alternate gateway here if this is not the correct " "gateway for the network. Type \"none\" for no gateway assignment." msgstr "" -#: src/usr/local/www/services_dhcp.php:908 -#: src/usr/local/www/services_dhcp_edit.php:534 -#: src/usr/local/www/services_dhcpv6.php:688 +#: src/usr/local/www/services_dhcp.php:921 +#: src/usr/local/www/services_dhcp_edit.php:541 +#: src/usr/local/www/services_dhcpv6.php:683 #: src/usr/local/www/services_dyndns_edit.php:101 #: src/usr/local/www/services_dyndns_edit.php:296 msgid "Domain name" msgstr "" -#: src/usr/local/www/services_dhcp.php:911 +#: src/usr/local/www/services_dhcp.php:924 msgid "" "The default is to use the domain name of this system as the default domain " "name provided by DHCP. An alternate domain name may be specified here." msgstr "" -#: src/usr/local/www/services_dhcp.php:915 -#: src/usr/local/www/services_dhcp_edit.php:541 -#: src/usr/local/www/services_dhcpv6.php:695 -#: src/usr/local/www/services_router_advertisements.php:444 +#: src/usr/local/www/services_dhcp.php:928 +#: src/usr/local/www/services_dhcp_edit.php:548 +#: src/usr/local/www/services_dhcpv6.php:690 +#: src/usr/local/www/services_router_advertisements.php:439 msgid "Domain search list" msgstr "" -#: src/usr/local/www/services_dhcp.php:918 -#: src/usr/local/www/services_dhcp_edit.php:544 -#: src/usr/local/www/services_dhcpv6.php:698 +#: src/usr/local/www/services_dhcp.php:931 +#: src/usr/local/www/services_dhcp_edit.php:551 +#: src/usr/local/www/services_dhcpv6.php:693 msgid "" "The DHCP server can optionally provide a domain search list. Use the " "semicolon character as separator." msgstr "" -#: src/usr/local/www/services_dhcp.php:922 -#: src/usr/local/www/services_dhcpv6.php:702 +#: src/usr/local/www/services_dhcp.php:935 +#: src/usr/local/www/services_dhcpv6.php:697 msgid "Default lease time" msgstr "" -#: src/usr/local/www/services_dhcp.php:925 +#: src/usr/local/www/services_dhcp.php:938 msgid "" "This is used for clients that do not ask for a specific expiration time. The " "default is 7200 seconds." msgstr "" -#: src/usr/local/www/services_dhcp.php:929 +#: src/usr/local/www/services_dhcp.php:942 msgid "Maximum lease time" msgstr "" -#: src/usr/local/www/services_dhcp.php:932 -#: src/usr/local/www/services_dhcp_edit.php:558 +#: src/usr/local/www/services_dhcp.php:945 +#: src/usr/local/www/services_dhcp_edit.php:565 msgid "" "This is the maximum lease time for clients that ask for a specific " "expiration time. The default is 86400 seconds." msgstr "" -#: src/usr/local/www/services_dhcp.php:937 +#: src/usr/local/www/services_dhcp.php:950 msgid "Failover peer IP" msgstr "" -#: src/usr/local/www/services_dhcp.php:939 +#: src/usr/local/www/services_dhcp.php:952 msgid "" "Leave blank to disable. Enter the interface IP address of the other machine. " "Machines must be using CARP. Interface's advskew determines whether the " @@ -19841,258 +19558,259 @@ msgid "" "(and the other is > 20)." msgstr "" -#: src/usr/local/www/services_dhcp.php:946 -#: src/usr/local/www/services_dhcp.php:1302 +#: src/usr/local/www/services_dhcp.php:959 +#: src/usr/local/www/services_dhcp.php:1315 #: src/usr/local/www/widgets/widgets/wake_on_lan.widget.php:64 msgid "Static ARP" msgstr "" -#: src/usr/local/www/services_dhcp.php:949 +#: src/usr/local/www/services_dhcp.php:962 msgid "" "This option persists even if DHCP server is disabled. Only the machines " "listed below will be able to communicate with the firewall on this interface." msgstr "" -#: src/usr/local/www/services_dhcp.php:953 +#: src/usr/local/www/services_dhcp.php:966 msgid "Time format change" msgstr "" -#: src/usr/local/www/services_dhcp.php:956 +#: src/usr/local/www/services_dhcp.php:969 msgid "" "By default DHCP leases are displayed in UTC time.\tBy checking this box DHCP " "lease time will be displayed in local time and set to the time zone " "selected. This will be used for all DHCP interfaces lease time." msgstr "" -#: src/usr/local/www/services_dhcp.php:960 +#: src/usr/local/www/services_dhcp.php:973 msgid "Statistics graphs" msgstr "" -#: src/usr/local/www/services_dhcp.php:963 +#: src/usr/local/www/services_dhcp.php:976 msgid "" "Enable this to add DHCP leases statistics to the RRD graphs. Disabled by " "default." msgstr "" -#: src/usr/local/www/services_dhcp.php:990 -#: src/usr/local/www/services_dhcp_edit.php:583 -#: src/usr/local/www/services_dhcpv6.php:748 +#: src/usr/local/www/services_dhcp.php:1003 +#: src/usr/local/www/services_dhcp_edit.php:590 +#: src/usr/local/www/services_dhcpv6.php:743 msgid "DDNS Domain" msgstr "" -#: src/usr/local/www/services_dhcp.php:993 +#: src/usr/local/www/services_dhcp.php:1006 msgid "" "Leave blank to disable dynamic DNS registration.<br />Enter the dynamic DNS " "domain which will be used to register client names in the DNS server." msgstr "" -#: src/usr/local/www/services_dhcp.php:998 +#: src/usr/local/www/services_dhcp.php:1011 msgid "Primary DDNS address" msgstr "" -#: src/usr/local/www/services_dhcp.php:1000 +#: src/usr/local/www/services_dhcp.php:1013 msgid "Primary domain name server IP address for the dynamic domain name." msgstr "" -#: src/usr/local/www/services_dhcp.php:1004 +#: src/usr/local/www/services_dhcp.php:1017 msgid "DNS Domain key" msgstr "" -#: src/usr/local/www/services_dhcp.php:1007 +#: src/usr/local/www/services_dhcp.php:1020 msgid "" "Dynamic DNS domain key name which will be used to register client names in " "the DNS server." msgstr "" -#: src/usr/local/www/services_dhcp.php:1011 +#: src/usr/local/www/services_dhcp.php:1024 msgid "DNS Domain key secret" msgstr "" -#: src/usr/local/www/services_dhcp.php:1014 +#: src/usr/local/www/services_dhcp.php:1027 msgid "" -"Dynamic DNS domain key secret which will be used to register client names in " -"the DNS server." +"Dynamic DNS domain key secret (HMAC-MD5) which will be used to register " +"client names in the DNS server." msgstr "" -#: src/usr/local/www/services_dhcp.php:1027 +#: src/usr/local/www/services_dhcp.php:1040 msgid "MAC address control" msgstr "" -#: src/usr/local/www/services_dhcp.php:1033 +#: src/usr/local/www/services_dhcp.php:1046 msgid "MAC Allow" msgstr "" -#: src/usr/local/www/services_dhcp.php:1036 +#: src/usr/local/www/services_dhcp.php:1049 msgid "" "List of partial MAC addresses to allow, comma separated, no spaces, e.g.: " "00:00:00,01:E5:FF" msgstr "" -#: src/usr/local/www/services_dhcp.php:1040 +#: src/usr/local/www/services_dhcp.php:1053 msgid "MAC Deny" msgstr "" -#: src/usr/local/www/services_dhcp.php:1043 +#: src/usr/local/www/services_dhcp.php:1056 msgid "" "List of partial MAC addresses to deny access, comma separated, no spaces, e." "g.: 00:00:00,01:E5:FF" msgstr "" -#: src/usr/local/www/services_dhcp.php:1062 -#: src/usr/local/www/services_dhcp_edit.php:626 -#: src/usr/local/www/services_dhcpv6.php:811 -#: src/usr/local/www/vpn_openvpn_server.php:1052 +#: src/usr/local/www/services_dhcp.php:1075 +#: src/usr/local/www/services_dhcp_edit.php:633 +#: src/usr/local/www/services_dhcpv6.php:806 +#: src/usr/local/www/vpn_openvpn_server.php:1063 msgid "NTP Server 1" msgstr "" -#: src/usr/local/www/services_dhcp.php:1068 -#: src/usr/local/www/services_dhcp_edit.php:634 -#: src/usr/local/www/services_dhcpv6.php:819 -#: src/usr/local/www/vpn_openvpn_server.php:1059 +#: src/usr/local/www/services_dhcp.php:1081 +#: src/usr/local/www/services_dhcp_edit.php:641 +#: src/usr/local/www/services_dhcpv6.php:814 +#: src/usr/local/www/vpn_openvpn_server.php:1070 msgid "NTP Server 2" msgstr "" -#: src/usr/local/www/services_dhcp.php:1083 +#: src/usr/local/www/services_dhcp.php:1096 msgid "TFTP" msgstr "" -#: src/usr/local/www/services_dhcp.php:1089 -#: src/usr/local/www/services_dhcp_edit.php:660 +#: src/usr/local/www/services_dhcp.php:1102 +#: src/usr/local/www/services_dhcp_edit.php:667 msgid "TFTP Server" msgstr "" -#: src/usr/local/www/services_dhcp.php:1091 +#: src/usr/local/www/services_dhcp.php:1104 msgid "" -"Leave blank to disable. Enter a valid IP address, hostname or URL for the TFTP server." +"Leave blank to disable. Enter a valid IP address, hostname or URL for the " +"TFTP server." msgstr "" -#: src/usr/local/www/services_dhcp.php:1104 -#: src/usr/local/www/services_dhcpv6.php:839 +#: src/usr/local/www/services_dhcp.php:1117 +#: src/usr/local/www/services_dhcpv6.php:834 msgid "LDAP" msgstr "" -#: src/usr/local/www/services_dhcp.php:1110 +#: src/usr/local/www/services_dhcp.php:1123 msgid "LDAP Server URI" msgstr "" -#: src/usr/local/www/services_dhcp.php:1113 +#: src/usr/local/www/services_dhcp.php:1126 msgid "" "Leave blank to disable. Enter a full URI for the LDAP server in the form " "ldap://ldap.example.com/dc=example,dc=com " msgstr "" -#: src/usr/local/www/services_dhcp.php:1126 +#: src/usr/local/www/services_dhcp.php:1139 msgid "Network Booting" msgstr "" -#: src/usr/local/www/services_dhcp.php:1139 +#: src/usr/local/www/services_dhcp.php:1152 msgid "Next Server" msgstr "" -#: src/usr/local/www/services_dhcp.php:1141 +#: src/usr/local/www/services_dhcp.php:1154 msgid "Enter the IP address of the next server" msgstr "" -#: src/usr/local/www/services_dhcp.php:1145 +#: src/usr/local/www/services_dhcp.php:1158 msgid "Default BIOS file name" msgstr "" -#: src/usr/local/www/services_dhcp.php:1152 +#: src/usr/local/www/services_dhcp.php:1165 msgid "UEFI 32 bit file name" msgstr "" -#: src/usr/local/www/services_dhcp.php:1159 +#: src/usr/local/www/services_dhcp.php:1172 msgid "UEFI 64 bit file name" msgstr "" -#: src/usr/local/www/services_dhcp.php:1162 +#: src/usr/local/www/services_dhcp.php:1175 msgid "" "Both a filename and a boot server must be configured for this to work! All " "three filenames and a configured boot server are necessary for UEFI to work! " msgstr "" -#: src/usr/local/www/services_dhcp.php:1167 +#: src/usr/local/www/services_dhcp.php:1180 #: src/usr/local/www/services_dhcpv6_edit.php:256 msgid "Root path" msgstr "" -#: src/usr/local/www/services_dhcp.php:1170 +#: src/usr/local/www/services_dhcp.php:1183 msgid "string-format: iscsi:(servername):(protocol):(port):(LUN):targetname " msgstr "" -#: src/usr/local/www/services_dhcp.php:1183 -#: src/usr/local/www/services_dhcp.php:1189 -#: src/usr/local/www/services_dhcpv6.php:888 +#: src/usr/local/www/services_dhcp.php:1196 +#: src/usr/local/www/services_dhcp.php:1202 +#: src/usr/local/www/services_dhcpv6.php:883 msgid "Additional BOOTP/DHCP Options" msgstr "" -#: src/usr/local/www/services_dhcp.php:1194 +#: src/usr/local/www/services_dhcp.php:1207 msgid "" "Enter the DHCP option number and the value for each item to include in the " "DHCP lease information." msgstr "" -#: src/usr/local/www/services_dhcp.php:1195 +#: src/usr/local/www/services_dhcp.php:1208 #, php-format msgid "For a list of available options please visit this %1$s URL%2$s" msgstr "" -#: src/usr/local/www/services_dhcp.php:1203 +#: src/usr/local/www/services_dhcp.php:1216 msgid "Text" msgstr "" -#: src/usr/local/www/services_dhcp.php:1203 +#: src/usr/local/www/services_dhcp.php:1216 msgid "String" msgstr "" -#: src/usr/local/www/services_dhcp.php:1203 +#: src/usr/local/www/services_dhcp.php:1216 msgid "Boolean" msgstr "" -#: src/usr/local/www/services_dhcp.php:1204 +#: src/usr/local/www/services_dhcp.php:1217 msgid "Unsigned 8-bit integer" msgstr "" -#: src/usr/local/www/services_dhcp.php:1204 +#: src/usr/local/www/services_dhcp.php:1217 msgid "Unsigned 16-bit integer" msgstr "" -#: src/usr/local/www/services_dhcp.php:1204 +#: src/usr/local/www/services_dhcp.php:1217 msgid "Unsigned 32-bit integer" msgstr "" -#: src/usr/local/www/services_dhcp.php:1205 +#: src/usr/local/www/services_dhcp.php:1218 msgid "Signed 8-bit integer" msgstr "" -#: src/usr/local/www/services_dhcp.php:1205 +#: src/usr/local/www/services_dhcp.php:1218 msgid "Signed 16-bit integer" msgstr "" -#: src/usr/local/www/services_dhcp.php:1205 +#: src/usr/local/www/services_dhcp.php:1218 msgid "Signed 32-bit integer" msgstr "" -#: src/usr/local/www/services_dhcp.php:1205 +#: src/usr/local/www/services_dhcp.php:1218 msgid "IP address or host" msgstr "" -#: src/usr/local/www/services_dhcp.php:1218 +#: src/usr/local/www/services_dhcp.php:1231 msgid "Option" msgstr "" -#: src/usr/local/www/services_dhcp.php:1297 +#: src/usr/local/www/services_dhcp.php:1310 msgid "DHCP Static Mappings for this Interface" msgstr "" -#: src/usr/local/www/services_dhcp.php:1337 -#: src/usr/local/www/services_dhcpv6.php:1011 +#: src/usr/local/www/services_dhcp.php:1350 +#: src/usr/local/www/services_dhcpv6.php:1006 #: src/usr/local/www/status_dhcp_leases.php:440 msgid "Edit static mapping" msgstr "" -#: src/usr/local/www/services_dhcp.php:1338 -#: src/usr/local/www/services_dhcpv6.php:1012 +#: src/usr/local/www/services_dhcp.php:1351 +#: src/usr/local/www/services_dhcpv6.php:1007 msgid "Delete static mapping" msgstr "" @@ -20109,7 +19827,7 @@ msgstr "" #: src/usr/local/www/services_dhcpv6_edit.php:121 #: src/usr/local/www/services_dnsmasq_edit.php:86 #: src/usr/local/www/services_unbound_host_edit.php:87 -#: src/usr/local/www/system.php:145 +#: src/usr/local/www/system.php:150 msgid "" "A valid hostname is specified, but the domain name part should be omitted" msgstr "" @@ -20155,168 +19873,168 @@ msgid "" "A valid IP address must be specified for the primary/secondary NTP servers." msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:381 +#: src/usr/local/www/services_dhcp_edit.php:388 #: src/usr/local/www/services_dhcpv6_edit.php:201 msgid "Edit Static Mapping" msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:414 +#: src/usr/local/www/services_dhcp_edit.php:421 msgid "MAC address (6 hex octets separated by colons)" msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:419 +#: src/usr/local/www/services_dhcp_edit.php:426 msgid "Client Identifier" msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:428 +#: src/usr/local/www/services_dhcp_edit.php:435 msgid "" "If an IPv4 address is entered, the address must be outside of the pool.<br /" ">If no IPv4 address is given, one will be dynamically allocated from the " "pool." msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:436 +#: src/usr/local/www/services_dhcp_edit.php:443 #: src/usr/local/www/services_dhcpv6_edit.php:237 msgid "Name of the host, without domain part." msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:441 +#: src/usr/local/www/services_dhcp_edit.php:448 #: src/usr/local/www/services_dhcpv6_edit.php:249 msgid "Netboot filename" msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:444 +#: src/usr/local/www/services_dhcp_edit.php:451 #: src/usr/local/www/services_dhcpv6_edit.php:252 msgid "" "Name of the file that should be loaded when this host boots off of the " "network, overrides setting on main page." msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:448 +#: src/usr/local/www/services_dhcp_edit.php:455 msgid "Root Path" msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:451 +#: src/usr/local/www/services_dhcp_edit.php:458 msgid "Enter the root-path-string, overrides setting on main page." msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:463 +#: src/usr/local/www/services_dhcp_edit.php:470 msgid "ARP Table Static Entry" msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:468 +#: src/usr/local/www/services_dhcp_edit.php:475 #: src/usr/local/www/vpn_ipsec_mobile.php:632 msgid "WINS Servers" msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:487 -#: src/usr/local/www/services_dhcpv6.php:671 +#: src/usr/local/www/services_dhcp_edit.php:494 +#: src/usr/local/www/services_dhcpv6.php:666 #: src/usr/local/www/services_pppoe_edit.php:356 #: src/usr/local/www/vpn_ipsec_mobile.php:607 #: src/usr/local/www/vpn_openvpn_csc.php:441 msgid "DNS Servers" msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:521 +#: src/usr/local/www/services_dhcp_edit.php:528 msgid "" "Note: leave blank to use the system default DNS servers - this interface's " "IP if DNS Forwarder or Resolver is enabled, otherwise the servers configured " "on the General page." msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:530 +#: src/usr/local/www/services_dhcp_edit.php:537 msgid "" "The default is to use the IP on this interface of the firewall as the " "gateway. Specify an alternate gateway here if this is not the correct " "gateway for the network." msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:537 -#: src/usr/local/www/services_dhcpv6.php:691 +#: src/usr/local/www/services_dhcp_edit.php:544 +#: src/usr/local/www/services_dhcpv6.php:686 msgid "" "The default is to use the domain name of this system as the default domain " "name provided by DHCP. An alternate domain name may be specified here. " msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:548 +#: src/usr/local/www/services_dhcp_edit.php:555 msgid "Default lease time (Seconds)" msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:551 +#: src/usr/local/www/services_dhcp_edit.php:558 msgid "" "Used for clients that do not ask for a specific expiration time. The default " "is 7200 seconds." msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:555 +#: src/usr/local/www/services_dhcp_edit.php:562 msgid "Maximum lease time (Seconds)" msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:576 -#: src/usr/local/www/services_dhcpv6.php:741 +#: src/usr/local/www/services_dhcp_edit.php:583 +#: src/usr/local/www/services_dhcpv6.php:736 #: src/usr/local/www/services_dnsmasq.php:211 #: src/usr/local/www/services_unbound.php:324 msgid "DHCP Registration" msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:586 -#: src/usr/local/www/services_dhcpv6.php:751 +#: src/usr/local/www/services_dhcp_edit.php:593 +#: src/usr/local/www/services_dhcpv6.php:746 msgid "" "Leave blank to disable dynamic DNS registration. Enter the dynamic DNS " "domain which will be used to register client names in the DNS server." msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:590 -#: src/usr/local/www/services_dhcpv6.php:755 +#: src/usr/local/www/services_dhcp_edit.php:597 +#: src/usr/local/www/services_dhcpv6.php:750 msgid "DDNS Server IP" msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:592 -#: src/usr/local/www/services_dhcpv6.php:757 +#: src/usr/local/www/services_dhcp_edit.php:599 +#: src/usr/local/www/services_dhcpv6.php:752 msgid "" "Enter the primary domain name server IP address for the dynamic domain name." msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:596 -#: src/usr/local/www/services_dhcpv6.php:761 +#: src/usr/local/www/services_dhcp_edit.php:603 +#: src/usr/local/www/services_dhcpv6.php:756 msgid "DDNS Domain Key name" msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:599 -#: src/usr/local/www/services_dhcpv6.php:764 +#: src/usr/local/www/services_dhcp_edit.php:606 +#: src/usr/local/www/services_dhcpv6.php:759 msgid "" "Enter the dynamic DNS domain key name which will be used to register client " "names in the DNS server." msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:603 -#: src/usr/local/www/services_dhcpv6.php:768 +#: src/usr/local/www/services_dhcp_edit.php:610 +#: src/usr/local/www/services_dhcpv6.php:763 msgid "DDNS Domain Key secret" msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:606 -#: src/usr/local/www/services_dhcpv6.php:771 +#: src/usr/local/www/services_dhcp_edit.php:613 +#: src/usr/local/www/services_dhcpv6.php:766 msgid "" "Enter the dynamic DNS domain key secret which will be used to register " "client names in the DNS server." msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:618 -#: src/usr/local/www/services_dhcpv6.php:803 +#: src/usr/local/www/services_dhcp_edit.php:625 +#: src/usr/local/www/services_dhcpv6.php:798 msgid "NTP servers" msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:622 -#: src/usr/local/www/services_dhcpv6.php:807 +#: src/usr/local/www/services_dhcp_edit.php:629 +#: src/usr/local/www/services_dhcpv6.php:802 #: src/usr/local/www/vpn_openvpn_csc.php:482 msgid "NTP Servers" msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:654 +#: src/usr/local/www/services_dhcp_edit.php:661 msgid "TFTP servers" msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:663 +#: src/usr/local/www/services_dhcp_edit.php:670 msgid "" "Leave blank to disable. Enter a full hostname or IP for the TFTP server." msgstr "" @@ -20368,160 +20086,160 @@ msgid "" "This is the IP address of the server to which DHCP requests are relayed." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:221 -#: src/usr/local/www/services_dhcpv6.php:224 +#: src/usr/local/www/services_dhcpv6.php:216 +#: src/usr/local/www/services_dhcpv6.php:219 msgid "A valid prefix range must be specified." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:236 +#: src/usr/local/www/services_dhcpv6.php:231 #, php-format msgid "Prefix Delegation From address is not a valid IPv6 Netmask for %s" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:247 +#: src/usr/local/www/services_dhcpv6.php:242 #, php-format msgid "Prefix Delegation To address is not a valid IPv6 Netmask for %s" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:258 -#: src/usr/local/www/services_dhcpv6.php:268 +#: src/usr/local/www/services_dhcpv6.php:253 +#: src/usr/local/www/services_dhcpv6.php:263 #: src/usr/local/www/services_dhcpv6_edit.php:134 #, php-format msgid "The prefix (upper %s bits) must be zero. Use the form %s" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:273 +#: src/usr/local/www/services_dhcpv6.php:268 msgid "A valid IPv6 address must be specified for the gateway." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:279 -#: src/usr/local/www/services_router_advertisements.php:160 +#: src/usr/local/www/services_dhcpv6.php:274 +#: src/usr/local/www/services_router_advertisements.php:155 msgid "A valid IPv6 address must be specified for each of the DNS servers." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:292 +#: src/usr/local/www/services_dhcpv6.php:287 msgid "" "A valid primary domain name server IPv4 address must be specified for the " "dynamic domain name." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:309 +#: src/usr/local/www/services_dhcpv6.php:304 msgid "" "A valid IPv6 address must be specified for the primary/secondary NTP servers." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:315 +#: src/usr/local/www/services_dhcpv6.php:310 msgid "A valid IPv6 address or hostname must be specified for the TFTP server." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:318 +#: src/usr/local/www/services_dhcpv6.php:313 msgid "A valid URL must be specified for the network bootfile." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:326 +#: src/usr/local/www/services_dhcpv6.php:321 #, php-format msgid "The subnet range cannot overlap with virtual IPv6 address %s." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:491 +#: src/usr/local/www/services_dhcpv6.php:486 msgid "" "DHCPv6 Relay is currently enabled. Cannot enable the DHCPv6 Server service " "while the DHCPv6 Relay is enabled on any interface." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:546 +#: src/usr/local/www/services_dhcpv6.php:541 msgid "" "The DHCPv6 Server can only be enabled on interfaces configured with a static " "IPv6 address. This system has none." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:555 -#: src/usr/local/www/services_router_advertisements.php:247 -#: src/usr/local/www/services_router_advertisements.php:289 +#: src/usr/local/www/services_dhcpv6.php:550 +#: src/usr/local/www/services_router_advertisements.php:242 +#: src/usr/local/www/services_router_advertisements.php:284 msgid "Router Advertisements" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:565 +#: src/usr/local/www/services_dhcpv6.php:560 msgid "DHCPv6 Options" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:587 -#: src/usr/local/www/services_dhcpv6.php:600 +#: src/usr/local/www/services_dhcpv6.php:582 +#: src/usr/local/www/services_dhcpv6.php:595 msgid "Subnet Mask" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:592 +#: src/usr/local/www/services_dhcpv6.php:587 msgid "Available Range" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:594 +#: src/usr/local/www/services_dhcpv6.php:589 msgid "" "Prefix Delegation subnet will be appended to the beginning of the defined " "range" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:649 +#: src/usr/local/www/services_dhcpv6.php:644 msgid "Prefix Delegation Range" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:658 +#: src/usr/local/www/services_dhcpv6.php:653 msgid "Prefix Delegation Size" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:669 +#: src/usr/local/www/services_dhcpv6.php:664 msgid "" "A Prefix range can be defined here for DHCP Prefix Delegation. This allows " "for assigning networks to subrouters. The start and end of the range must " "end on boundaries of the prefix delegation size." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:683 +#: src/usr/local/www/services_dhcpv6.php:678 msgid "" "Leave blank to use the system default DNS servers, this interface's IP if " "DNS forwarder is enabled, or the servers configured on the \"General\" page." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:705 +#: src/usr/local/www/services_dhcpv6.php:700 msgid "" "Lease time in seconds. Used for clients that do not ask for a specific " "expiration time. <br />The default is 7200 seconds." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:710 +#: src/usr/local/www/services_dhcpv6.php:705 msgid "Max lease time" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:713 +#: src/usr/local/www/services_dhcpv6.php:708 msgid "" "Maximum lease time for clients that ask for a specific expiration time. <br /" ">The default is 86400 seconds." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:718 +#: src/usr/local/www/services_dhcpv6.php:713 msgid "Time Format Change" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:721 +#: src/usr/local/www/services_dhcpv6.php:716 msgid "" "By default DHCPv6 leases are displayed in UTC time. By checking this box " "DHCPv6 lease time will be displayed in local time and set to time zone " "selected. This will be used for all DHCPv6 interfaces lease time." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:778 +#: src/usr/local/www/services_dhcpv6.php:773 #: src/usr/local/www/services_unbound_acls.php:231 msgid "Allow" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:780 +#: src/usr/local/www/services_dhcpv6.php:775 msgid "Ignore" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:775 +#: src/usr/local/www/services_dhcpv6.php:770 msgid "DDNS Client Updates" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:781 +#: src/usr/local/www/services_dhcpv6.php:776 msgid "" "How Forward entries are handled when client indicates they wish to update " "DNS. Allow prevents DHCP from updating Forward entries, Deny indicates that " @@ -20530,49 +20248,49 @@ msgid "" "using a different domain name." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:788 +#: src/usr/local/www/services_dhcpv6.php:783 msgid "DDNS Reverse" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:845 +#: src/usr/local/www/services_dhcpv6.php:840 msgid "LDAP URI" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:860 -#: src/usr/local/www/services_dhcpv6.php:866 +#: src/usr/local/www/services_dhcpv6.php:855 +#: src/usr/local/www/services_dhcpv6.php:861 msgid "Network booting" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:873 +#: src/usr/local/www/services_dhcpv6.php:868 msgid "Bootfile URL" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:941 +#: src/usr/local/www/services_dhcpv6.php:936 msgid "Add Option" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:964 +#: src/usr/local/www/services_dhcpv6.php:959 #, php-format msgid "" "The DNS servers entered in %1$sSystem: General Setup%3$s (or the %2$sDNS " "forwarder%3$s if enabled) will be assigned to clients by the DHCP server." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:970 +#: src/usr/local/www/services_dhcpv6.php:965 #, php-format msgid "" "The DHCP lease table can be viewed on the %1$sStatus: DHCPv6 leases%2$s page." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:978 +#: src/usr/local/www/services_dhcpv6.php:973 msgid "DHCPv6 Static Mappings for this Interface" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:983 +#: src/usr/local/www/services_dhcpv6.php:978 #: src/usr/local/www/services_dhcpv6_edit.php:108 #: src/usr/local/www/services_dhcpv6_edit.php:216 -#: src/usr/local/www/status_dhcpv6_leases.php:435 -#: src/usr/local/www/status_dhcpv6_leases.php:532 +#: src/usr/local/www/status_dhcpv6_leases.php:432 +#: src/usr/local/www/status_dhcpv6_leases.php:529 msgid "DUID" msgstr "" @@ -20713,7 +20431,7 @@ msgstr "" #: src/usr/local/www/services_unbound.php:341 #: src/usr/local/www/services_unbound.php:355 #: src/usr/local/www/vpn_openvpn_client.php:750 -#: src/usr/local/www/vpn_openvpn_server.php:1130 +#: src/usr/local/www/vpn_openvpn_server.php:1141 msgid "Custom options" msgstr "" @@ -20742,7 +20460,7 @@ msgstr "" #: src/usr/local/www/services_unbound_host_edit.php:78 #: src/usr/local/www/services_unbound_host_edit.php:222 #: src/usr/local/www/services_unbound_host_edit.php:279 -#: src/usr/local/www/system.php:112 src/usr/local/www/system.php:361 +#: src/usr/local/www/system.php:113 src/usr/local/www/system.php:367 msgid "Domain" msgstr "" @@ -20851,7 +20569,7 @@ msgid "" msgstr "" #: src/usr/local/www/services_dnsmasq_edit.php:83 -#: src/usr/local/www/system.php:142 +#: src/usr/local/www/system.php:147 msgid "" "The hostname can only contain the characters A-Z, 0-9 and '-'. It may not " "start or end with '-'." @@ -20928,8 +20646,8 @@ msgstr "" #: src/usr/local/www/services_dyndns.php:88 #: src/usr/local/www/services_ntpd_acls.php:206 -#: src/usr/local/www/status_openvpn.php:229 -#: src/usr/local/www/status_openvpn.php:285 +#: src/usr/local/www/status_openvpn.php:231 +#: src/usr/local/www/status_openvpn.php:287 #: src/usr/local/www/status_services.php:86 #: src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php:95 #: src/usr/local/www/widgets/widgets/services_status.widget.php:74 @@ -20971,7 +20689,7 @@ msgid "The MX contains invalid characters." msgstr "" #: src/usr/local/www/services_dyndns_edit.php:144 -#: src/usr/local/www/system_usermanager.php:202 +#: src/usr/local/www/system_usermanager.php:198 #: src/usr/local/www/vpn_l2tp_users_edit.php:83 msgid "The username contains invalid characters." msgstr "" @@ -21760,7 +21478,7 @@ msgstr "" #: src/usr/local/www/services_rfc2136_edit.php:78 #: src/usr/local/www/services_rfc2136_edit.php:232 #: src/usr/local/www/vpn_openvpn_client.php:573 -#: src/usr/local/www/vpn_openvpn_server.php:689 +#: src/usr/local/www/vpn_openvpn_server.php:693 msgid "Key" msgstr "" @@ -21826,41 +21544,41 @@ msgid "" "updates to work." msgstr "" -#: src/usr/local/www/services_router_advertisements.php:62 +#: src/usr/local/www/services_router_advertisements.php:57 msgid "" "The DHCPv6 Server can only be enabled on interfaces configured with static, " "non unique local IP addresses." msgstr "" -#: src/usr/local/www/services_router_advertisements.php:63 +#: src/usr/local/www/services_router_advertisements.php:58 msgid "Only interfaces configured with a static IP will be shown." msgstr "" -#: src/usr/local/www/services_router_advertisements.php:113 +#: src/usr/local/www/services_router_advertisements.php:108 msgid "Router Only" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:114 +#: src/usr/local/www/services_router_advertisements.php:109 msgid "Unmanaged" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:115 +#: src/usr/local/www/services_router_advertisements.php:110 msgid "Managed" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:116 +#: src/usr/local/www/services_router_advertisements.php:111 msgid "Assisted" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:117 +#: src/usr/local/www/services_router_advertisements.php:112 msgid "Stateless DHCP" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:119 +#: src/usr/local/www/services_router_advertisements.php:114 msgid "Low" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:124 +#: src/usr/local/www/services_router_advertisements.php:119 msgid "" "Subnets are specified in CIDR format. Select the CIDR mask that pertains to " "each entry.\t/128 specifies a single IPv6 host; /64 specifies a normal IPv6 " @@ -21869,58 +21587,58 @@ msgid "" "assigned." msgstr "" -#: src/usr/local/www/services_router_advertisements.php:154 +#: src/usr/local/www/services_router_advertisements.php:149 #, php-format msgid "An invalid subnet or alias was specified. [%s/%s]" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:173 +#: src/usr/local/www/services_router_advertisements.php:168 msgid "" "A valid lifetime below 2 hours will be ignored by clients (RFC 4862 Section " "5.5.3 point e)" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:176 +#: src/usr/local/www/services_router_advertisements.php:171 msgid "Valid lifetime must be an integer." msgstr "" -#: src/usr/local/www/services_router_advertisements.php:180 +#: src/usr/local/www/services_router_advertisements.php:175 msgid "Minimum advertisement interval must be an integer." msgstr "" -#: src/usr/local/www/services_router_advertisements.php:183 +#: src/usr/local/www/services_router_advertisements.php:178 msgid "Minimum advertisement interval must be no less than 3." msgstr "" -#: src/usr/local/www/services_router_advertisements.php:186 +#: src/usr/local/www/services_router_advertisements.php:181 msgid "" "Minimum advertisement interval must be no greater than 0.75 * Maximum " "advertisement interval" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:191 +#: src/usr/local/www/services_router_advertisements.php:186 msgid "Maximum advertisement interval must be an integer." msgstr "" -#: src/usr/local/www/services_router_advertisements.php:194 +#: src/usr/local/www/services_router_advertisements.php:189 msgid "" "Maximum advertisement interval must be no less than 4 and no greater than " "1800." msgstr "" -#: src/usr/local/www/services_router_advertisements.php:198 +#: src/usr/local/www/services_router_advertisements.php:193 msgid "Router lifetime must be an integer between 1 and 9000." msgstr "" -#: src/usr/local/www/services_router_advertisements.php:294 +#: src/usr/local/www/services_router_advertisements.php:289 msgid "Advertisements" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:298 +#: src/usr/local/www/services_router_advertisements.php:293 msgid "Router mode" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:301 +#: src/usr/local/www/services_router_advertisements.php:296 msgid "" "Select the Operating Mode for the Router Advertisement (RA) Daemon. Use:<br /" "> <strong>Router Only</strong> to only advertise this router<br /> " @@ -21932,89 +21650,89 @@ msgid "" "host on the network" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:310 +#: src/usr/local/www/services_router_advertisements.php:305 msgid "Router priority" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:313 +#: src/usr/local/www/services_router_advertisements.php:308 msgid "Select the Priority for the Router Advertisement (RA) Daemon." msgstr "" -#: src/usr/local/www/services_router_advertisements.php:337 +#: src/usr/local/www/services_router_advertisements.php:332 msgid "RA Interface" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:340 +#: src/usr/local/www/services_router_advertisements.php:335 msgid "Select the Interface for the Router Advertisement (RA) Daemon." msgstr "" -#: src/usr/local/www/services_router_advertisements.php:345 +#: src/usr/local/www/services_router_advertisements.php:340 msgid "Default valid lifetime" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:349 +#: src/usr/local/www/services_router_advertisements.php:344 msgid "" "The length of time in seconds (relative to the time the packet is sent) that " "the prefix is valid for the purpose of on-link determination. <br />The " "default is 86400 seconds." msgstr "" -#: src/usr/local/www/services_router_advertisements.php:354 +#: src/usr/local/www/services_router_advertisements.php:349 msgid "Default preferred lifetime" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:357 +#: src/usr/local/www/services_router_advertisements.php:352 msgid "" "Seconds. The length of time in seconds (relative to the time the packet is " "sent) that addresses generated from the prefix via stateless address " "autoconfiguration remain preferred. <br />The default is 14400 seconds." msgstr "" -#: src/usr/local/www/services_router_advertisements.php:362 +#: src/usr/local/www/services_router_advertisements.php:357 msgid "Minimum RA interval" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:366 +#: src/usr/local/www/services_router_advertisements.php:361 msgid "" "The minimum time allowed between sending unsolicited multicast router " "advertisements in seconds." msgstr "" -#: src/usr/local/www/services_router_advertisements.php:370 +#: src/usr/local/www/services_router_advertisements.php:365 msgid "Maximum RA interval" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:374 +#: src/usr/local/www/services_router_advertisements.php:369 msgid "" "The maximum time allowed between sending unsolicited multicast router " "advertisements in seconds." msgstr "" -#: src/usr/local/www/services_router_advertisements.php:378 +#: src/usr/local/www/services_router_advertisements.php:373 msgid "Router lifetime" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:382 +#: src/usr/local/www/services_router_advertisements.php:377 msgid "The lifetime associated with the default router in seconds." msgstr "" -#: src/usr/local/www/services_router_advertisements.php:385 +#: src/usr/local/www/services_router_advertisements.php:380 msgid "RA Subnets" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:401 +#: src/usr/local/www/services_router_advertisements.php:396 msgid "Subnets" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:432 +#: src/usr/local/www/services_router_advertisements.php:427 msgid "DNS Configuration" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:437 +#: src/usr/local/www/services_router_advertisements.php:432 msgid "Server " msgstr "" -#: src/usr/local/www/services_router_advertisements.php:447 +#: src/usr/local/www/services_router_advertisements.php:442 msgid "" "The RA server can optionally provide a domain search list. Use the semicolon " "character as separator." @@ -22187,8 +21905,8 @@ msgstr "" #: src/usr/local/www/services_unbound_advanced.php:205 #: src/usr/local/www/vpn_ipsec.php:228 src/usr/local/www/vpn_ipsec_keys.php:89 #: src/usr/local/www/vpn_ipsec_mobile.php:426 -#: src/usr/local/www/vpn_ipsec_phase1.php:648 -#: src/usr/local/www/vpn_ipsec_phase2.php:493 +#: src/usr/local/www/vpn_ipsec_phase1.php:644 +#: src/usr/local/www/vpn_ipsec_phase2.php:488 #: src/usr/local/www/vpn_ipsec_settings.php:202 #: src/usr/local/www/vpn_ipsec_settings.php:235 msgid "Advanced Settings" @@ -22877,7 +22595,7 @@ msgstr "" #: src/usr/local/www/status_captiveportal_voucher_rolls.php:81 #: src/usr/local/www/status_dhcp_leases.php:143 -#: src/usr/local/www/status_dhcpv6_leases.php:192 +#: src/usr/local/www/status_dhcpv6_leases.php:189 msgid "active" msgstr "" @@ -22985,64 +22703,64 @@ msgid "pfSync nodes" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:141 -#: src/usr/local/www/status_dhcpv6_leases.php:190 +#: src/usr/local/www/status_dhcpv6_leases.php:187 msgid "online" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:142 -#: src/usr/local/www/status_dhcpv6_leases.php:191 +#: src/usr/local/www/status_dhcpv6_leases.php:188 msgid "offline" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:144 -#: src/usr/local/www/status_dhcpv6_leases.php:193 +#: src/usr/local/www/status_dhcpv6_leases.php:190 msgid "expired" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:145 -#: src/usr/local/www/status_dhcpv6_leases.php:194 +#: src/usr/local/www/status_dhcpv6_leases.php:191 msgid "reserved" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:146 -#: src/usr/local/www/status_dhcpv6_leases.php:196 +#: src/usr/local/www/status_dhcpv6_leases.php:193 msgid "dynamic" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:147 -#: src/usr/local/www/status_dhcpv6_leases.php:197 +#: src/usr/local/www/status_dhcpv6_leases.php:194 msgid "static" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:309 -#: src/usr/local/www/status_dhcpv6_leases.php:391 +#: src/usr/local/www/status_dhcpv6_leases.php:388 msgid "Pool Status" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:314 -#: src/usr/local/www/status_dhcpv6_leases.php:396 +#: src/usr/local/www/status_dhcpv6_leases.php:393 msgid "Failover Group" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:315 -#: src/usr/local/www/status_dhcpv6_leases.php:397 +#: src/usr/local/www/status_dhcpv6_leases.php:394 msgid "My State" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:316 #: src/usr/local/www/status_dhcp_leases.php:318 -#: src/usr/local/www/status_dhcpv6_leases.php:398 -#: src/usr/local/www/status_dhcpv6_leases.php:400 +#: src/usr/local/www/status_dhcpv6_leases.php:395 +#: src/usr/local/www/status_dhcpv6_leases.php:397 msgid "Since" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:317 -#: src/usr/local/www/status_dhcpv6_leases.php:399 +#: src/usr/local/www/status_dhcpv6_leases.php:396 msgid "Peer State" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:340 -#: src/usr/local/www/status_dhcpv6_leases.php:427 +#: src/usr/local/www/status_dhcpv6_leases.php:424 #: src/usr/local/www/status_ipsec.php:463 #: src/usr/local/www/status_ipsec_leases.php:32 #: src/usr/local/www/status_ipsec_leases.php:40 @@ -23052,24 +22770,24 @@ msgid "Leases" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:351 -#: src/usr/local/www/status_dhcpv6_leases.php:439 -#: src/usr/local/www/status_dhcpv6_leases.php:534 +#: src/usr/local/www/status_dhcpv6_leases.php:436 +#: src/usr/local/www/status_dhcpv6_leases.php:531 msgid "End" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:352 -#: src/usr/local/www/status_dhcpv6_leases.php:440 +#: src/usr/local/www/status_dhcpv6_leases.php:437 #: src/usr/local/www/status_gateway_groups.php:128 #: src/usr/local/www/status_gateways.php:137 #: src/usr/local/www/status_gateways.php:141 #: src/usr/local/www/status_ipsec_leases.php:53 -#: src/usr/local/www/widgets/widgets/gateways.widget.php:229 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:233 #: src/usr/local/www/widgets/widgets/wake_on_lan.widget.php:62 msgid "Online" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:353 -#: src/usr/local/www/status_dhcpv6_leases.php:441 +#: src/usr/local/www/status_dhcpv6_leases.php:438 msgid "Lease Type" msgstr "" @@ -23079,12 +22797,12 @@ msgid "n/a" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:438 -#: src/usr/local/www/status_dhcpv6_leases.php:509 +#: src/usr/local/www/status_dhcpv6_leases.php:506 msgid "Add static mapping" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:442 -#: src/usr/local/www/status_dhcpv6_leases.php:511 +#: src/usr/local/www/status_dhcpv6_leases.php:508 msgid "Add WOL mapping" msgstr "" @@ -23093,7 +22811,7 @@ msgid "Send WOL packet" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:448 -#: src/usr/local/www/status_dhcpv6_leases.php:513 +#: src/usr/local/www/status_dhcpv6_leases.php:510 msgid "Delete lease" msgstr "" @@ -23106,37 +22824,37 @@ msgid "# of leases in use" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:488 -#: src/usr/local/www/status_dhcpv6_leases.php:603 +#: src/usr/local/www/status_dhcpv6_leases.php:600 msgid "Show active and static leases only" msgstr "" #: src/usr/local/www/status_dhcp_leases.php:490 -#: src/usr/local/www/status_dhcpv6_leases.php:605 +#: src/usr/local/www/status_dhcpv6_leases.php:602 msgid "Show all configured leases" msgstr "" -#: src/usr/local/www/status_dhcpv6_leases.php:195 +#: src/usr/local/www/status_dhcpv6_leases.php:192 msgid "released" msgstr "" -#: src/usr/local/www/status_dhcpv6_leases.php:422 +#: src/usr/local/www/status_dhcpv6_leases.php:419 msgid "No leases file found. Is the DHCPv6 server active?" msgstr "" -#: src/usr/local/www/status_dhcpv6_leases.php:434 -#: src/usr/local/www/status_dhcpv6_leases.php:531 +#: src/usr/local/www/status_dhcpv6_leases.php:431 +#: src/usr/local/www/status_dhcpv6_leases.php:528 msgid "IAID" msgstr "" -#: src/usr/local/www/status_dhcpv6_leases.php:524 +#: src/usr/local/www/status_dhcpv6_leases.php:521 msgid "Delegated Prefixes" msgstr "" -#: src/usr/local/www/status_dhcpv6_leases.php:530 +#: src/usr/local/www/status_dhcpv6_leases.php:527 msgid "IPv6 Prefix" msgstr "" -#: src/usr/local/www/status_dhcpv6_leases.php:582 +#: src/usr/local/www/status_dhcpv6_leases.php:579 msgid "Routed To" msgstr "" @@ -23192,7 +22910,7 @@ msgstr "" #: src/usr/local/www/status_gateway_groups.php:119 #: src/usr/local/www/status_gateways.php:128 -#: src/usr/local/www/widgets/widgets/gateways.widget.php:217 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:221 #: src/usr/local/www/widgets/widgets/wake_on_lan.widget.php:66 #: src/usr/local/www/diag_smart.php:399 msgid "Offline" @@ -23221,7 +22939,7 @@ msgid "RTTsd" msgstr "" #: src/usr/local/www/status_gateways.php:64 -#: src/usr/local/www/widgets/widgets/gateways.widget.php:60 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:62 msgid "Loss" msgstr "" @@ -23229,15 +22947,15 @@ msgstr "" #: src/usr/local/www/status_gateways.php:106 #: src/usr/local/www/status_gateways.php:117 #: src/usr/local/www/status_gateways.php:144 -#: src/usr/local/www/widgets/widgets/gateways.widget.php:233 -#: src/usr/local/www/widgets/widgets/gateways.widget.php:241 -#: src/usr/local/www/widgets/widgets/gateways.widget.php:242 -#: src/usr/local/www/widgets/widgets/gateways.widget.php:243 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:237 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:245 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:246 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:247 msgid "Pending" msgstr "" #: src/usr/local/www/status_gateways.php:125 -#: src/usr/local/www/widgets/widgets/gateways.widget.php:214 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:218 msgid "Offline (forced)" msgstr "" @@ -23245,48 +22963,48 @@ msgstr "" msgid "Last checked" msgstr "" -#: src/usr/local/www/status_graph.php:139 +#: src/usr/local/www/status_graph.php:127 msgid "Graph Settings" msgstr "" -#: src/usr/local/www/status_graph.php:155 -#: src/usr/local/www/status_graph.php:257 +#: src/usr/local/www/status_graph.php:143 +#: src/usr/local/www/status_graph.php:461 msgid "Bandwidth In" msgstr "" -#: src/usr/local/www/status_graph.php:156 -#: src/usr/local/www/status_graph.php:258 +#: src/usr/local/www/status_graph.php:144 +#: src/usr/local/www/status_graph.php:462 msgid "Bandwidth Out" msgstr "" -#: src/usr/local/www/status_graph.php:165 -#: src/usr/local/www/system_groupmanager.php:395 +#: src/usr/local/www/status_graph.php:153 +#: src/usr/local/www/system_groupmanager.php:389 msgid "Local" msgstr "" -#: src/usr/local/www/status_graph.php:166 -#: src/usr/local/www/system_groupmanager.php:395 +#: src/usr/local/www/status_graph.php:154 +#: src/usr/local/www/system_groupmanager.php:389 msgid "Remote" msgstr "" -#: src/usr/local/www/status_graph.php:179 +#: src/usr/local/www/status_graph.php:167 msgid "FQDN" msgstr "" -#: src/usr/local/www/status_graph.php:181 +#: src/usr/local/www/status_graph.php:169 msgid "Display" msgstr "" -#: src/usr/local/www/status_graph.php:210 -#: src/usr/local/www/status_graph.php:211 +#: src/usr/local/www/status_graph.php:418 +#: src/usr/local/www/status_graph.php:419 msgid "Bits/sec" msgstr "" -#: src/usr/local/www/status_graph.php:256 +#: src/usr/local/www/status_graph.php:460 msgid "Host IP" msgstr "" -#: src/usr/local/www/status_graph.php:256 +#: src/usr/local/www/status_graph.php:460 msgid "Host Name or IP" msgstr "" @@ -23337,7 +23055,7 @@ msgid "Connect" msgstr "" #: src/usr/local/www/status_interfaces.php:101 -#: src/usr/local/www/widgets/widgets/system_information.widget.php:156 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:148 msgid "Uptime" msgstr "" @@ -23708,7 +23426,7 @@ msgstr "" #: src/usr/local/www/status_logs.php:45 #: src/usr/local/www/status_logs_common.inc:91 -#: src/usr/local/www/status_logs_settings.php:207 +#: src/usr/local/www/status_logs_settings.php:215 msgid "Captive Portal Auth" msgstr "" @@ -23734,21 +23452,21 @@ msgid "No logs to display." msgstr "" #: src/usr/local/www/status_logs_common.inc:94 -#: src/usr/local/www/status_logs_settings.php:210 +#: src/usr/local/www/status_logs_settings.php:218 #: src/usr/local/www/status_logs_vpn.php:84 src/usr/local/www/vpn_ipsec.php:219 #: src/usr/local/www/vpn_ipsec_keys.php:72 #: src/usr/local/www/vpn_ipsec_keys_edit.php:122 #: src/usr/local/www/vpn_ipsec_mobile.php:306 -#: src/usr/local/www/vpn_ipsec_phase1.php:631 -#: src/usr/local/www/vpn_ipsec_phase1.php:633 -#: src/usr/local/www/vpn_ipsec_phase2.php:408 -#: src/usr/local/www/vpn_ipsec_phase2.php:411 +#: src/usr/local/www/vpn_ipsec_phase1.php:627 +#: src/usr/local/www/vpn_ipsec_phase1.php:629 +#: src/usr/local/www/vpn_ipsec_phase2.php:403 +#: src/usr/local/www/vpn_ipsec_phase2.php:406 #: src/usr/local/www/vpn_ipsec_settings.php:202 #: src/usr/local/www/vpn_l2tp.php:173 src/usr/local/www/vpn_l2tp_users.php:29 #: src/usr/local/www/vpn_l2tp_users_edit.php:29 #: src/usr/local/www/vpn_openvpn_client.php:392 #: src/usr/local/www/vpn_openvpn_csc.php:278 -#: src/usr/local/www/vpn_openvpn_server.php:559 +#: src/usr/local/www/vpn_openvpn_server.php:563 msgid "VPN" msgstr "" @@ -23887,12 +23605,12 @@ msgid "Protocol Flags" msgstr "" #: src/usr/local/www/status_logs_common.inc:643 -#: src/usr/local/www/status_logs_settings.php:96 +#: src/usr/local/www/status_logs_settings.php:100 msgid "Number of log entries to show must be between 5 and 2000." msgstr "" #: src/usr/local/www/status_logs_common.inc:649 -#: src/usr/local/www/status_logs_settings.php:101 +#: src/usr/local/www/status_logs_settings.php:105 msgid "Log file size must be numeric and greater than or equal to 100000." msgstr "" @@ -23905,13 +23623,13 @@ msgid "Log Display Settings Saved (no backup, no sync): " msgstr "" #: src/usr/local/www/status_logs_common.inc:731 -#: src/usr/local/www/status_logs_settings.php:171 -#: src/usr/local/www/system_advanced_admin.php:560 +#: src/usr/local/www/status_logs_settings.php:179 +#: src/usr/local/www/system_advanced_admin.php:558 msgid "webConfigurator configuration has changed. Restarting webConfigurator." msgstr "" #: src/usr/local/www/status_logs_common.inc:733 -#: src/usr/local/www/status_logs_settings.php:173 +#: src/usr/local/www/status_logs_settings.php:181 msgid "WebGUI process is restarting." msgstr "" @@ -23920,12 +23638,11 @@ msgid "Manage" msgstr "" #: src/usr/local/www/status_logs_common.inc:783 -#: src/usr/local/www/diag_nanobsd.php:133 msgid " " msgstr "" #: src/usr/local/www/status_logs_common.inc:792 -#: src/usr/local/www/status_logs_settings.php:223 +#: src/usr/local/www/status_logs_settings.php:231 msgid "Forward/Reverse Display" msgstr "" @@ -23943,7 +23660,7 @@ msgstr "" #: src/usr/local/www/status_logs_common.inc:821 #: src/usr/local/www/status_logs_common.inc:826 -#: src/usr/local/www/status_logs_settings.php:230 +#: src/usr/local/www/status_logs_settings.php:238 msgid "GUI Log Entries" msgstr "" @@ -23955,7 +23672,7 @@ msgstr "" #: src/usr/local/www/status_logs_common.inc:835 #: src/usr/local/www/status_logs_common.inc:840 -#: src/usr/local/www/status_logs_settings.php:238 +#: src/usr/local/www/status_logs_settings.php:246 msgid "Log file size (Bytes)" msgstr "" @@ -23981,7 +23698,7 @@ msgid "" msgstr "" #: src/usr/local/www/status_logs_common.inc:884 -#: src/usr/local/www/status_logs_settings.php:274 +#: src/usr/local/www/status_logs_settings.php:282 msgid "Web Server Log" msgstr "" @@ -23992,7 +23709,7 @@ msgid "" msgstr "" #: src/usr/local/www/status_logs_common.inc:895 -#: src/usr/local/www/status_logs_settings.php:246 +#: src/usr/local/www/status_logs_settings.php:254 msgid "Log firewall default blocks" msgstr "" @@ -24010,27 +23727,27 @@ msgid "" msgstr "" #: src/usr/local/www/status_logs_common.inc:926 -#: src/usr/local/www/status_logs_settings.php:298 +#: src/usr/local/www/status_logs_settings.php:306 msgid "Dont load descriptions" msgstr "" #: src/usr/local/www/status_logs_common.inc:927 -#: src/usr/local/www/status_logs_settings.php:299 +#: src/usr/local/www/status_logs_settings.php:307 msgid "Display as column" msgstr "" #: src/usr/local/www/status_logs_common.inc:928 -#: src/usr/local/www/status_logs_settings.php:300 +#: src/usr/local/www/status_logs_settings.php:308 msgid "Display as second row" msgstr "" #: src/usr/local/www/status_logs_common.inc:923 -#: src/usr/local/www/status_logs_settings.php:295 +#: src/usr/local/www/status_logs_settings.php:303 msgid "Where to show rule descriptions" msgstr "" #: src/usr/local/www/status_logs_common.inc:930 -#: src/usr/local/www/status_logs_settings.php:302 +#: src/usr/local/www/status_logs_settings.php:310 msgid "" "Show the applied rule description below or in the firewall log rows.<br /" ">Displaying rule descriptions for all lines in the log might affect " @@ -24120,34 +23837,34 @@ msgstr "" msgid "Reverse Resolve with DNS" msgstr "" -#: src/usr/local/www/status_logs_settings.php:77 -#: src/usr/local/www/status_logs_settings.php:314 +#: src/usr/local/www/status_logs_settings.php:81 +#: src/usr/local/www/status_logs_settings.php:322 msgid "Reset Log Files" msgstr "" -#: src/usr/local/www/status_logs_settings.php:79 +#: src/usr/local/www/status_logs_settings.php:83 msgid "The log files have been reset." msgstr "" -#: src/usr/local/www/status_logs_settings.php:86 +#: src/usr/local/www/status_logs_settings.php:90 msgid "" "A valid IP address/hostname or IP/hostname:port must be specified for remote " "syslog server #1." msgstr "" -#: src/usr/local/www/status_logs_settings.php:89 +#: src/usr/local/www/status_logs_settings.php:93 msgid "" "A valid IP address/hostname or IP/hostname:port must be specified for remote " "syslog server #2." msgstr "" -#: src/usr/local/www/status_logs_settings.php:92 +#: src/usr/local/www/status_logs_settings.php:96 msgid "" "A valid IP address/hostname or IP/hostname:port must be specified for remote " "syslog server #3." msgstr "" -#: src/usr/local/www/status_logs_settings.php:183 +#: src/usr/local/www/status_logs_settings.php:191 msgid "" "Logs are held in constant-size circular log files. This field controls how " "large each log file is, and thus how many entries may exist inside the log. " @@ -24155,7 +23872,7 @@ msgid "" "such log files." msgstr "" -#: src/usr/local/www/status_logs_settings.php:185 +#: src/usr/local/www/status_logs_settings.php:193 msgid "" "NOTE: Log sizes are changed the next time a log file is cleared or deleted. " "To immediately increase the size of the log files, first save the options to " @@ -24163,97 +23880,101 @@ msgid "" "farther down this page. " msgstr "" -#: src/usr/local/www/status_logs_settings.php:186 +#: src/usr/local/www/status_logs_settings.php:194 msgid "" "Be aware that increasing this value increases every log file size, so disk " "usage will increase significantly." msgstr "" -#: src/usr/local/www/status_logs_settings.php:187 +#: src/usr/local/www/status_logs_settings.php:195 msgid "Disk space currently used by log files is: " msgstr "" -#: src/usr/local/www/status_logs_settings.php:188 +#: src/usr/local/www/status_logs_settings.php:196 msgid " Remaining disk space for log files: " msgstr "" -#: src/usr/local/www/status_logs_settings.php:190 +#: src/usr/local/www/status_logs_settings.php:198 msgid "" "This option will allow the logging daemon to bind to a single IP address, " "rather than all IP addresses." msgstr "" -#: src/usr/local/www/status_logs_settings.php:191 +#: src/usr/local/www/status_logs_settings.php:199 msgid "" "If a single IP is picked, remote syslog servers must all be of that IP type. " "To mix IPv4 and IPv6 remote syslog servers, bind to all interfaces." msgstr "" -#: src/usr/local/www/status_logs_settings.php:193 +#: src/usr/local/www/status_logs_settings.php:201 msgid "" "NOTE: If an IP address cannot be located on the chosen interface, the daemon " "will bind to all addresses." msgstr "" -#: src/usr/local/www/status_logs_settings.php:234 +#: src/usr/local/www/status_logs_settings.php:227 +msgid "General Logging Options" +msgstr "" + +#: src/usr/local/www/status_logs_settings.php:242 msgid "" "This is only the number of log entries displayed in the GUI. It does not " "affect how many entries are contained in the actual log files." msgstr "" -#: src/usr/local/www/status_logs_settings.php:249 +#: src/usr/local/www/status_logs_settings.php:257 msgid "" "Log packets that are <strong>blocked</strong> by the implicit default block " "rule. - Per-rule logging options are still respected." msgstr "" -#: src/usr/local/www/status_logs_settings.php:256 +#: src/usr/local/www/status_logs_settings.php:264 msgid "" "Log packets that are <strong>allowed</strong> by the implicit default pass " "rule. - Per-rule logging options are still respected. " msgstr "" -#: src/usr/local/www/status_logs_settings.php:277 +#: src/usr/local/www/status_logs_settings.php:285 msgid "" "If this is checked, errors from the web server process for the GUI or " "Captive Portal will appear in the main system log." msgstr "" -#: src/usr/local/www/status_logs_settings.php:281 +#: src/usr/local/www/status_logs_settings.php:289 msgid "Raw Logs" msgstr "" -#: src/usr/local/www/status_logs_settings.php:284 +#: src/usr/local/www/status_logs_settings.php:292 msgid "" "If this is checked, filter logs are shown as generated by the packet filter, " "without any formatting. This will reveal more detailed information, but it " "is more difficult to read." msgstr "" -#: src/usr/local/www/status_logs_settings.php:307 +#: src/usr/local/www/status_logs_settings.php:315 msgid "Local Logging" msgstr "" -#: src/usr/local/www/status_logs_settings.php:317 +#: src/usr/local/www/status_logs_settings.php:325 msgid "" "Clears all local log files and reinitializes them as empty logs. This also " "restarts the DHCP daemon. Use the Save button first if any setting changes " "have been made." msgstr "" -#: src/usr/local/www/status_logs_settings.php:320 +#: src/usr/local/www/status_logs_settings.php:328 msgid "Remote Logging Options" msgstr "" -#: src/usr/local/www/status_logs_settings.php:325 +#: src/usr/local/www/status_logs_settings.php:333 msgid "Enable Remote Logging" msgstr "" -#: src/usr/local/www/status_logs_settings.php:334 +#: src/usr/local/www/status_logs_settings.php:342 msgid "Default (any)" msgstr "" -#: src/usr/local/www/status_logs_settings.php:342 +#: src/usr/local/www/status_logs_settings.php:350 msgid "" "This option is only used when a non-default address is chosen as the source " "above. This option only expresses a preference; If an IP address of the " @@ -24261,34 +23982,34 @@ msgid "" "tried." msgstr "" -#: src/usr/local/www/status_logs_settings.php:346 +#: src/usr/local/www/status_logs_settings.php:354 msgid "Remote log servers" msgstr "" -#: src/usr/local/www/status_logs_settings.php:351 +#: src/usr/local/www/status_logs_settings.php:359 #: src/usr/local/www/vpn_openvpn_csc.php:454 #: src/usr/local/www/vpn_openvpn_csc.php:495 #: src/usr/local/www/vpn_openvpn_csc.php:545 msgid "Server 1" msgstr "" -#: src/usr/local/www/status_logs_settings.php:359 +#: src/usr/local/www/status_logs_settings.php:367 #: src/usr/local/www/vpn_openvpn_csc.php:461 #: src/usr/local/www/vpn_openvpn_csc.php:502 #: src/usr/local/www/vpn_openvpn_csc.php:552 msgid "Server 2" msgstr "" -#: src/usr/local/www/status_logs_settings.php:367 +#: src/usr/local/www/status_logs_settings.php:375 #: src/usr/local/www/vpn_openvpn_csc.php:468 msgid "Server 3" msgstr "" -#: src/usr/local/www/status_logs_settings.php:375 +#: src/usr/local/www/status_logs_settings.php:383 msgid "Remote Syslog Contents" msgstr "" -#: src/usr/local/www/status_logs_settings.php:441 +#: src/usr/local/www/status_logs_settings.php:477 msgid "" "Syslog sends UDP datagrams to port 514 on the specified remote syslog " "server, unless another port is specified. Be sure to set syslogd on the " @@ -24381,7 +24102,7 @@ msgid "Reach" msgstr "" #: src/usr/local/www/status_ntpd.php:274 -#: src/usr/local/www/vpn_ipsec_phase1.php:897 +#: src/usr/local/www/vpn_ipsec_phase1.php:893 msgid "Delay" msgstr "" @@ -24410,12 +24131,12 @@ msgid "Clock Altitude" msgstr "" #: src/usr/local/www/status_ntpd.php:315 -#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:175 +#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:179 msgid "Satellites" msgstr "" #: src/usr/local/www/status_openvpn.php:81 -#: src/usr/local/www/widgets/widgets/openvpn.widget.php:61 +#: src/usr/local/www/widgets/widgets/openvpn.widget.php:254 msgid "An error occurred." msgstr "" @@ -24424,99 +24145,99 @@ msgid "Client Connections" msgstr "" #: src/usr/local/www/status_openvpn.php:103 -#: src/usr/local/www/status_openvpn.php:174 -#: src/usr/local/www/system_camanager.php:584 -#: src/usr/local/www/system_certmanager.php:702 -#: src/usr/local/www/system_certmanager.php:821 +#: src/usr/local/www/status_openvpn.php:176 +#: src/usr/local/www/system_camanager.php:597 +#: src/usr/local/www/system_certmanager.php:715 +#: src/usr/local/www/system_certmanager.php:842 #: src/usr/local/www/vpn_openvpn_csc.php:640 msgid "Common Name" msgstr "" #: src/usr/local/www/status_openvpn.php:104 -#: src/usr/local/www/status_openvpn.php:175 +#: src/usr/local/www/status_openvpn.php:177 msgid "Real Address" msgstr "" #: src/usr/local/www/status_openvpn.php:105 -#: src/usr/local/www/status_openvpn.php:225 -#: src/usr/local/www/status_openvpn.php:281 +#: src/usr/local/www/status_openvpn.php:227 +#: src/usr/local/www/status_openvpn.php:283 msgid "Virtual Address" msgstr "" #: src/usr/local/www/status_openvpn.php:106 -#: src/usr/local/www/status_openvpn.php:224 -#: src/usr/local/www/status_openvpn.php:280 +#: src/usr/local/www/status_openvpn.php:226 +#: src/usr/local/www/status_openvpn.php:282 msgid "Connected Since" msgstr "" #: src/usr/local/www/status_openvpn.php:107 -#: src/usr/local/www/status_openvpn.php:227 -#: src/usr/local/www/status_openvpn.php:283 +#: src/usr/local/www/status_openvpn.php:229 +#: src/usr/local/www/status_openvpn.php:285 msgid "Bytes Sent" msgstr "" #: src/usr/local/www/status_openvpn.php:108 -#: src/usr/local/www/status_openvpn.php:228 -#: src/usr/local/www/status_openvpn.php:284 +#: src/usr/local/www/status_openvpn.php:230 +#: src/usr/local/www/status_openvpn.php:286 msgid "Bytes Received" msgstr "" #: src/usr/local/www/status_openvpn.php:128 -#: src/usr/local/www/widgets/widgets/openvpn.widget.php:104 +#: src/usr/local/www/widgets/widgets/openvpn.widget.php:90 #, php-format msgid "Kill client connection from %s" msgstr "" -#: src/usr/local/www/status_openvpn.php:161 #: src/usr/local/www/status_openvpn.php:163 +#: src/usr/local/www/status_openvpn.php:165 msgid "Show Routing Table" msgstr "" -#: src/usr/local/www/status_openvpn.php:165 +#: src/usr/local/www/status_openvpn.php:167 msgid "Display OpenVPN's internal routing table for this server." msgstr "" -#: src/usr/local/www/status_openvpn.php:169 +#: src/usr/local/www/status_openvpn.php:171 msgid "Routing Table" msgstr "" -#: src/usr/local/www/status_openvpn.php:176 +#: src/usr/local/www/status_openvpn.php:178 msgid "Target Network" msgstr "" -#: src/usr/local/www/status_openvpn.php:177 +#: src/usr/local/www/status_openvpn.php:179 msgid "Last Used" msgstr "" -#: src/usr/local/www/status_openvpn.php:197 +#: src/usr/local/www/status_openvpn.php:199 msgid "" "An IP address followed by C indicates a host currently connected through the " "VPN." msgstr "" -#: src/usr/local/www/status_openvpn.php:217 -#: src/usr/local/www/widgets/widgets/openvpn.widget.php:131 +#: src/usr/local/www/status_openvpn.php:219 +#: src/usr/local/www/widgets/widgets/openvpn.widget.php:119 msgid "Peer to Peer Server Instance Statistics" msgstr "" -#: src/usr/local/www/status_openvpn.php:226 -#: src/usr/local/www/status_openvpn.php:282 +#: src/usr/local/www/status_openvpn.php:228 +#: src/usr/local/www/status_openvpn.php:284 msgid "Remote Host" msgstr "" -#: src/usr/local/www/status_openvpn.php:273 -#: src/usr/local/www/widgets/widgets/openvpn.widget.php:187 +#: src/usr/local/www/status_openvpn.php:275 +#: src/usr/local/www/widgets/widgets/openvpn.widget.php:177 msgid "Client Instance Statistics" msgstr "" -#: src/usr/local/www/status_openvpn.php:325 +#: src/usr/local/www/status_openvpn.php:327 msgid "" "If there are custom options that override the management features of OpenVPN " "on a client or server, they will cause that OpenVPN instance to not work " "correctly with this status page." msgstr "" -#: src/usr/local/www/status_openvpn.php:329 +#: src/usr/local/www/status_openvpn.php:331 msgid "No OpenVPN instances defined." msgstr "" @@ -24579,7 +24300,7 @@ msgstr "" msgid "Loading" msgstr "" -#: src/usr/local/www/status_services.php:154 +#: src/usr/local/www/status_services.php:144 msgid "No services found." msgstr "" @@ -24625,72 +24346,72 @@ msgid "" "time." msgstr "" -#: src/usr/local/www/system.php:150 +#: src/usr/local/www/system.php:155 msgid "The domain may only contain the characters a-z, 0-9, '-' and '.'." msgstr "" -#: src/usr/local/www/system.php:161 +#: src/usr/local/www/system.php:166 #, php-format msgid "A valid IP address must be specified for DNS server %s." msgstr "" -#: src/usr/local/www/system.php:167 +#: src/usr/local/www/system.php:172 #, php-format msgid "" "The IPv6 gateway \"%1$s\" can not be specified for IPv4 DNS server \"%2$s\"." msgstr "" -#: src/usr/local/www/system.php:170 +#: src/usr/local/www/system.php:175 #, php-format msgid "" "The IPv4 gateway \"%1$s\" can not be specified for IPv6 DNS server \"%2$s\"." msgstr "" -#: src/usr/local/www/system.php:181 +#: src/usr/local/www/system.php:186 msgid "" "Each configured DNS server must have a unique IP address. Remove the " "duplicated IP." msgstr "" -#: src/usr/local/www/system.php:192 +#: src/usr/local/www/system.php:197 #, php-format msgid "" "A gateway can not be assigned to DNS '%s' server which is on a directly " "connected network." msgstr "" -#: src/usr/local/www/system.php:204 +#: src/usr/local/www/system.php:209 msgid "" "A NTP Time Server name may only contain the characters a-z, 0-9, '-' and '.'." msgstr "" -#: src/usr/local/www/system.php:358 +#: src/usr/local/www/system.php:363 msgid "Name of the firewall host, without domain part" msgstr "" -#: src/usr/local/www/system.php:365 +#: src/usr/local/www/system.php:371 msgid "" "Do not use 'local' as a domain name. It will cause local hosts running mDNS " "(avahi, bonjour, etc.) to be unable to resolve local hosts not running mDNS." msgstr "" -#: src/usr/local/www/system.php:370 +#: src/usr/local/www/system.php:377 msgid "DNS Server Settings" msgstr "" -#: src/usr/local/www/system.php:376 +#: src/usr/local/www/system.php:383 msgid "DNS Server " msgstr "" -#: src/usr/local/www/system.php:380 +#: src/usr/local/www/system.php:387 msgid "DNS Server" msgstr "" -#: src/usr/local/www/system.php:423 +#: src/usr/local/www/system.php:430 msgid "DNS Server Override" msgstr "" -#: src/usr/local/www/system.php:426 +#: src/usr/local/www/system.php:433 #, php-format msgid "" "If this option is set, %s will use DNS servers assigned by a DHCP/PPP server " @@ -24698,11 +24419,11 @@ msgid "" "will not be assigned to DHCP and PPTP VPN clients." msgstr "" -#: src/usr/local/www/system.php:433 +#: src/usr/local/www/system.php:440 msgid "Disable DNS Forwarder" msgstr "" -#: src/usr/local/www/system.php:436 +#: src/usr/local/www/system.php:443 msgid "" "By default localhost (127.0.0.1) will be used as the first DNS server where " "the DNS Forwarder or DNS Resolver is enabled and set to listen on Localhost, " @@ -24710,47 +24431,58 @@ msgid "" "box omits localhost from the list of DNS servers." msgstr "" -#: src/usr/local/www/system.php:443 +#: src/usr/local/www/system.php:450 msgid "Localization" msgstr "" -#: src/usr/local/www/system.php:446 +#: src/usr/local/www/system.php:454 msgid "Timezone" msgstr "" -#: src/usr/local/www/system.php:449 +#: src/usr/local/www/system.php:457 msgid "" "Select the timezone or location within the timezone to be used by this " "system." msgstr "" -#: src/usr/local/www/system.php:452 +#: src/usr/local/www/system.php:461 msgid "Timeservers" msgstr "" -#: src/usr/local/www/system.php:455 +#: src/usr/local/www/system.php:464 msgid "" "Use a space to separate multiple hosts (only one required). Remember to set " "up at least one DNS server if a host name is entered here!" msgstr "" -#: src/usr/local/www/system.php:459 +#: src/usr/local/www/system.php:469 msgid "Language" msgstr "" -#: src/usr/local/www/system.php:462 +#: src/usr/local/www/system.php:472 msgid "Choose a language for the webConfigurator" msgstr "" -#: src/usr/local/www/system.php:466 -#: src/usr/local/www/system_advanced_admin.php:308 -#: src/usr/local/www/system_certmanager.php:997 +#: src/usr/local/www/system.php:476 +#: src/usr/local/www/system_advanced_admin.php:306 +#: src/usr/local/www/system_certmanager.php:1018 msgid "webConfigurator" msgstr "" -#: src/usr/local/www/system.php:484 +#: src/usr/local/www/system.php:492 +msgid "Dashboard update period" +msgstr "" + +#: src/usr/local/www/system.php:496 +msgid "" +"Time in seconds between dashboard widget updates. Small values cause more " +"frequent updates but increase the load on the web server. Minimum is 5 " +"seconds, maximum 600 seconds" +msgstr "" + +#: src/usr/local/www/system.php:504 #: src/usr/local/www/system_user_settings.php:152 -#: src/usr/local/www/system_usermanager.php:934 +#: src/usr/local/www/system_usermanager.php:928 #, php-format msgid "%sUser-created themes are unsupported, use at your own risk." msgstr "" @@ -24777,100 +24509,100 @@ msgstr "" msgid "One moment...redirecting to %s in 20 seconds." msgstr "" -#: src/usr/local/www/system_advanced_admin.php:285 -#: src/usr/local/www/system_advanced_admin.php:297 +#: src/usr/local/www/system_advanced_admin.php:283 +#: src/usr/local/www/system_advanced_admin.php:295 #: src/usr/local/www/system_advanced_firewall.php:382 -#: src/usr/local/www/system_advanced_misc.php:300 +#: src/usr/local/www/system_advanced_misc.php:299 #: src/usr/local/www/system_advanced_network.php:151 -#: src/usr/local/www/system_advanced_notifications.php:193 +#: src/usr/local/www/system_advanced_notifications.php:200 #: src/usr/local/www/system_advanced_sysctl.php:141 msgid "Admin Access" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:298 +#: src/usr/local/www/system_advanced_admin.php:296 #: src/usr/local/www/system_advanced_firewall.php:371 #: src/usr/local/www/system_advanced_firewall.php:383 -#: src/usr/local/www/system_advanced_misc.php:301 +#: src/usr/local/www/system_advanced_misc.php:300 #: src/usr/local/www/system_advanced_network.php:152 -#: src/usr/local/www/system_advanced_notifications.php:194 +#: src/usr/local/www/system_advanced_notifications.php:201 #: src/usr/local/www/system_advanced_sysctl.php:142 msgid "Firewall & NAT" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:300 +#: src/usr/local/www/system_advanced_admin.php:298 #: src/usr/local/www/system_advanced_firewall.php:385 -#: src/usr/local/www/system_advanced_misc.php:287 -#: src/usr/local/www/system_advanced_misc.php:303 +#: src/usr/local/www/system_advanced_misc.php:286 +#: src/usr/local/www/system_advanced_misc.php:302 #: src/usr/local/www/system_advanced_network.php:154 -#: src/usr/local/www/system_advanced_notifications.php:196 +#: src/usr/local/www/system_advanced_notifications.php:203 #: src/usr/local/www/system_advanced_sysctl.php:144 #: src/usr/local/www/widgets/widgets/thermal_sensors.widget.php:246 msgid "Miscellaneous" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:301 +#: src/usr/local/www/system_advanced_admin.php:299 #: src/usr/local/www/system_advanced_firewall.php:386 -#: src/usr/local/www/system_advanced_misc.php:304 +#: src/usr/local/www/system_advanced_misc.php:303 #: src/usr/local/www/system_advanced_network.php:155 -#: src/usr/local/www/system_advanced_notifications.php:197 +#: src/usr/local/www/system_advanced_notifications.php:204 #: src/usr/local/www/system_advanced_sysctl.php:121 #: src/usr/local/www/system_advanced_sysctl.php:145 #: src/usr/local/www/system_advanced_sysctl.php:152 msgid "System Tunables" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:302 +#: src/usr/local/www/system_advanced_admin.php:300 #: src/usr/local/www/system_advanced_firewall.php:387 -#: src/usr/local/www/system_advanced_misc.php:305 +#: src/usr/local/www/system_advanced_misc.php:304 #: src/usr/local/www/system_advanced_network.php:156 -#: src/usr/local/www/system_advanced_notifications.php:181 -#: src/usr/local/www/system_advanced_notifications.php:198 +#: src/usr/local/www/system_advanced_notifications.php:188 +#: src/usr/local/www/system_advanced_notifications.php:205 #: src/usr/local/www/system_advanced_sysctl.php:146 msgid "Notifications" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:328 +#: src/usr/local/www/system_advanced_admin.php:326 msgid "Create or Import" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:346 +#: src/usr/local/www/system_advanced_admin.php:344 msgid "TCP port" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:350 +#: src/usr/local/www/system_advanced_admin.php:348 msgid "" "Enter a custom port number for the webConfigurator above to override the " "default (80 for HTTP, 443 for HTTPS). Changes will take effect immediately " "after save." msgstr "" -#: src/usr/local/www/system_advanced_admin.php:356 +#: src/usr/local/www/system_advanced_admin.php:354 msgid "Max Processes" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:359 +#: src/usr/local/www/system_advanced_admin.php:357 msgid "" "Enter the number of webConfigurator processes to run. This defaults to 2. " "Increasing this will allow more users/browsers to access the GUI " "concurrently." msgstr "" -#: src/usr/local/www/system_advanced_admin.php:365 +#: src/usr/local/www/system_advanced_admin.php:363 msgid "WebGUI redirect" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:368 +#: src/usr/local/www/system_advanced_admin.php:366 msgid "" "When this is unchecked, access to the webConfigurator is always permitted " "even on port 80, regardless of the listening port configured. Check this box " "to disable this automatically added redirect rule." msgstr "" -#: src/usr/local/www/system_advanced_admin.php:374 +#: src/usr/local/www/system_advanced_admin.php:372 msgid "WebGUI Login Autocomplete" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:377 +#: src/usr/local/www/system_advanced_admin.php:375 msgid "" "When this is checked, login credentials for the webConfigurator may be saved " "by the browser. While convenient, some security standards require this to be " @@ -24879,21 +24611,21 @@ msgid "" "this option)." msgstr "" -#: src/usr/local/www/system_advanced_admin.php:385 +#: src/usr/local/www/system_advanced_admin.php:383 msgid "WebGUI login messages" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:388 +#: src/usr/local/www/system_advanced_admin.php:386 msgid "" "When this is checked, successful logins to the webConfigurator will not be " "logged." msgstr "" -#: src/usr/local/www/system_advanced_admin.php:399 +#: src/usr/local/www/system_advanced_admin.php:397 msgid "Anti-lockout" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:402 +#: src/usr/local/www/system_advanced_admin.php:400 #, php-format msgid "" "When this is unchecked, access to the webConfigurator on the %s interface is " @@ -24905,11 +24637,11 @@ msgid "" "menu resets this setting as well.</em>" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:412 +#: src/usr/local/www/system_advanced_admin.php:410 msgid "DNS Rebind Check" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:415 +#: src/usr/local/www/system_advanced_admin.php:413 msgid "" "When this is unchecked, the system is protected against <a href=\"http://en." "wikipedia.org/wiki/DNS_rebinding\">DNS Rebinding attacks</a>. This blocks " @@ -24918,22 +24650,22 @@ msgid "" "resolution in the environment." msgstr "" -#: src/usr/local/www/system_advanced_admin.php:423 +#: src/usr/local/www/system_advanced_admin.php:421 msgid "Alternate Hostnames" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:426 +#: src/usr/local/www/system_advanced_admin.php:424 msgid "" "Alternate Hostnames for DNS Rebinding and HTTP_REFERER Checks. Specify " "alternate hostnames by which the router may be queried, to bypass the DNS " "Rebinding Attack checks. Separate hostnames with spaces." msgstr "" -#: src/usr/local/www/system_advanced_admin.php:432 +#: src/usr/local/www/system_advanced_admin.php:430 msgid "Browser HTTP_REFERER enforcement" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:435 +#: src/usr/local/www/system_advanced_admin.php:433 msgid "" "When this is unchecked, access to the webConfigurator is protected against " "HTTP_REFERER redirection attempts. Check this box to disable this protection " @@ -24943,43 +24675,43 @@ msgid "" "wikipedia.org/wiki/HTTP_referrer\">Wikipedia</a>." msgstr "" -#: src/usr/local/www/system_advanced_admin.php:445 +#: src/usr/local/www/system_advanced_admin.php:443 msgid "Secure Shell" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:449 +#: src/usr/local/www/system_advanced_admin.php:447 msgid "Secure Shell Server" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:456 -#: src/usr/local/www/vpn_ipsec_phase1.php:705 +#: src/usr/local/www/system_advanced_admin.php:454 +#: src/usr/local/www/vpn_ipsec_phase1.php:701 msgid "Authentication Method" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:459 +#: src/usr/local/www/system_advanced_admin.php:457 msgid "" "When enabled, authorized keys need to be configured for each <a href=" "\"system_usermanager.php\">user</a> that has been granted secure shell " "access." msgstr "" -#: src/usr/local/www/system_advanced_admin.php:465 +#: src/usr/local/www/system_advanced_admin.php:463 msgid "SSH port" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:469 +#: src/usr/local/www/system_advanced_admin.php:467 msgid "Note: Leave this blank for the default of 22." msgstr "" -#: src/usr/local/www/system_advanced_admin.php:473 +#: src/usr/local/www/system_advanced_admin.php:471 msgid "Serial Communications" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:478 +#: src/usr/local/www/system_advanced_admin.php:476 msgid "Serial Terminal" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:481 +#: src/usr/local/www/system_advanced_admin.php:479 msgid "" "Note:\tThis will redirect the console output and messages to the serial " "port. The console menu can still be accessed from the internal video card/" @@ -24987,46 +24719,46 @@ msgid "" "serial console." msgstr "" -#: src/usr/local/www/system_advanced_admin.php:489 +#: src/usr/local/www/system_advanced_admin.php:487 msgid "Serial Speed" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:492 +#: src/usr/local/www/system_advanced_admin.php:490 msgid "Allows selection of different speeds for the serial console port." msgstr "" -#: src/usr/local/www/system_advanced_admin.php:500 +#: src/usr/local/www/system_advanced_admin.php:498 msgid "Serial Console" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:501 +#: src/usr/local/www/system_advanced_admin.php:499 msgid "VGA Console" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:497 +#: src/usr/local/www/system_advanced_admin.php:495 msgid "Primary Console" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:503 +#: src/usr/local/www/system_advanced_admin.php:501 msgid "" "Select the preferred console if multiple consoles are present. The preferred " "console will show pfSense boot script output. All consoles display OS boot " "messages, console messages, and the console menu." msgstr "" -#: src/usr/local/www/system_advanced_admin.php:509 +#: src/usr/local/www/system_advanced_admin.php:507 msgid "Console Options" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:513 +#: src/usr/local/www/system_advanced_admin.php:511 msgid "Console menu" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:549 +#: src/usr/local/www/system_advanced_admin.php:547 msgid "secure shell configuration has changed. Stopping sshd." msgstr "" -#: src/usr/local/www/system_advanced_admin.php:552 +#: src/usr/local/www/system_advanced_admin.php:550 msgid "secure shell configuration has changed. Restarting sshd." msgstr "" @@ -25155,7 +24887,7 @@ msgid "High-latency" msgstr "" #: src/usr/local/www/system_advanced_firewall.php:422 -#: src/usr/local/www/vpn_ipsec_phase1.php:714 +#: src/usr/local/www/vpn_ipsec_phase1.php:710 msgid "Aggressive" msgstr "" @@ -25463,104 +25195,100 @@ msgid "" msgstr "" #: src/usr/local/www/system_advanced_misc.php:76 -msgid "AMD Geode LX Security Block" -msgstr "" - -#: src/usr/local/www/system_advanced_misc.php:77 msgid "AES-NI CPU-based Acceleration" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:80 +#: src/usr/local/www/system_advanced_misc.php:79 msgid "Intel Core* CPU on-die thermal sensor" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:81 +#: src/usr/local/www/system_advanced_misc.php:80 msgid "AMD K8, K10 and K11 CPU on-die thermal sensor" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:91 +#: src/usr/local/www/system_advanced_misc.php:90 msgid "Please select a valid Cryptographic Accelerator." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:95 +#: src/usr/local/www/system_advanced_misc.php:94 msgid "Please select a valid Thermal Hardware Sensor." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:99 +#: src/usr/local/www/system_advanced_misc.php:98 msgid "/tmp Size must be numeric and should not be less than 40MiB." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:103 +#: src/usr/local/www/system_advanced_misc.php:102 msgid "/var Size must be numeric and should not be less than 60MiB." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:107 +#: src/usr/local/www/system_advanced_misc.php:106 msgid "Proxy port must be a valid port number, 1-65535." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:111 +#: src/usr/local/www/system_advanced_misc.php:110 msgid "Proxy URL must be a valid IP address or FQDN." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:115 +#: src/usr/local/www/system_advanced_misc.php:114 msgid "The proxy username contains invalid characters." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:119 +#: src/usr/local/www/system_advanced_misc.php:118 msgid "Proxy password and confirmation must match." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:309 +#: src/usr/local/www/system_advanced_misc.php:308 msgid "Proxy Support" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:313 +#: src/usr/local/www/system_advanced_misc.php:312 msgid "Proxy URL" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:316 +#: src/usr/local/www/system_advanced_misc.php:315 msgid "" "Hostname or IP address of proxy server this system will use for its outbound " "Internet access." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:321 +#: src/usr/local/www/system_advanced_misc.php:320 msgid "Proxy Port" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:324 +#: src/usr/local/www/system_advanced_misc.php:323 msgid "Port where proxy server is listening." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:328 +#: src/usr/local/www/system_advanced_misc.php:327 msgid "Proxy Username" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:331 +#: src/usr/local/www/system_advanced_misc.php:330 msgid "" "Username for authentication to proxy server. Optional, leave blank to not " "use authentication." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:336 +#: src/usr/local/www/system_advanced_misc.php:335 msgid "Proxy Password" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:339 +#: src/usr/local/www/system_advanced_misc.php:338 msgid "Password for authentication to proxy server." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:342 -#: src/usr/local/www/system_advanced_misc.php:344 +#: src/usr/local/www/system_advanced_misc.php:341 +#: src/usr/local/www/system_advanced_misc.php:343 msgid "Load Balancing" msgstr "" +#: src/usr/local/www/system_advanced_misc.php:347 #: src/usr/local/www/system_advanced_misc.php:348 -#: src/usr/local/www/system_advanced_misc.php:349 msgid "Use sticky connections" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:351 +#: src/usr/local/www/system_advanced_misc.php:350 msgid "" "Successive connections will be redirected to the servers in a round-robin " "manner with connections from the same source being sent to the same web " @@ -25571,11 +25299,11 @@ msgid "" "Load Balancing service." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:361 +#: src/usr/local/www/system_advanced_misc.php:360 msgid "Source tracking timeout" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:365 +#: src/usr/local/www/system_advanced_misc.php:364 msgid "" "Set the source tracking timeout for sticky connections. By default this is " "0, so source tracking is removed as soon as the state expires. Setting this " @@ -25583,26 +25311,26 @@ msgid "" "longer periods of time." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:374 +#: src/usr/local/www/system_advanced_misc.php:373 msgid "Default gateway switching" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:377 +#: src/usr/local/www/system_advanced_misc.php:376 msgid "" "If the default gateway goes down, switch the default gateway to another " "available one. This is not enabled by default, as it's unnecessary in most " "all scenarios, which instead use gateway groups." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:382 +#: src/usr/local/www/system_advanced_misc.php:381 msgid "Power Savings" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:386 +#: src/usr/local/www/system_advanced_misc.php:385 msgid "PowerD" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:389 +#: src/usr/local/www/system_advanced_misc.php:388 msgid "" "The powerd utility monitors the system state and sets various power control " "options accordingly. It offers four modes (maximum, minimum, adaptive and " @@ -25619,43 +25347,43 @@ msgid "" "and keeps twice lower CPU load." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:404 +#: src/usr/local/www/system_advanced_misc.php:403 msgid "Hiadaptive" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:405 +#: src/usr/local/www/system_advanced_misc.php:404 msgid "Adaptive" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:406 +#: src/usr/local/www/system_advanced_misc.php:405 msgid "Minimum" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:407 +#: src/usr/local/www/system_advanced_misc.php:406 msgid "Maximum" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:412 +#: src/usr/local/www/system_advanced_misc.php:411 msgid "AC Power" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:419 +#: src/usr/local/www/system_advanced_misc.php:418 msgid "Battery Power" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:426 +#: src/usr/local/www/system_advanced_misc.php:425 msgid "Unknown Power" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:432 +#: src/usr/local/www/system_advanced_misc.php:431 msgid "Cryptographic & Thermal Hardware" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:436 +#: src/usr/local/www/system_advanced_misc.php:435 msgid "Cryptographic Hardware" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:439 +#: src/usr/local/www/system_advanced_misc.php:438 msgid "" "A cryptographic accelerator module will use hardware support to speed up " "some cryptographic functions on systems which have the chip. Do not enable " @@ -25668,13 +25396,13 @@ msgid "" "to \"none\" and then reboot." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:451 +#: src/usr/local/www/system_advanced_misc.php:450 #: src/usr/local/www/widgets/include/thermal_sensors.inc:24 #: src/usr/local/www/widgets/widgets/thermal_sensors.widget.php:246 msgid "Thermal Sensors" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:454 +#: src/usr/local/www/system_advanced_misc.php:453 msgid "" "With a supported CPU, selecting a thermal sensor will load the appropriate " "driver to read its temperature. Setting this to \"None\" will attempt to " @@ -25684,52 +25412,52 @@ msgid "" "this option to \"none\" and then reboot." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:467 +#: src/usr/local/www/system_advanced_misc.php:466 msgid "Schedule States" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:470 +#: src/usr/local/www/system_advanced_misc.php:469 msgid "" "By default, when a schedule expires, connections permitted by that schedule " "are killed. This option overrides that behavior by not clearing states for " "existing connections." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:475 +#: src/usr/local/www/system_advanced_misc.php:474 #: src/usr/local/www/system_gateways_edit.php:633 msgid "Gateway Monitoring" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:479 +#: src/usr/local/www/system_advanced_misc.php:478 msgid "State Killing on Gateway Failure" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:482 +#: src/usr/local/www/system_advanced_misc.php:481 msgid "" "The monitoring process will flush all states when a gateway goes down if " "this box is checked." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:487 +#: src/usr/local/www/system_advanced_misc.php:486 msgid "Skip rules when gateway is down" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:490 +#: src/usr/local/www/system_advanced_misc.php:489 msgid "" "By default, when a rule has a gateway specified and this gateway is down, " "the rule is created omitting the gateway. This option overrides that " "behavior by omitting the entire rule instead." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:495 +#: src/usr/local/www/system_advanced_misc.php:494 msgid "RAM Disk Settings (Reboot to Apply Changes)" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:499 +#: src/usr/local/www/system_advanced_misc.php:498 msgid "Use RAM Disks" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:502 +#: src/usr/local/www/system_advanced_misc.php:501 msgid "" "Set this to use /tmp and /var as RAM disks (memory file system disks) on a " "full install rather than use the hard disk. Setting this will cause the data " @@ -25738,82 +25466,82 @@ msgid "" "clicking \"Save\"." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:509 +#: src/usr/local/www/system_advanced_misc.php:508 msgid "/tmp RAM Disk Size" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:513 +#: src/usr/local/www/system_advanced_misc.php:512 msgid "" "Set the size, in MiB, for the /tmp RAM disk. Leave blank for 40MiB. Do not " "set lower than 40." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:518 +#: src/usr/local/www/system_advanced_misc.php:517 msgid "/var RAM Disk Size" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:522 +#: src/usr/local/www/system_advanced_misc.php:521 msgid "" "Set the size, in MiB, for the /var RAM disk. Leave blank for 60MiB. Do not " "set lower than 60." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:527 +#: src/usr/local/www/system_advanced_misc.php:526 msgid "Periodic RRD Backup" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:531 +#: src/usr/local/www/system_advanced_misc.php:530 msgid "" "This will periodically backup the RRD data so it can be restored " "automatically on the next boot. Keep in mind that the more frequent the " "backup, the more writes will happen to the media." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:537 +#: src/usr/local/www/system_advanced_misc.php:536 msgid "Periodic DHCP Leases Backup" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:541 +#: src/usr/local/www/system_advanced_misc.php:540 msgid "" "This will periodically backup the DHCP leases so it can be restored " "automatically on the next boot. Keep in mind that the more frequent the " "backup, the more writes will happen to the media." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:548 +#: src/usr/local/www/system_advanced_misc.php:546 msgid "Hardware Settings" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:557 +#: src/usr/local/www/system_advanced_misc.php:555 msgid "Always on" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:555 +#: src/usr/local/www/system_advanced_misc.php:553 msgid "Hard disk standby time" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:558 +#: src/usr/local/www/system_advanced_misc.php:556 msgid "" "Puts the hard disk into standby mode when the selected number of minutes has " "elapsed since the last access.<br /><strong> Do not set this for CF cards.</" "strong>" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:564 +#: src/usr/local/www/system_advanced_misc.php:561 msgid "Installation Feedback" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:568 +#: src/usr/local/www/system_advanced_misc.php:565 msgid "Host UUID" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:571 +#: src/usr/local/www/system_advanced_misc.php:568 msgid "" "Enable this option to not send HOST UUID to pfSense as part of User-Agent " "header." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:577 +#: src/usr/local/www/system_advanced_misc.php:574 msgid "" "The \\\"Use Ramdisk\\\" setting has been changed. This will cause the " "firewall\\nto reboot immediately after the new setting is saved.\\n\\nPlease " @@ -25938,175 +25666,189 @@ msgstr "" msgid "Growl passwords must match" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:134 +#: src/usr/local/www/system_advanced_notifications.php:129 msgid "SMTP passwords must match" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:168 +#: src/usr/local/www/system_advanced_notifications.php:163 #, php-format msgid "This is a test message from %s. It is safe to ignore this message." msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:177 +#: src/usr/local/www/system_advanced_notifications.php:165 +msgid "Growl testing notification successfully sent" +msgstr "" + +#: src/usr/local/www/system_advanced_notifications.php:178 #, php-format msgid "This is a test message from %s. It is safe to ignore this message." msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:203 +#: src/usr/local/www/system_advanced_notifications.php:180 +msgid "SMTP testing e-mail successfully sent" +msgstr "" + +#: src/usr/local/www/system_advanced_notifications.php:210 msgid "Growl" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:207 +#: src/usr/local/www/system_advanced_notifications.php:214 msgid "Disable Growl" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:210 +#: src/usr/local/www/system_advanced_notifications.php:217 msgid "" "Check this option to disable growl notifications but preserve the settings " "below." msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:215 +#: src/usr/local/www/system_advanced_notifications.php:222 msgid "Registration Name" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:219 +#: src/usr/local/www/system_advanced_notifications.php:226 msgid "Enter the name to register with the Growl server." msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:223 +#: src/usr/local/www/system_advanced_notifications.php:230 msgid "Notification Name" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:228 +#: src/usr/local/www/system_advanced_notifications.php:235 msgid "Enter a name for the Growl notifications." msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:235 +#: src/usr/local/www/system_advanced_notifications.php:242 msgid "This is the IP address to send growl notifications to." msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:242 +#: src/usr/local/www/system_advanced_notifications.php:249 msgid "Enter the password of the remote growl notification device." msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:246 +#: src/usr/local/www/system_advanced_notifications.php:253 msgid "Test Growl Settings" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:249 +#: src/usr/local/www/system_advanced_notifications.php:256 msgid "" "A test notification will be sent even if the service is marked as disabled." msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:253 +#: src/usr/local/www/system_advanced_notifications.php:260 msgid "E-Mail" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:257 +#: src/usr/local/www/system_advanced_notifications.php:264 msgid "Disable SMTP" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:260 +#: src/usr/local/www/system_advanced_notifications.php:267 msgid "" "Check this option to disable SMTP notifications but preserve the settings " "below. Some other mechanisms, such as packages, may need these settings in " "place to function." msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:266 +#: src/usr/local/www/system_advanced_notifications.php:273 msgid "E-Mail server" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:269 +#: src/usr/local/www/system_advanced_notifications.php:276 msgid "" "This is the FQDN or IP address of the SMTP E-Mail server to which " "notifications will be sent." msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:274 +#: src/usr/local/www/system_advanced_notifications.php:281 msgid "SMTP Port of E-Mail server" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:277 +#: src/usr/local/www/system_advanced_notifications.php:284 msgid "" "This is the port of the SMTP E-Mail server, typically 25, 587 (submission) " "or 465 (smtps)." msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:280 -msgid "Secure SMTP Connection" +#: src/usr/local/www/system_advanced_notifications.php:289 +msgid "Connection timeout to E-Mail server" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:283 -msgid "Enable SSL/TLS" +#: src/usr/local/www/system_advanced_notifications.php:292 +msgid "" +"This is how many seconds it will wait for the SMTP server to connect. " +"Default is 20s." +msgstr "" + +#: src/usr/local/www/system_advanced_notifications.php:294 +msgid "Secure SMTP Connection" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:290 -msgid "Secure STARTTLS" +#: src/usr/local/www/system_advanced_notifications.php:297 +msgid "Enable SSL/TLS" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:299 +#: src/usr/local/www/system_advanced_notifications.php:306 msgid "From e-mail address" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:302 +#: src/usr/local/www/system_advanced_notifications.php:309 msgid "This is the e-mail address that will appear in the from field." msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:306 +#: src/usr/local/www/system_advanced_notifications.php:313 msgid "Notification E-Mail address" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:309 +#: src/usr/local/www/system_advanced_notifications.php:316 msgid "Enter the e-mail address to send email notifications to." msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:314 +#: src/usr/local/www/system_advanced_notifications.php:321 msgid "Notification E-Mail auth username (optional)" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:318 +#: src/usr/local/www/system_advanced_notifications.php:325 msgid "Enter the e-mail address username for SMTP authentication." msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:322 +#: src/usr/local/www/system_advanced_notifications.php:329 msgid "Notification E-Mail auth password" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:325 +#: src/usr/local/www/system_advanced_notifications.php:332 msgid "Enter the e-mail account password for SMTP authentication." msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:329 +#: src/usr/local/www/system_advanced_notifications.php:336 msgid "Notification E-Mail auth mechanism" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:332 +#: src/usr/local/www/system_advanced_notifications.php:339 msgid "" "Select the authentication mechanism used by the SMTP server. Most work with " "PLAIN, some servers like Exchange or Office365 might require LOGIN. " msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:336 +#: src/usr/local/www/system_advanced_notifications.php:343 msgid "Test SMTP Settings" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:339 +#: src/usr/local/www/system_advanced_notifications.php:346 msgid "" "A test notification will be sent even if the service is marked as disabled. " "The last SAVED values will be used, not necessarily the values entered here." msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:344 +#: src/usr/local/www/system_advanced_notifications.php:351 msgid "Sounds" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:348 +#: src/usr/local/www/system_advanced_notifications.php:355 msgid "Startup/Shutdown Sound" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:351 +#: src/usr/local/www/system_advanced_notifications.php:358 msgid "When this is checked, startup and shutdown sounds will no longer play." msgstr "" @@ -26126,6 +25868,10 @@ msgstr "" msgid "NOTE: " msgstr "" +#: src/usr/local/www/system_advanced_sysctl.php:157 +msgid "The options on this page are intended for use by advanced users only." +msgstr "" + #: src/usr/local/www/system_advanced_sysctl.php:160 msgid "Tunable Name" msgstr "" @@ -26170,19 +25916,19 @@ msgstr "" #: src/usr/local/www/system_camanager.php:168 #: src/usr/local/www/system_camanager.php:182 #: src/usr/local/www/system_camanager.php:197 -#: src/usr/local/www/system_camanager.php:456 +#: src/usr/local/www/system_camanager.php:461 #: src/usr/local/www/system_certmanager.php:228 #: src/usr/local/www/system_certmanager.php:241 #: src/usr/local/www/system_certmanager.php:259 -#: src/usr/local/www/system_certmanager.php:466 -#: src/usr/local/www/system_certmanager.php:580 -#: src/usr/local/www/system_certmanager.php:873 +#: src/usr/local/www/system_certmanager.php:471 +#: src/usr/local/www/system_certmanager.php:585 +#: src/usr/local/www/system_certmanager.php:894 #: src/usr/local/www/system_crlmanager.php:198 #: src/usr/local/www/system_crlmanager.php:204 #: src/usr/local/www/system_crlmanager.php:356 #: src/usr/local/www/system_crlmanager.php:421 -#: src/usr/local/www/system_usermanager.php:192 -#: src/usr/local/www/system_usermanager.php:866 +#: src/usr/local/www/system_usermanager.php:188 +#: src/usr/local/www/system_usermanager.php:860 msgid "Descriptive name" msgstr "" @@ -26251,22 +25997,22 @@ msgstr "" #: src/usr/local/www/system_authservers.php:403 #: src/usr/local/www/system_authservers.php:423 #: src/usr/local/www/system_authservers.php:429 -#: src/usr/local/www/system_groupmanager.php:283 +#: src/usr/local/www/system_groupmanager.php:277 #: src/usr/local/www/system_groupmanager_addprivs.php:134 -#: src/usr/local/www/system_usermanager.php:556 -#: src/usr/local/www/system_usermanager_addprivs.php:135 +#: src/usr/local/www/system_usermanager.php:550 +#: src/usr/local/www/system_usermanager_addprivs.php:132 #: src/usr/local/www/system_usermanager_settings.php:168 msgid "Authentication Servers" msgstr "" #: src/usr/local/www/system_authservers.php:420 -#: src/usr/local/www/system_groupmanager.php:280 +#: src/usr/local/www/system_groupmanager.php:274 #: src/usr/local/www/system_groupmanager_addprivs.php:131 -#: src/usr/local/www/system_usermanager.php:533 -#: src/usr/local/www/system_usermanager.php:553 -#: src/usr/local/www/system_usermanager.php:563 +#: src/usr/local/www/system_usermanager.php:527 +#: src/usr/local/www/system_usermanager.php:547 +#: src/usr/local/www/system_usermanager.php:557 #: src/usr/local/www/system_usermanager_addprivs.php:36 -#: src/usr/local/www/system_usermanager_addprivs.php:132 +#: src/usr/local/www/system_usermanager_addprivs.php:129 #: src/usr/local/www/system_usermanager_settings.php:165 #: src/usr/local/www/vpn_l2tp.php:187 src/usr/local/www/vpn_l2tp_users.php:29 #: src/usr/local/www/vpn_l2tp_users.php:85 @@ -26275,14 +26021,14 @@ msgid "Users" msgstr "" #: src/usr/local/www/system_authservers.php:421 -#: src/usr/local/www/system_groupmanager.php:263 -#: src/usr/local/www/system_groupmanager.php:281 -#: src/usr/local/www/system_groupmanager.php:289 +#: src/usr/local/www/system_groupmanager.php:257 +#: src/usr/local/www/system_groupmanager.php:275 +#: src/usr/local/www/system_groupmanager.php:283 #: src/usr/local/www/system_groupmanager_addprivs.php:36 #: src/usr/local/www/system_groupmanager_addprivs.php:132 -#: src/usr/local/www/system_usermanager.php:554 -#: src/usr/local/www/system_usermanager.php:573 -#: src/usr/local/www/system_usermanager_addprivs.php:133 +#: src/usr/local/www/system_usermanager.php:548 +#: src/usr/local/www/system_usermanager.php:567 +#: src/usr/local/www/system_usermanager_addprivs.php:130 #: src/usr/local/www/system_usermanager_settings.php:166 msgid "Groups" msgstr "" @@ -26292,12 +26038,12 @@ msgid "Server Name" msgstr "" #: src/usr/local/www/system_authservers.php:449 -#: src/usr/local/www/vpn_openvpn_server.php:1197 +#: src/usr/local/www/vpn_openvpn_server.php:1212 msgid "Edit server" msgstr "" #: src/usr/local/www/system_authservers.php:450 -#: src/usr/local/www/vpn_openvpn_server.php:1198 +#: src/usr/local/www/vpn_openvpn_server.php:1213 msgid "Delete server" msgstr "" @@ -26322,11 +26068,11 @@ msgstr "" #: src/usr/local/www/system_authservers.php:532 #: src/usr/local/www/system_authservers.php:544 -#: src/usr/local/www/vpn_ipsec_phase1.php:774 +#: src/usr/local/www/vpn_ipsec_phase1.php:770 #: src/usr/local/www/vpn_openvpn_client.php:585 #: src/usr/local/www/vpn_openvpn_client.php:591 -#: src/usr/local/www/vpn_openvpn_server.php:702 -#: src/usr/local/www/vpn_openvpn_server.php:708 +#: src/usr/local/www/vpn_openvpn_server.php:706 +#: src/usr/local/www/vpn_openvpn_server.php:712 msgid "Peer Certificate Authority" msgstr "" @@ -26499,9 +26245,9 @@ msgid "Certificate Authority %s and its CRLs (if any) successfully deleted." msgstr "" #: src/usr/local/www/system_camanager.php:169 -#: src/usr/local/www/system_camanager.php:477 +#: src/usr/local/www/system_camanager.php:482 #: src/usr/local/www/system_certmanager.php:229 -#: src/usr/local/www/system_certmanager.php:591 +#: src/usr/local/www/system_certmanager.php:596 msgid "Certificate data" msgstr "" @@ -26518,19 +26264,19 @@ msgstr "" #: src/usr/local/www/system_camanager.php:199 #: src/usr/local/www/system_certmanager.php:243 #: src/usr/local/www/system_certmanager.php:260 -#: src/usr/local/www/system_certmanager.php:633 -#: src/usr/local/www/system_certmanager.php:767 -#: src/usr/local/www/system_usermanager.php:194 -#: src/usr/local/www/system_usermanager.php:880 +#: src/usr/local/www/system_certmanager.php:638 +#: src/usr/local/www/system_certmanager.php:780 +#: src/usr/local/www/system_usermanager.php:190 +#: src/usr/local/www/system_usermanager.php:874 msgid "Key length" msgstr "" #: src/usr/local/www/system_camanager.php:184 #: src/usr/local/www/system_camanager.php:200 #: src/usr/local/www/system_certmanager.php:245 -#: src/usr/local/www/system_usermanager.php:195 -#: src/usr/local/www/system_usermanager.php:897 -#: src/usr/local/www/vpn_ipsec_phase2.php:670 +#: src/usr/local/www/system_usermanager.php:191 +#: src/usr/local/www/system_usermanager.php:891 +#: src/usr/local/www/vpn_ipsec_phase2.php:665 msgid "Lifetime" msgstr "" @@ -26577,7 +26323,7 @@ msgid "Distinguished name Common Name" msgstr "" #: src/usr/local/www/system_camanager.php:198 -#: src/usr/local/www/system_camanager.php:511 +#: src/usr/local/www/system_camanager.php:516 msgid "Signing Certificate Authority" msgstr "" @@ -26608,180 +26354,186 @@ msgstr "" msgid "Please select a valid Digest Algorithm." msgstr "" -#: src/usr/local/www/system_camanager.php:311 -#: src/usr/local/www/system_certmanager.php:513 +#: src/usr/local/www/system_camanager.php:316 +#: src/usr/local/www/system_certmanager.php:518 #: src/usr/local/www/system_crlmanager.php:253 msgid "Certificate Manager" msgstr "" -#: src/usr/local/www/system_camanager.php:311 -#: src/usr/local/www/system_camanager.php:338 -#: src/usr/local/www/system_certmanager.php:529 +#: src/usr/local/www/system_camanager.php:316 +#: src/usr/local/www/system_camanager.php:343 +#: src/usr/local/www/system_certmanager.php:534 #: src/usr/local/www/system_crlmanager.php:334 msgid "CAs" msgstr "" -#: src/usr/local/www/system_camanager.php:339 -#: src/usr/local/www/system_camanager.php:355 -#: src/usr/local/www/system_certmanager.php:513 -#: src/usr/local/www/system_certmanager.php:530 -#: src/usr/local/www/system_certmanager.php:922 +#: src/usr/local/www/system_camanager.php:344 +#: src/usr/local/www/system_camanager.php:360 +#: src/usr/local/www/system_certmanager.php:518 +#: src/usr/local/www/system_certmanager.php:535 +#: src/usr/local/www/system_certmanager.php:943 #: src/usr/local/www/system_crlmanager.php:335 #: src/usr/local/www/system_crlmanager.php:578 msgid "Certificates" msgstr "" -#: src/usr/local/www/system_camanager.php:340 -#: src/usr/local/www/system_certmanager.php:531 +#: src/usr/local/www/system_camanager.php:345 +#: src/usr/local/www/system_certmanager.php:536 #: src/usr/local/www/system_crlmanager.php:253 #: src/usr/local/www/system_crlmanager.php:336 msgid "Certificate Revocation" msgstr "" -#: src/usr/local/www/system_camanager.php:346 +#: src/usr/local/www/system_camanager.php:351 msgid "Certificate Authorities" msgstr "" -#: src/usr/local/www/system_camanager.php:353 +#: src/usr/local/www/system_camanager.php:358 #: src/usr/local/www/system_crlmanager.php:577 msgid "Internal" msgstr "" -#: src/usr/local/www/system_camanager.php:354 -#: src/usr/local/www/system_certmanager.php:929 +#: src/usr/local/www/system_camanager.php:359 +#: src/usr/local/www/system_certmanager.php:950 msgid "Issuer" msgstr "" -#: src/usr/local/www/system_camanager.php:356 -#: src/usr/local/www/system_certmanager.php:930 +#: src/usr/local/www/system_camanager.php:361 +#: src/usr/local/www/system_certmanager.php:951 msgid "Distinguished Name" msgstr "" -#: src/usr/local/www/system_camanager.php:368 -#: src/usr/local/www/system_certmanager.php:954 +#: src/usr/local/www/system_camanager.php:373 +#: src/usr/local/www/system_certmanager.php:975 msgid "self-signed" msgstr "" -#: src/usr/local/www/system_camanager.php:370 -#: src/usr/local/www/system_certmanager.php:956 +#: src/usr/local/www/system_camanager.php:375 +#: src/usr/local/www/system_certmanager.php:977 msgid "external" msgstr "" -#: src/usr/local/www/system_camanager.php:402 -#: src/usr/local/www/system_certmanager.php:988 +#: src/usr/local/www/system_camanager.php:407 +#: src/usr/local/www/system_certmanager.php:1009 msgid "Valid From" msgstr "" -#: src/usr/local/www/system_camanager.php:402 -#: src/usr/local/www/system_certmanager.php:988 +#: src/usr/local/www/system_camanager.php:407 +#: src/usr/local/www/system_certmanager.php:1009 msgid "Valid Until" msgstr "" -#: src/usr/local/www/system_camanager.php:406 +#: src/usr/local/www/system_camanager.php:411 msgid "Edit CA" msgstr "" -#: src/usr/local/www/system_camanager.php:407 +#: src/usr/local/www/system_camanager.php:412 msgid "Export CA" msgstr "" -#: src/usr/local/www/system_camanager.php:409 +#: src/usr/local/www/system_camanager.php:414 msgid "Export key" msgstr "" -#: src/usr/local/www/system_camanager.php:411 +#: src/usr/local/www/system_camanager.php:416 msgid "Delete CA" msgstr "" -#: src/usr/local/www/system_camanager.php:452 +#: src/usr/local/www/system_camanager.php:457 msgid "Create / Edit CA" msgstr "" -#: src/usr/local/www/system_camanager.php:464 -#: src/usr/local/www/system_certmanager.php:572 +#: src/usr/local/www/system_camanager.php:469 +#: src/usr/local/www/system_certmanager.php:577 #: src/usr/local/www/system_crlmanager.php:347 msgid "Method" msgstr "" -#: src/usr/local/www/system_camanager.php:472 +#: src/usr/local/www/system_camanager.php:477 msgid "Existing Certificate Authority" msgstr "" -#: src/usr/local/www/system_camanager.php:479 -#: src/usr/local/www/system_certmanager.php:593 +#: src/usr/local/www/system_camanager.php:484 +#: src/usr/local/www/system_certmanager.php:598 msgid "Paste a certificate in X.509 PEM format here." msgstr "" -#: src/usr/local/www/system_camanager.php:483 +#: src/usr/local/www/system_camanager.php:488 msgid "Certificate Private Key (optional)" msgstr "" -#: src/usr/local/www/system_camanager.php:485 +#: src/usr/local/www/system_camanager.php:490 msgid "" "Paste the private key for the above certificate here. This is optional in " "most cases, but is required when generating a Certificate Revocation List " "(CRL)." msgstr "" -#: src/usr/local/www/system_camanager.php:491 +#: src/usr/local/www/system_camanager.php:496 msgid "Serial for next certificate" msgstr "" -#: src/usr/local/www/system_camanager.php:494 +#: src/usr/local/www/system_camanager.php:499 msgid "" "Enter a decimal number to be used as the serial number for the next " "certificate to be created using this CA." msgstr "" -#: src/usr/local/www/system_camanager.php:499 +#: src/usr/local/www/system_camanager.php:504 msgid "Internal Certificate Authority" msgstr "" -#: src/usr/local/www/system_camanager.php:523 +#: src/usr/local/www/system_camanager.php:528 msgid "Key length (bits)" msgstr "" -#: src/usr/local/www/system_camanager.php:530 -#: src/usr/local/www/system_certmanager.php:640 -#: src/usr/local/www/system_certmanager.php:774 +#: src/usr/local/www/system_camanager.php:535 +#: src/usr/local/www/system_certmanager.php:645 +#: src/usr/local/www/system_certmanager.php:787 msgid "Digest Algorithm" msgstr "" -#: src/usr/local/www/system_camanager.php:533 -#: src/usr/local/www/system_certmanager.php:643 +#: src/usr/local/www/system_camanager.php:538 +#: src/usr/local/www/system_certmanager.php:648 msgid "" "NOTE: It is recommended to use an algorithm stronger than SHA1 when possible." msgstr "" -#: src/usr/local/www/system_camanager.php:538 -#: src/usr/local/www/system_certmanager.php:656 +#: src/usr/local/www/system_camanager.php:543 +#: src/usr/local/www/system_certmanager.php:661 msgid "Lifetime (days)" msgstr "" -#: src/usr/local/www/system_camanager.php:545 -#: src/usr/local/www/system_certmanager.php:663 -#: src/usr/local/www/system_certmanager.php:782 +#: src/usr/local/www/system_camanager.php:550 +#: src/usr/local/www/system_certmanager.php:668 +#: src/usr/local/www/system_certmanager.php:795 msgid "Country Code" msgstr "" -#: src/usr/local/www/system_camanager.php:552 -#: src/usr/local/www/system_certmanager.php:670 -#: src/usr/local/www/system_certmanager.php:789 +#: src/usr/local/www/system_camanager.php:557 +#: src/usr/local/www/system_certmanager.php:675 +#: src/usr/local/www/system_certmanager.php:802 msgid "State or Province" msgstr "" -#: src/usr/local/www/system_camanager.php:560 -#: src/usr/local/www/system_certmanager.php:678 -#: src/usr/local/www/system_certmanager.php:797 +#: src/usr/local/www/system_camanager.php:565 +#: src/usr/local/www/system_certmanager.php:683 +#: src/usr/local/www/system_certmanager.php:810 msgid "City" msgstr "" -#: src/usr/local/www/system_camanager.php:568 -#: src/usr/local/www/system_certmanager.php:686 -#: src/usr/local/www/system_certmanager.php:805 +#: src/usr/local/www/system_camanager.php:573 +#: src/usr/local/www/system_certmanager.php:691 +#: src/usr/local/www/system_certmanager.php:818 msgid "Organization" msgstr "" +#: src/usr/local/www/system_camanager.php:581 +#: src/usr/local/www/system_certmanager.php:699 +#: src/usr/local/www/system_certmanager.php:826 +msgid "Organizational Unit" +msgstr "" + #: src/usr/local/www/system_certmanager.php:34 msgid "Import an existing Certificate" msgstr "" @@ -26808,15 +26560,15 @@ msgid "Key data" msgstr "" #: src/usr/local/www/system_certmanager.php:242 -#: src/usr/local/www/system_certmanager.php:607 -#: src/usr/local/www/system_certmanager.php:625 -#: src/usr/local/www/system_usermanager.php:193 -#: src/usr/local/www/system_usermanager.php:873 +#: src/usr/local/www/system_certmanager.php:612 +#: src/usr/local/www/system_certmanager.php:630 +#: src/usr/local/www/system_usermanager.php:189 +#: src/usr/local/www/system_usermanager.php:867 msgid "Certificate authority" msgstr "" #: src/usr/local/www/system_certmanager.php:244 -#: src/usr/local/www/system_certmanager.php:648 +#: src/usr/local/www/system_certmanager.php:653 msgid "Certificate Type" msgstr "" @@ -26824,155 +26576,155 @@ msgstr "" msgid "Existing Certificate Choice" msgstr "" -#: src/usr/local/www/system_certmanager.php:467 +#: src/usr/local/www/system_certmanager.php:472 msgid "Final Certificate data" msgstr "" -#: src/usr/local/www/system_certmanager.php:491 +#: src/usr/local/www/system_certmanager.php:496 #, php-format msgid "The certificate modulus does not match the signing request modulus." msgstr "" -#: src/usr/local/www/system_certmanager.php:567 +#: src/usr/local/www/system_certmanager.php:572 msgid "Add a New Certificate" msgstr "" -#: src/usr/local/www/system_certmanager.php:586 +#: src/usr/local/www/system_certmanager.php:591 msgid "Import Certificate" msgstr "" -#: src/usr/local/www/system_certmanager.php:597 +#: src/usr/local/www/system_certmanager.php:602 msgid "Private key data" msgstr "" -#: src/usr/local/www/system_certmanager.php:599 +#: src/usr/local/www/system_certmanager.php:604 msgid "Paste a private key in X.509 PEM format here." msgstr "" -#: src/usr/local/www/system_certmanager.php:602 +#: src/usr/local/www/system_certmanager.php:607 msgid "Internal Certificate" msgstr "" -#: src/usr/local/www/system_certmanager.php:608 +#: src/usr/local/www/system_certmanager.php:613 msgid "No internal Certificate Authorities have been defined. " msgstr "" -#: src/usr/local/www/system_certmanager.php:609 +#: src/usr/local/www/system_certmanager.php:614 msgid "" "An internal CA must be defined in order to create an internal certificate. " msgstr "" -#: src/usr/local/www/system_certmanager.php:610 +#: src/usr/local/www/system_certmanager.php:615 msgid "Create" msgstr "" -#: src/usr/local/www/system_certmanager.php:611 +#: src/usr/local/www/system_certmanager.php:616 msgid " an internal CA." msgstr "" -#: src/usr/local/www/system_certmanager.php:651 +#: src/usr/local/www/system_certmanager.php:656 msgid "" "Type of certificate to generate. Used for placing restrictions on the usage " "of the generated certificate." msgstr "" -#: src/usr/local/www/system_certmanager.php:719 +#: src/usr/local/www/system_certmanager.php:732 msgid "Alternative Names" msgstr "" -#: src/usr/local/www/system_certmanager.php:726 +#: src/usr/local/www/system_certmanager.php:739 msgid "FQDN or Hostname" msgstr "" -#: src/usr/local/www/system_certmanager.php:728 +#: src/usr/local/www/system_certmanager.php:741 msgid "URI" msgstr "" -#: src/usr/local/www/system_certmanager.php:729 +#: src/usr/local/www/system_certmanager.php:742 msgid "email address" msgstr "" -#: src/usr/local/www/system_certmanager.php:762 +#: src/usr/local/www/system_certmanager.php:775 msgid "External Signing Request" msgstr "" -#: src/usr/local/www/system_certmanager.php:777 +#: src/usr/local/www/system_certmanager.php:790 msgid "" "NOTE: It is recommended to use an algorithm stronger than SHA1 when possible" msgstr "" -#: src/usr/local/www/system_certmanager.php:828 +#: src/usr/local/www/system_certmanager.php:849 msgid "Choose an Existing Certificate" msgstr "" -#: src/usr/local/www/system_certmanager.php:857 +#: src/usr/local/www/system_certmanager.php:878 msgid "Existing Certificates" msgstr "" -#: src/usr/local/www/system_certmanager.php:869 +#: src/usr/local/www/system_certmanager.php:890 msgid "Complete Signing Request for " msgstr "" -#: src/usr/local/www/system_certmanager.php:880 +#: src/usr/local/www/system_certmanager.php:901 msgid "Signing request data" msgstr "" -#: src/usr/local/www/system_certmanager.php:884 +#: src/usr/local/www/system_certmanager.php:905 msgid "" "Copy the certificate signing data from here and forward it to a certificate " "authority for signing." msgstr "" -#: src/usr/local/www/system_certmanager.php:888 +#: src/usr/local/www/system_certmanager.php:909 msgid "Final certificate data" msgstr "" -#: src/usr/local/www/system_certmanager.php:891 +#: src/usr/local/www/system_certmanager.php:912 msgid "Paste the certificate received from the certificate authority here." msgstr "" -#: src/usr/local/www/system_certmanager.php:964 +#: src/usr/local/www/system_certmanager.php:985 msgid "external - signature pending" msgstr "" -#: src/usr/local/www/system_certmanager.php:1000 +#: src/usr/local/www/system_certmanager.php:1021 msgid "User Cert" msgstr "" -#: src/usr/local/www/system_certmanager.php:1003 +#: src/usr/local/www/system_certmanager.php:1024 msgid "OpenVPN Server" msgstr "" -#: src/usr/local/www/system_certmanager.php:1006 +#: src/usr/local/www/system_certmanager.php:1027 msgid "OpenVPN Client" msgstr "" -#: src/usr/local/www/system_certmanager.php:1009 +#: src/usr/local/www/system_certmanager.php:1030 msgid "IPsec Tunnel" msgstr "" -#: src/usr/local/www/system_certmanager.php:1036 +#: src/usr/local/www/system_certmanager.php:1057 msgid "Export Certificate" msgstr "" -#: src/usr/local/www/system_certmanager.php:1037 -#: src/usr/local/www/system_certmanager.php:1042 +#: src/usr/local/www/system_certmanager.php:1058 +#: src/usr/local/www/system_certmanager.php:1063 msgid "Export Key" msgstr "" -#: src/usr/local/www/system_certmanager.php:1038 +#: src/usr/local/www/system_certmanager.php:1059 msgid "Export P12" msgstr "" -#: src/usr/local/www/system_certmanager.php:1040 +#: src/usr/local/www/system_certmanager.php:1061 msgid "Update CSR" msgstr "" -#: src/usr/local/www/system_certmanager.php:1041 +#: src/usr/local/www/system_certmanager.php:1062 msgid "Export Request" msgstr "" -#: src/usr/local/www/system_certmanager.php:1045 +#: src/usr/local/www/system_certmanager.php:1066 msgid "Delete Certificate" msgstr "" @@ -27028,7 +26780,7 @@ msgstr "" #: src/usr/local/www/system_crlmanager.php:363 #: src/usr/local/www/vpn_ipsec_phase1.php:220 #: src/usr/local/www/vpn_openvpn_client.php:292 -#: src/usr/local/www/vpn_openvpn_server.php:392 +#: src/usr/local/www/vpn_openvpn_server.php:393 msgid "Certificate Authority" msgstr "" @@ -27099,9 +26851,9 @@ msgid "Choose a Certificate to Revoke" msgstr "" #: src/usr/local/www/system_crlmanager.php:524 -#: src/usr/local/www/system_usermanager.php:816 +#: src/usr/local/www/system_usermanager.php:810 #: src/usr/local/www/vpn_ipsec_phase1.php:220 -#: src/usr/local/www/vpn_openvpn_server.php:392 +#: src/usr/local/www/vpn_openvpn_server.php:393 msgid "Certificate" msgstr "" @@ -27287,7 +27039,7 @@ msgstr "" #: src/usr/local/www/system_gateways.php:245 #: src/usr/local/www/system_gateways_edit.php:638 -#: src/usr/local/www/widgets/widgets/gateways.widget.php:106 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:108 msgid "Monitor IP" msgstr "" @@ -27706,92 +27458,92 @@ msgid "" "scenarios." msgstr "" -#: src/usr/local/www/system_groupmanager.php:82 +#: src/usr/local/www/system_groupmanager.php:80 #, php-format msgid "Group %s successfully deleted." msgstr "" -#: src/usr/local/www/system_groupmanager.php:106 +#: src/usr/local/www/system_groupmanager.php:104 #, php-format msgid "Privilege %s successfully deleted." msgstr "" -#: src/usr/local/www/system_groupmanager.php:133 +#: src/usr/local/www/system_groupmanager.php:129 msgid "Selected groups removed successfully." msgstr "" +#: src/usr/local/www/system_groupmanager.php:146 #: src/usr/local/www/system_groupmanager.php:150 -#: src/usr/local/www/system_groupmanager.php:154 #, php-format msgid "The (%s) group name contains invalid characters." msgstr "" -#: src/usr/local/www/system_groupmanager.php:159 +#: src/usr/local/www/system_groupmanager.php:155 msgid "The group name is longer than 16 characters." msgstr "" -#: src/usr/local/www/system_groupmanager.php:166 +#: src/usr/local/www/system_groupmanager.php:162 msgid "One or more invalid group members was submitted." msgstr "" -#: src/usr/local/www/system_groupmanager.php:175 +#: src/usr/local/www/system_groupmanager.php:171 msgid "Another entry with the same group name already exists." msgstr "" -#: src/usr/local/www/system_groupmanager.php:247 -#: src/usr/local/www/system_usermanager.php:465 +#: src/usr/local/www/system_groupmanager.php:241 +#: src/usr/local/www/system_usermanager.php:459 msgid "Delete Privilege" msgstr "" -#: src/usr/local/www/system_groupmanager.php:295 -#: src/usr/local/www/system_groupmanager.php:376 +#: src/usr/local/www/system_groupmanager.php:289 +#: src/usr/local/www/system_groupmanager.php:370 msgid "Group name" msgstr "" -#: src/usr/local/www/system_groupmanager.php:297 +#: src/usr/local/www/system_groupmanager.php:291 msgid "Member Count" msgstr "" -#: src/usr/local/www/system_groupmanager.php:372 +#: src/usr/local/www/system_groupmanager.php:366 msgid "Group Properties" msgstr "" -#: src/usr/local/www/system_groupmanager.php:386 -#: src/usr/local/www/system_groupmanager.php:393 +#: src/usr/local/www/system_groupmanager.php:380 +#: src/usr/local/www/system_groupmanager.php:387 msgid "Scope" msgstr "" -#: src/usr/local/www/system_groupmanager.php:404 +#: src/usr/local/www/system_groupmanager.php:398 msgid "Group description, for administrative information only" msgstr "" -#: src/usr/local/www/system_groupmanager.php:411 -#: src/usr/local/www/system_usermanager.php:756 +#: src/usr/local/www/system_groupmanager.php:405 +#: src/usr/local/www/system_usermanager.php:750 msgid "Group membership" msgstr "" -#: src/usr/local/www/system_groupmanager.php:432 +#: src/usr/local/www/system_groupmanager.php:426 msgid "Not members" msgstr "" -#: src/usr/local/www/system_groupmanager.php:448 +#: src/usr/local/www/system_groupmanager.php:442 msgid "Move to \"Members\"" msgstr "" -#: src/usr/local/www/system_groupmanager.php:455 +#: src/usr/local/www/system_groupmanager.php:449 msgid "Move to \"Not members" msgstr "" -#: src/usr/local/www/system_groupmanager.php:460 +#: src/usr/local/www/system_groupmanager.php:454 #: src/usr/local/www/system_groupmanager_addprivs.php:156 #: src/usr/local/www/system_groupmanager_addprivs.php:165 -#: src/usr/local/www/system_usermanager.php:809 -#: src/usr/local/www/system_usermanager_addprivs.php:149 -#: src/usr/local/www/system_usermanager_addprivs.php:158 +#: src/usr/local/www/system_usermanager.php:803 +#: src/usr/local/www/system_usermanager_addprivs.php:146 +#: src/usr/local/www/system_usermanager_addprivs.php:155 msgid "Hold down CTRL (PC)/COMMAND (Mac) key to select multiple items." msgstr "" -#: src/usr/local/www/system_groupmanager.php:466 +#: src/usr/local/www/system_groupmanager.php:460 msgid "Assigned Privileges" msgstr "" @@ -27801,7 +27553,7 @@ msgid "Add Privileges" msgstr "" #: src/usr/local/www/system_groupmanager_addprivs.php:66 -#: src/usr/local/www/system_usermanager_addprivs.php:70 +#: src/usr/local/www/system_usermanager_addprivs.php:69 msgid "Selected privileges" msgstr "" @@ -27810,22 +27562,22 @@ msgid "Add Privileges for " msgstr "" #: src/usr/local/www/system_groupmanager_addprivs.php:151 -#: src/usr/local/www/system_usermanager_addprivs.php:144 +#: src/usr/local/www/system_usermanager_addprivs.php:141 msgid "Assigned privileges" msgstr "" #: src/usr/local/www/system_groupmanager_addprivs.php:160 -#: src/usr/local/www/system_usermanager_addprivs.php:153 +#: src/usr/local/www/system_usermanager_addprivs.php:150 msgid "Shadow" msgstr "" #: src/usr/local/www/system_groupmanager_addprivs.php:172 -#: src/usr/local/www/system_usermanager_addprivs.php:165 +#: src/usr/local/www/system_usermanager_addprivs.php:162 msgid "Show only the choices containing this term" msgstr "" #: src/usr/local/www/system_groupmanager_addprivs.php:200 -#: src/usr/local/www/system_usermanager_addprivs.php:203 +#: src/usr/local/www/system_usermanager_addprivs.php:200 msgid "Select a privilege from the list above for a description" msgstr "" @@ -28117,57 +27869,57 @@ msgstr "" msgid "Changes have been saved successfully" msgstr "" -#: src/usr/local/www/system_update_settings.php:127 +#: src/usr/local/www/system_update_settings.php:122 msgid "Firmware Branch" msgstr "" -#: src/usr/local/www/system_update_settings.php:131 +#: src/usr/local/www/system_update_settings.php:126 msgid "Branch" msgstr "" -#: src/usr/local/www/system_update_settings.php:134 +#: src/usr/local/www/system_update_settings.php:129 msgid "" "Please select the stable, or the development branch from which to update the " "system firmware. <br />Use of the development version is at your own risk!" msgstr "" -#: src/usr/local/www/system_update_settings.php:139 +#: src/usr/local/www/system_update_settings.php:134 msgid "Updates" msgstr "" -#: src/usr/local/www/system_update_settings.php:143 +#: src/usr/local/www/system_update_settings.php:138 msgid "Dashboard check" msgstr "" -#: src/usr/local/www/system_update_settings.php:151 +#: src/usr/local/www/system_update_settings.php:146 msgid "GitSync" msgstr "" -#: src/usr/local/www/system_update_settings.php:155 +#: src/usr/local/www/system_update_settings.php:150 msgid "Auto sync on update" msgstr "" -#: src/usr/local/www/system_update_settings.php:158 +#: src/usr/local/www/system_update_settings.php:153 msgid "" "After updating, sync with the following repository/branch before reboot." msgstr "" -#: src/usr/local/www/system_update_settings.php:170 +#: src/usr/local/www/system_update_settings.php:165 msgid "Repository URL" msgstr "" -#: src/usr/local/www/system_update_settings.php:173 +#: src/usr/local/www/system_update_settings.php:168 #, php-format msgid "" "The most recently used repository was %s. This repository will be used if " "the field is left blank." msgstr "" -#: src/usr/local/www/system_update_settings.php:191 +#: src/usr/local/www/system_update_settings.php:186 msgid "Branch name" msgstr "" -#: src/usr/local/www/system_update_settings.php:194 +#: src/usr/local/www/system_update_settings.php:189 #, php-format msgid "" "The most recently used branch was \"%s\". (Usually the branch name is " @@ -28188,105 +27940,105 @@ msgid "User Settings for " msgstr "" #: src/usr/local/www/system_usermanager.php:92 -#: src/usr/local/www/system_usermanager.php:123 +#: src/usr/local/www/system_usermanager.php:121 #, php-format msgid "Cannot delete user %s because you are currently logged in as that user." msgstr "" -#: src/usr/local/www/system_usermanager.php:100 -#: src/usr/local/www/system_usermanager.php:140 +#: src/usr/local/www/system_usermanager.php:98 +#: src/usr/local/www/system_usermanager.php:136 #, php-format msgid "User %s successfully deleted." msgstr "" -#: src/usr/local/www/system_usermanager.php:134 +#: src/usr/local/www/system_usermanager.php:130 #, php-format msgid "Cannot delete user %s because it is a system user." msgstr "" -#: src/usr/local/www/system_usermanager.php:142 +#: src/usr/local/www/system_usermanager.php:138 #, php-format msgid "Users %s successfully deleted." msgstr "" -#: src/usr/local/www/system_usermanager.php:161 +#: src/usr/local/www/system_usermanager.php:157 #, php-format msgid "Certificate %s association removed." msgstr "" -#: src/usr/local/www/system_usermanager.php:170 +#: src/usr/local/www/system_usermanager.php:166 #, php-format msgid "Privilege %s removed." msgstr "" -#: src/usr/local/www/system_usermanager.php:206 +#: src/usr/local/www/system_usermanager.php:202 msgid "The username is longer than 16 characters." msgstr "" -#: src/usr/local/www/system_usermanager.php:210 +#: src/usr/local/www/system_usermanager.php:206 #: src/usr/local/www/system_usermanager_passwordmg.php:44 #: src/usr/local/www/vpn_l2tp_users_edit.php:91 msgid "The passwords do not match." msgstr "" -#: src/usr/local/www/system_usermanager.php:214 +#: src/usr/local/www/system_usermanager.php:210 msgid "IPsec Pre-Shared Key contains invalid characters." msgstr "" -#: src/usr/local/www/system_usermanager.php:221 +#: src/usr/local/www/system_usermanager.php:217 msgid "One or more invalid groups was submitted." msgstr "" -#: src/usr/local/www/system_usermanager.php:235 +#: src/usr/local/www/system_usermanager.php:231 #: src/usr/local/www/vpn_l2tp_users_edit.php:101 msgid "Another entry with the same username already exists." msgstr "" -#: src/usr/local/www/system_usermanager.php:246 +#: src/usr/local/www/system_usermanager.php:242 msgid "That username is reserved by the system." msgstr "" -#: src/usr/local/www/system_usermanager.php:266 +#: src/usr/local/www/system_usermanager.php:262 msgid "Invalid expiration date format; use MM/DD/YYYY instead." msgstr "" -#: src/usr/local/www/system_usermanager.php:273 +#: src/usr/local/www/system_usermanager.php:269 msgid "Invalid internal Certificate Authority" msgstr "" -#: src/usr/local/www/system_usermanager.php:443 +#: src/usr/local/www/system_usermanager.php:437 msgid "Inherited from" msgstr "" -#: src/usr/local/www/system_usermanager.php:495 +#: src/usr/local/www/system_usermanager.php:489 msgid "CA" msgstr "" -#: src/usr/local/www/system_usermanager.php:514 +#: src/usr/local/www/system_usermanager.php:508 msgid "Remove this certificate association? (Certificate will not be deleted)" msgstr "" -#: src/usr/local/www/system_usermanager.php:571 -#: src/usr/local/www/system_usermanager.php:729 +#: src/usr/local/www/system_usermanager.php:565 +#: src/usr/local/www/system_usermanager.php:723 msgid "Full name" msgstr "" -#: src/usr/local/www/system_usermanager.php:600 +#: src/usr/local/www/system_usermanager.php:594 #: src/usr/local/www/vpn_ipsec_keys.php:131 #: src/usr/local/www/vpn_l2tp_users.php:111 msgid "Edit user" msgstr "" -#: src/usr/local/www/system_usermanager.php:602 +#: src/usr/local/www/system_usermanager.php:596 #: src/usr/local/www/vpn_l2tp_users.php:112 msgid "Delete user" msgstr "" -#: src/usr/local/www/system_usermanager.php:618 +#: src/usr/local/www/system_usermanager.php:612 msgid "Delete selected users" msgstr "" -#: src/usr/local/www/system_usermanager.php:626 +#: src/usr/local/www/system_usermanager.php:620 msgid "" "Additional users can be added here. User permissions for accessing the " "webConfigurator can be assigned directly or inherited from group " @@ -28294,71 +28046,71 @@ msgid "" "be deleted." msgstr "" -#: src/usr/local/www/system_usermanager.php:629 +#: src/usr/local/www/system_usermanager.php:623 msgid "" "Accounts added here are also used for other parts of the system such as " "OpenVPN, IPsec, and Captive Portal." msgstr "" -#: src/usr/local/www/system_usermanager.php:674 +#: src/usr/local/www/system_usermanager.php:668 msgid "User Properties" msgstr "" -#: src/usr/local/www/system_usermanager.php:677 +#: src/usr/local/www/system_usermanager.php:671 msgid "Defined by" msgstr "" -#: src/usr/local/www/system_usermanager.php:721 +#: src/usr/local/www/system_usermanager.php:715 msgid "Confirm Password" msgstr "" -#: src/usr/local/www/system_usermanager.php:732 +#: src/usr/local/www/system_usermanager.php:726 msgid "User's full name, for administrative information only" msgstr "" -#: src/usr/local/www/system_usermanager.php:740 +#: src/usr/local/www/system_usermanager.php:734 msgid "Expiration date" msgstr "" -#: src/usr/local/www/system_usermanager.php:743 +#: src/usr/local/www/system_usermanager.php:737 msgid "" "Leave blank if the account shouldn't expire, otherwise enter the expiration " "date" msgstr "" -#: src/usr/local/www/system_usermanager.php:748 +#: src/usr/local/www/system_usermanager.php:742 msgid "Custom Settings" msgstr "" -#: src/usr/local/www/system_usermanager.php:781 +#: src/usr/local/www/system_usermanager.php:775 msgid "Not member of" msgstr "" -#: src/usr/local/www/system_usermanager.php:789 +#: src/usr/local/www/system_usermanager.php:783 msgid "Member of" msgstr "" -#: src/usr/local/www/system_usermanager.php:797 +#: src/usr/local/www/system_usermanager.php:791 msgid "Move to \"Member of\" list" msgstr "" -#: src/usr/local/www/system_usermanager.php:804 +#: src/usr/local/www/system_usermanager.php:798 msgid "Move to \"Not member of\" list" msgstr "" -#: src/usr/local/www/system_usermanager.php:829 +#: src/usr/local/www/system_usermanager.php:823 msgid "Effective Privileges" msgstr "" -#: src/usr/local/www/system_usermanager.php:839 +#: src/usr/local/www/system_usermanager.php:833 msgid "User Certificates" msgstr "" -#: src/usr/local/www/system_usermanager.php:851 +#: src/usr/local/www/system_usermanager.php:845 msgid "Create Certificate for User" msgstr "" -#: src/usr/local/www/system_usermanager.php:893 +#: src/usr/local/www/system_usermanager.php:887 msgid "" "The larger the key, the more security it offers, but larger keys take " "considerably more time to generate, and take slightly longer to validate " @@ -28368,27 +28120,27 @@ msgid "" "\"https://keylength.com\">keylength.com</a>." msgstr "" -#: src/usr/local/www/system_usermanager.php:908 +#: src/usr/local/www/system_usermanager.php:902 msgid "Keys" msgstr "" -#: src/usr/local/www/system_usermanager.php:912 +#: src/usr/local/www/system_usermanager.php:906 msgid "Authorized keys" msgstr "" -#: src/usr/local/www/system_usermanager.php:919 +#: src/usr/local/www/system_usermanager.php:913 msgid "Authorized SSH Keys" msgstr "" -#: src/usr/local/www/system_usermanager.php:921 +#: src/usr/local/www/system_usermanager.php:915 msgid "Enter authorized SSH keys for this user" msgstr "" -#: src/usr/local/www/system_usermanager.php:925 +#: src/usr/local/www/system_usermanager.php:919 msgid "IPsec Pre-Shared Key" msgstr "" -#: src/usr/local/www/system_usermanager_addprivs.php:140 +#: src/usr/local/www/system_usermanager_addprivs.php:137 msgid "User Privileges" msgstr "" @@ -28503,10 +28255,10 @@ msgstr "" #: src/usr/local/www/vpn_ipsec.php:219 src/usr/local/www/vpn_ipsec.php:225 #: src/usr/local/www/vpn_ipsec_keys.php:86 #: src/usr/local/www/vpn_ipsec_mobile.php:423 -#: src/usr/local/www/vpn_ipsec_phase1.php:633 -#: src/usr/local/www/vpn_ipsec_phase1.php:645 -#: src/usr/local/www/vpn_ipsec_phase2.php:411 -#: src/usr/local/www/vpn_ipsec_phase2.php:490 +#: src/usr/local/www/vpn_ipsec_phase1.php:629 +#: src/usr/local/www/vpn_ipsec_phase1.php:641 +#: src/usr/local/www/vpn_ipsec_phase2.php:406 +#: src/usr/local/www/vpn_ipsec_phase2.php:485 #: src/usr/local/www/vpn_ipsec_settings.php:232 #: src/usr/local/www/widgets/widgets/ipsec.widget.php:176 msgid "Tunnels" @@ -28515,10 +28267,10 @@ msgstr "" #: src/usr/local/www/vpn_ipsec.php:226 src/usr/local/www/vpn_ipsec_keys.php:87 #: src/usr/local/www/vpn_ipsec_mobile.php:306 #: src/usr/local/www/vpn_ipsec_mobile.php:424 -#: src/usr/local/www/vpn_ipsec_phase1.php:631 -#: src/usr/local/www/vpn_ipsec_phase1.php:646 -#: src/usr/local/www/vpn_ipsec_phase2.php:408 -#: src/usr/local/www/vpn_ipsec_phase2.php:491 +#: src/usr/local/www/vpn_ipsec_phase1.php:627 +#: src/usr/local/www/vpn_ipsec_phase1.php:642 +#: src/usr/local/www/vpn_ipsec_phase2.php:403 +#: src/usr/local/www/vpn_ipsec_phase2.php:486 #: src/usr/local/www/vpn_ipsec_settings.php:233 msgid "Mobile Clients" msgstr "" @@ -28528,8 +28280,8 @@ msgstr "" #: src/usr/local/www/vpn_ipsec_keys.php:94 #: src/usr/local/www/vpn_ipsec_keys_edit.php:122 #: src/usr/local/www/vpn_ipsec_mobile.php:425 -#: src/usr/local/www/vpn_ipsec_phase1.php:647 -#: src/usr/local/www/vpn_ipsec_phase2.php:492 +#: src/usr/local/www/vpn_ipsec_phase1.php:643 +#: src/usr/local/www/vpn_ipsec_phase2.php:487 #: src/usr/local/www/vpn_ipsec_settings.php:234 msgid "Pre-Shared Keys" msgstr "" @@ -28548,7 +28300,7 @@ msgid "IKE" msgstr "" #: src/usr/local/www/vpn_ipsec.php:250 -#: src/usr/local/www/vpn_ipsec_phase1.php:686 +#: src/usr/local/www/vpn_ipsec_phase1.php:682 msgid "Remote Gateway" msgstr "" @@ -28901,8 +28653,8 @@ msgstr "" #: src/usr/local/www/vpn_ipsec_mobile.php:561 #: src/usr/local/www/vpn_openvpn_csc.php:421 -#: src/usr/local/www/vpn_openvpn_server.php:989 -#: src/usr/local/www/vpn_openvpn_server.php:996 +#: src/usr/local/www/vpn_openvpn_server.php:993 +#: src/usr/local/www/vpn_openvpn_server.php:1000 msgid "DNS Default Domain" msgstr "" @@ -29082,368 +28834,366 @@ msgstr "" msgid "Valid arguments for IKE type are v1, v2 or auto" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:397 -#: src/usr/local/www/vpn_ipsec_phase2.php:339 -msgid "" -"Only 128 bit AES can be used where the glxsb crypto accelerator is enabled." +#: src/usr/local/www/vpn_ipsec_phase1.php:395 +msgid "Encryption Algorithm AES-GCM can only be used with IKEv2" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:409 +#: src/usr/local/www/vpn_ipsec_phase1.php:405 msgid "" "A valid RADIUS server must be selected for user authentication on the Mobile " "Clients tab in order to set EAP-RADIUS as the authentication method." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:541 +#: src/usr/local/www/vpn_ipsec_phase1.php:537 #, php-format msgid "GW Group %s" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:631 -#: src/usr/local/www/vpn_ipsec_phase1.php:633 +#: src/usr/local/www/vpn_ipsec_phase1.php:627 +#: src/usr/local/www/vpn_ipsec_phase1.php:629 msgid "Edit Phase 1" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:653 -#: src/usr/local/www/vpn_ipsec_phase2.php:498 +#: src/usr/local/www/vpn_ipsec_phase1.php:649 +#: src/usr/local/www/vpn_ipsec_phase2.php:493 #: src/usr/local/www/vpn_openvpn_client.php:424 #: src/usr/local/www/vpn_openvpn_csc.php:306 -#: src/usr/local/www/vpn_openvpn_server.php:593 +#: src/usr/local/www/vpn_openvpn_server.php:597 msgid "General Information" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:664 +#: src/usr/local/www/vpn_ipsec_phase1.php:660 msgid "Key Exchange version" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:667 +#: src/usr/local/www/vpn_ipsec_phase1.php:663 msgid "" "Select the Internet Key Exchange protocol version to be used. Auto uses " "IKEv2 when initiator, and accepts either IKEv1 or IKEv2 as responder." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:671 +#: src/usr/local/www/vpn_ipsec_phase1.php:667 msgid "Internet Protocol" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:674 +#: src/usr/local/www/vpn_ipsec_phase1.php:670 msgid "Select the Internet Protocol family." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:681 +#: src/usr/local/www/vpn_ipsec_phase1.php:677 msgid "Select the interface for the local endpoint of this phase1 entry." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:689 +#: src/usr/local/www/vpn_ipsec_phase1.php:685 msgid "Enter the public IP address or host name of the remote gateway." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:701 +#: src/usr/local/www/vpn_ipsec_phase1.php:697 msgid "Phase 1 Proposal (Authentication)" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:708 -#: src/usr/local/www/vpn_ipsec_phase1.php:806 -#: src/usr/local/www/vpn_ipsec_phase1.php:813 +#: src/usr/local/www/vpn_ipsec_phase1.php:704 +#: src/usr/local/www/vpn_ipsec_phase1.php:802 +#: src/usr/local/www/vpn_ipsec_phase1.php:809 msgid "Must match the setting chosen on the remote side." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:714 +#: src/usr/local/www/vpn_ipsec_phase1.php:710 msgid "Main" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:712 +#: src/usr/local/www/vpn_ipsec_phase1.php:708 msgid "Negotiation mode" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:715 +#: src/usr/local/www/vpn_ipsec_phase1.php:711 msgid "Aggressive is more flexible, but less secure." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:717 +#: src/usr/local/www/vpn_ipsec_phase1.php:713 msgid "My identifier" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:735 +#: src/usr/local/www/vpn_ipsec_phase1.php:731 msgid "Peer identifier" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:753 +#: src/usr/local/www/vpn_ipsec_phase1.php:749 msgid "" "This is known as the \"group\" setting on some VPN client implementations" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:763 +#: src/usr/local/www/vpn_ipsec_phase1.php:759 msgid "Enter the Pre-Shared Key string." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:767 +#: src/usr/local/www/vpn_ipsec_phase1.php:763 msgid "My Certificate" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:770 +#: src/usr/local/www/vpn_ipsec_phase1.php:766 msgid "Select a certificate previously configured in the Certificate Manager." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:777 +#: src/usr/local/www/vpn_ipsec_phase1.php:773 msgid "" "Select a certificate authority previously configured in the Certificate " "Manager." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:781 +#: src/usr/local/www/vpn_ipsec_phase1.php:777 msgid "Phase 1 Proposal (Algorithms)" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:783 +#: src/usr/local/www/vpn_ipsec_phase1.php:779 #: src/usr/local/www/vpn_openvpn_client.php:634 -#: src/usr/local/www/vpn_openvpn_server.php:776 +#: src/usr/local/www/vpn_openvpn_server.php:780 msgid "Encryption Algorithm" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:803 +#: src/usr/local/www/vpn_ipsec_phase1.php:799 msgid "Hash Algorithm" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:810 +#: src/usr/local/www/vpn_ipsec_phase1.php:806 msgid "DH Group" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:817 +#: src/usr/local/www/vpn_ipsec_phase1.php:813 msgid "Lifetime (Seconds)" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:828 +#: src/usr/local/www/vpn_ipsec_phase1.php:824 msgid "Disable rekey" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:835 +#: src/usr/local/www/vpn_ipsec_phase1.php:831 msgid "Disable Reauth" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:842 +#: src/usr/local/www/vpn_ipsec_phase1.php:838 msgid "Responder Only" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:851 +#: src/usr/local/www/vpn_ipsec_phase1.php:847 msgid "Force" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:849 +#: src/usr/local/www/vpn_ipsec_phase1.php:845 msgid "NAT Traversal" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:852 +#: src/usr/local/www/vpn_ipsec_phase1.php:848 msgid "" "Set this option to enable the use of NAT-T (i.e. the encapsulation of ESP in " "UDP packets) if needed, which can help with clients that are behind " "restrictive firewalls." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:857 +#: src/usr/local/www/vpn_ipsec_phase1.php:853 msgid "MOBIKE" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:860 +#: src/usr/local/www/vpn_ipsec_phase1.php:856 msgid "Set this option to control the use of MOBIKE" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:864 +#: src/usr/local/www/vpn_ipsec_phase1.php:860 msgid "Split connections" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:890 +#: src/usr/local/www/vpn_ipsec_phase1.php:886 msgid "Dead Peer Detection" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:900 +#: src/usr/local/www/vpn_ipsec_phase1.php:896 msgid "Delay between requesting peer acknowledgement." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:904 +#: src/usr/local/www/vpn_ipsec_phase1.php:900 msgid "Max failures" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:907 +#: src/usr/local/www/vpn_ipsec_phase1.php:903 msgid "Number of consecutive failures allowed before disconnect. " msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:134 +#: src/usr/local/www/vpn_ipsec_phase2.php:136 msgid "A valid ikeid must be specified." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:139 +#: src/usr/local/www/vpn_ipsec_phase2.php:141 msgid "Local network type" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:139 +#: src/usr/local/www/vpn_ipsec_phase2.php:141 msgid "Unique Identifier" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:142 +#: src/usr/local/www/vpn_ipsec_phase2.php:144 msgid "Remote network type" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:151 +#: src/usr/local/www/vpn_ipsec_phase2.php:153 msgid "A valid local network bit count must be specified." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:155 +#: src/usr/local/www/vpn_ipsec_phase2.php:157 msgid "A valid local network IP address must be specified." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:157 +#: src/usr/local/www/vpn_ipsec_phase2.php:159 msgid "" "A valid local network IPv4 address must be specified or Mode needs to be " "changed to IPv6" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:159 +#: src/usr/local/www/vpn_ipsec_phase2.php:161 msgid "" "A valid local network IPv6 address must be specified or Mode needs to be " "changed to IPv4" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:170 -#: src/usr/local/www/vpn_ipsec_phase2.php:200 +#: src/usr/local/www/vpn_ipsec_phase2.php:172 +#: src/usr/local/www/vpn_ipsec_phase2.php:202 msgid "Invalid Local Network." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:170 -#: src/usr/local/www/vpn_ipsec_phase2.php:200 +#: src/usr/local/www/vpn_ipsec_phase2.php:172 +#: src/usr/local/www/vpn_ipsec_phase2.php:202 #, php-format msgid "%s has no subnet." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:178 +#: src/usr/local/www/vpn_ipsec_phase2.php:180 msgid "A valid NAT local network bit count must be specified." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:181 +#: src/usr/local/www/vpn_ipsec_phase2.php:183 msgid "" "A network type address cannot be configured for NAT while only an address " "type is selected for local source." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:185 +#: src/usr/local/www/vpn_ipsec_phase2.php:187 msgid "A valid NAT local network IP address must be specified." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:187 +#: src/usr/local/www/vpn_ipsec_phase2.php:189 msgid "" "A valid NAT local network IPv4 address must be specified or Mode needs to be " "changed to IPv6" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:189 +#: src/usr/local/www/vpn_ipsec_phase2.php:191 msgid "" "A valid NAT local network IPv6 address must be specified or Mode needs to be " "changed to IPv4" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:208 +#: src/usr/local/www/vpn_ipsec_phase2.php:210 msgid "A valid remote network bit count must be specified." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:212 +#: src/usr/local/www/vpn_ipsec_phase2.php:214 msgid "A valid remote network IP address must be specified." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:214 +#: src/usr/local/www/vpn_ipsec_phase2.php:216 msgid "" "A valid remote network IPv4 address must be specified or Mode needs to be " "changed to IPv6" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:216 +#: src/usr/local/www/vpn_ipsec_phase2.php:218 msgid "" "A valid remote network IPv6 address must be specified or Mode needs to be " "changed to IPv4" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:242 +#: src/usr/local/www/vpn_ipsec_phase2.php:244 msgid "Phase2 with this Local Network is already defined for mobile clients." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:275 +#: src/usr/local/www/vpn_ipsec_phase2.php:277 msgid "" "Phase2 with this Local/Remote networks combination is already defined for " "this Phase1." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:314 -#: src/usr/local/www/vpn_ipsec_phase2.php:319 +#: src/usr/local/www/vpn_ipsec_phase2.php:316 +#: src/usr/local/www/vpn_ipsec_phase2.php:321 msgid "" "The local and remote networks of a phase 2 entry cannot overlap the outside " "of the tunnel (interface and remote gateway) configured in its phase 1." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:333 +#: src/usr/local/www/vpn_ipsec_phase2.php:335 msgid "At least one encryption algorithm must be selected." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:345 +#: src/usr/local/www/vpn_ipsec_phase2.php:340 msgid "At least one hashing algorithm needs to be selected." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:353 +#: src/usr/local/www/vpn_ipsec_phase2.php:348 msgid "The P2 lifetime must be an integer." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:408 -#: src/usr/local/www/vpn_ipsec_phase2.php:411 +#: src/usr/local/www/vpn_ipsec_phase2.php:403 +#: src/usr/local/www/vpn_ipsec_phase2.php:406 msgid "Edit Phase 2" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:514 +#: src/usr/local/www/vpn_ipsec_phase2.php:509 msgid "Local Network" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:537 +#: src/usr/local/www/vpn_ipsec_phase2.php:532 msgid "NAT/BINAT translation" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:561 +#: src/usr/local/www/vpn_ipsec_phase2.php:556 msgid "" "If NAT/BINAT is required on this network specify the address to be translated" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:565 +#: src/usr/local/www/vpn_ipsec_phase2.php:560 msgid "Remote Network" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:593 +#: src/usr/local/www/vpn_ipsec_phase2.php:588 msgid "Phase 2 Proposal (SA/Key Exchange)" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:600 +#: src/usr/local/www/vpn_ipsec_phase2.php:595 msgid "ESP is encryption, AH is authentication only." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:606 +#: src/usr/local/www/vpn_ipsec_phase2.php:601 msgid "Encryption Algorithms" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:637 +#: src/usr/local/www/vpn_ipsec_phase2.php:632 msgid "" "Use 3DES for best compatibility or for a hardware crypto accelerator card. " "Blowfish is usually the fastest in software encryption." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:644 +#: src/usr/local/www/vpn_ipsec_phase2.php:639 msgid "Hash Algorithms" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:663 +#: src/usr/local/www/vpn_ipsec_phase2.php:658 msgid "PFS key group" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:673 +#: src/usr/local/www/vpn_ipsec_phase2.php:668 #: src/usr/local/www/widgets/widgets/log.widget.php:257 msgid "Seconds" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:681 +#: src/usr/local/www/vpn_ipsec_phase2.php:676 msgid "Automatically ping host" msgstr "" @@ -29710,40 +29460,40 @@ msgid "Client successfully deleted." msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:186 -#: src/usr/local/www/vpn_openvpn_server.php:255 +#: src/usr/local/www/vpn_openvpn_server.php:256 msgid "" "Protocol and IP address families do not match. An IPv6 protocol and an IPv4 " "IP address cannot be selected." msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:188 -#: src/usr/local/www/vpn_openvpn_server.php:257 +#: src/usr/local/www/vpn_openvpn_server.php:258 msgid "" "Protocol and IP address families do not match. An IPv4 protocol and an IPv6 " "IP address cannot be selected." msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:190 -#: src/usr/local/www/vpn_openvpn_server.php:259 +#: src/usr/local/www/vpn_openvpn_server.php:260 msgid "" "An IPv4 protocol was selected, but the selected interface has no IPv4 " "address." msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:192 -#: src/usr/local/www/vpn_openvpn_server.php:261 +#: src/usr/local/www/vpn_openvpn_server.php:262 msgid "" "An IPv6 protocol was selected, but the selected interface has no IPv6 " "address." msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:210 -#: src/usr/local/www/vpn_openvpn_server.php:305 +#: src/usr/local/www/vpn_openvpn_server.php:306 msgid "The specified 'Local port' is in use. Please select another value" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:223 -#: src/usr/local/www/vpn_openvpn_server.php:383 +#: src/usr/local/www/vpn_openvpn_server.php:384 msgid "The field 'Topology' contains an invalid selection" msgstr "" @@ -29756,18 +29506,18 @@ msgid "The bandwidth limit must be a positive numeric value." msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:278 -#: src/usr/local/www/vpn_openvpn_server.php:315 +#: src/usr/local/www/vpn_openvpn_server.php:316 msgid "The field 'Shared Key' does not appear to be valid" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:285 -#: src/usr/local/www/vpn_openvpn_server.php:322 +#: src/usr/local/www/vpn_openvpn_server.php:323 msgid "The field 'TLS Authentication Key' does not appear to be valid" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:296 -#: src/usr/local/www/vpn_openvpn_server.php:396 -#: src/usr/local/www/vpn_openvpn_server.php:762 +#: src/usr/local/www/vpn_openvpn_server.php:397 +#: src/usr/local/www/vpn_openvpn_server.php:766 msgid "Shared key" msgstr "" @@ -29780,14 +29530,14 @@ msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:392 #: src/usr/local/www/vpn_openvpn_client.php:415 #: src/usr/local/www/vpn_openvpn_csc.php:297 -#: src/usr/local/www/vpn_openvpn_server.php:582 +#: src/usr/local/www/vpn_openvpn_server.php:586 msgid "Clients" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:416 #: src/usr/local/www/vpn_openvpn_csc.php:278 #: src/usr/local/www/vpn_openvpn_csc.php:298 -#: src/usr/local/www/vpn_openvpn_server.php:583 +#: src/usr/local/www/vpn_openvpn_server.php:587 msgid "Client Specific Overrides" msgstr "" @@ -29797,17 +29547,17 @@ msgid "" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:435 -#: src/usr/local/www/vpn_openvpn_server.php:604 +#: src/usr/local/www/vpn_openvpn_server.php:608 msgid "Server mode" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:449 -#: src/usr/local/www/vpn_openvpn_server.php:640 +#: src/usr/local/www/vpn_openvpn_server.php:644 msgid "Device mode" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:463 -#: src/usr/local/www/vpn_openvpn_server.php:654 +#: src/usr/local/www/vpn_openvpn_server.php:658 msgid "Local port" msgstr "" @@ -29869,26 +29619,26 @@ msgid "Leave empty when no password is needed" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:553 -#: src/usr/local/www/vpn_openvpn_server.php:669 +#: src/usr/local/www/vpn_openvpn_server.php:673 msgid "Cryptographic Settings" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:557 -#: src/usr/local/www/vpn_openvpn_server.php:673 +#: src/usr/local/www/vpn_openvpn_server.php:677 msgid "TLS authentication" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:575 #: src/usr/local/www/vpn_openvpn_client.php:621 -#: src/usr/local/www/vpn_openvpn_server.php:691 -#: src/usr/local/www/vpn_openvpn_server.php:772 +#: src/usr/local/www/vpn_openvpn_server.php:695 +#: src/usr/local/www/vpn_openvpn_server.php:776 msgid "Paste the shared key here" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:599 #: src/usr/local/www/vpn_openvpn_client.php:605 -#: src/usr/local/www/vpn_openvpn_server.php:716 -#: src/usr/local/www/vpn_openvpn_server.php:722 +#: src/usr/local/www/vpn_openvpn_server.php:720 +#: src/usr/local/www/vpn_openvpn_server.php:726 msgid "Peer Certificate Revocation list" msgstr "" @@ -29897,7 +29647,7 @@ msgid "Auto generate" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:619 -#: src/usr/local/www/vpn_openvpn_server.php:770 +#: src/usr/local/www/vpn_openvpn_server.php:774 msgid "Shared Key" msgstr "" @@ -29906,30 +29656,30 @@ msgid "Client Certificate" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:641 -#: src/usr/local/www/vpn_openvpn_server.php:783 +#: src/usr/local/www/vpn_openvpn_server.php:787 msgid "Auth digest algorithm" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:644 -#: src/usr/local/www/vpn_openvpn_server.php:786 +#: src/usr/local/www/vpn_openvpn_server.php:790 msgid "" "Leave this set to SHA1 unless all clients are set to match. SHA1 is the " "default for OpenVPN. " msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:648 -#: src/usr/local/www/vpn_openvpn_server.php:790 +#: src/usr/local/www/vpn_openvpn_server.php:794 msgid "Hardware Crypto" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:655 #: src/usr/local/www/vpn_openvpn_csc.php:356 -#: src/usr/local/www/vpn_openvpn_server.php:812 +#: src/usr/local/www/vpn_openvpn_server.php:816 msgid "Tunnel Settings" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:659 -#: src/usr/local/www/vpn_openvpn_server.php:816 +#: src/usr/local/www/vpn_openvpn_server.php:820 msgid "IPv4 Tunnel Network" msgstr "" @@ -29941,7 +29691,7 @@ msgid "" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:668 -#: src/usr/local/www/vpn_openvpn_server.php:826 +#: src/usr/local/www/vpn_openvpn_server.php:830 msgid "IPv6 Tunnel Network" msgstr "" @@ -29953,12 +29703,12 @@ msgid "" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:677 -#: src/usr/local/www/vpn_openvpn_server.php:894 +#: src/usr/local/www/vpn_openvpn_server.php:898 msgid "IPv4 Remote network(s)" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:680 -#: src/usr/local/www/vpn_openvpn_server.php:897 +#: src/usr/local/www/vpn_openvpn_server.php:901 msgid "" "IPv4 networks that will be routed through the tunnel, so that a site-to-site " "VPN can be established without manually changing the routing tables. " @@ -29968,12 +29718,12 @@ msgid "" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:686 -#: src/usr/local/www/vpn_openvpn_server.php:903 +#: src/usr/local/www/vpn_openvpn_server.php:907 msgid "IPv6 Remote network(s)" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:689 -#: src/usr/local/www/vpn_openvpn_server.php:906 +#: src/usr/local/www/vpn_openvpn_server.php:910 msgid "" "These are the IPv6 networks that will be routed through the tunnel, so that " "a site-to-site VPN can be established without manually changing the routing " @@ -29994,7 +29744,7 @@ msgid "" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:706 -#: src/usr/local/www/vpn_openvpn_server.php:922 +#: src/usr/local/www/vpn_openvpn_server.php:926 msgid "" "Compress tunnel packets using the LZO algorithm. Adaptive compression will " "dynamically disable compression for a period of time if OpenVPN detects that " @@ -30002,7 +29752,7 @@ msgid "" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:710 -#: src/usr/local/www/vpn_openvpn_server.php:975 +#: src/usr/local/www/vpn_openvpn_server.php:979 msgid "Topology" msgstr "" @@ -30011,12 +29761,12 @@ msgid "Specifies the method used to configure a virtual adapter IP address." msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:717 -#: src/usr/local/www/vpn_openvpn_server.php:928 +#: src/usr/local/www/vpn_openvpn_server.php:932 msgid "Type-of-Service" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:724 -#: src/usr/local/www/vpn_openvpn_server.php:949 +#: src/usr/local/www/vpn_openvpn_server.php:953 msgid "Disable IPv6" msgstr "" @@ -30045,12 +29795,12 @@ msgid "" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:756 -#: src/usr/local/www/vpn_openvpn_server.php:1137 +#: src/usr/local/www/vpn_openvpn_server.php:1148 msgid "Verbosity level" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:759 -#: src/usr/local/www/vpn_openvpn_server.php:1140 +#: src/usr/local/www/vpn_openvpn_server.php:1151 msgid "" "Each level shows all info from the previous levels. Level 3 is recommended " "for a good summary of what's happening without being swamped by output.<br /" @@ -30069,57 +29819,57 @@ msgid "Client specific override successfully deleted." msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:157 -#: src/usr/local/www/vpn_openvpn_server.php:328 +#: src/usr/local/www/vpn_openvpn_server.php:329 msgid "The field 'DNS Server #1' must contain a valid IP address" msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:160 -#: src/usr/local/www/vpn_openvpn_server.php:331 +#: src/usr/local/www/vpn_openvpn_server.php:332 msgid "The field 'DNS Server #2' must contain a valid IP address" msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:163 -#: src/usr/local/www/vpn_openvpn_server.php:334 +#: src/usr/local/www/vpn_openvpn_server.php:335 msgid "The field 'DNS Server #3' must contain a valid IP address" msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:166 -#: src/usr/local/www/vpn_openvpn_server.php:337 +#: src/usr/local/www/vpn_openvpn_server.php:338 msgid "The field 'DNS Server #4' must contain a valid IP address" msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:172 -#: src/usr/local/www/vpn_openvpn_server.php:343 +#: src/usr/local/www/vpn_openvpn_server.php:344 msgid "The field 'NTP Server #1' must contain a valid IP address" msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:175 -#: src/usr/local/www/vpn_openvpn_server.php:346 +#: src/usr/local/www/vpn_openvpn_server.php:347 msgid "The field 'NTP Server #2' must contain a valid IP address" msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:178 -#: src/usr/local/www/vpn_openvpn_server.php:349 +#: src/usr/local/www/vpn_openvpn_server.php:350 msgid "The field 'NTP Server #3' must contain a valid IP address" msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:181 -#: src/usr/local/www/vpn_openvpn_server.php:352 +#: src/usr/local/www/vpn_openvpn_server.php:353 msgid "The field 'NTP Server #4' must contain a valid IP address" msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:188 -#: src/usr/local/www/vpn_openvpn_server.php:359 +#: src/usr/local/www/vpn_openvpn_server.php:360 msgid "The field 'WINS Server #1' must contain a valid IP address" msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:191 -#: src/usr/local/www/vpn_openvpn_server.php:362 +#: src/usr/local/www/vpn_openvpn_server.php:363 msgid "The field 'WINS Server #2' must contain a valid IP address" msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:196 -#: src/usr/local/www/vpn_openvpn_server.php:367 +#: src/usr/local/www/vpn_openvpn_server.php:368 msgid "" "The field 'NetBIOS Data Distribution Server #1' must contain a valid IP " "address" @@ -30161,7 +29911,7 @@ msgid "" msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:360 -#: src/usr/local/www/vpn_openvpn_server.php:1174 +#: src/usr/local/www/vpn_openvpn_server.php:1185 msgid "Tunnel Network" msgstr "" @@ -30226,12 +29976,12 @@ msgid "" msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:402 -#: src/usr/local/www/vpn_openvpn_server.php:868 +#: src/usr/local/www/vpn_openvpn_server.php:872 msgid "Redirect Gateway" msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:409 -#: src/usr/local/www/vpn_openvpn_server.php:956 +#: src/usr/local/www/vpn_openvpn_server.php:960 msgid "Client Settings" msgstr "" @@ -30259,7 +30009,7 @@ msgid "" msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:517 -#: src/usr/local/www/vpn_openvpn_server.php:1073 +#: src/usr/local/www/vpn_openvpn_server.php:1084 msgid "Node Type" msgstr "" @@ -30300,103 +30050,103 @@ msgstr "" msgid "Server successfully deleted." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:271 +#: src/usr/local/www/vpn_openvpn_server.php:272 msgid "" "A Backend for Authentication must be selected if the server mode requires " "User Auth." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:379 +#: src/usr/local/www/vpn_openvpn_server.php:380 msgid "The field 'Concurrent connections' must be numeric." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:389 +#: src/usr/local/www/vpn_openvpn_server.php:390 msgid "The selected certificate is not valid" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:401 +#: src/usr/local/www/vpn_openvpn_server.php:402 msgid "Tunnel network" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:404 +#: src/usr/local/www/vpn_openvpn_server.php:405 msgid "" "Using a tunnel network and server bridge settings together is not allowed." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:408 +#: src/usr/local/www/vpn_openvpn_server.php:409 msgid "Server Bridge DHCP Start and End must both be empty, or defined." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:411 +#: src/usr/local/www/vpn_openvpn_server.php:412 msgid "Server Bridge DHCP Start must be an IPv4 address." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:414 +#: src/usr/local/www/vpn_openvpn_server.php:415 msgid "Server Bridge DHCP End must be an IPv4 address." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:417 +#: src/usr/local/www/vpn_openvpn_server.php:418 msgid "The Server Bridge DHCP range is invalid (start higher than end)." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:600 +#: src/usr/local/www/vpn_openvpn_server.php:604 msgid "" "Set this option to disable this server without removing it from the list." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:625 +#: src/usr/local/www/vpn_openvpn_server.php:629 msgid "Backend for authentication" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:733 -#: src/usr/local/www/vpn_openvpn_server.php:1576 +#: src/usr/local/www/vpn_openvpn_server.php:737 +#: src/usr/local/www/vpn_openvpn_server.php:1591 msgid "" "Warning: The selected server certificate was not created as an SSL Server " "certificate and may not work as expected" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:737 +#: src/usr/local/www/vpn_openvpn_server.php:741 msgid "No Certificates defined. One may be created here: " msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:737 +#: src/usr/local/www/vpn_openvpn_server.php:741 msgid "System > Cert. Manager" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:747 +#: src/usr/local/www/vpn_openvpn_server.php:751 msgid "Server certificate" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:754 +#: src/usr/local/www/vpn_openvpn_server.php:758 msgid "DH Parameter length (bits)" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:799 +#: src/usr/local/www/vpn_openvpn_server.php:803 msgid "Do Not Check" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:797 +#: src/usr/local/www/vpn_openvpn_server.php:801 msgid "Certificate Depth" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:800 +#: src/usr/local/www/vpn_openvpn_server.php:804 msgid "" "When a certificate-based client logs in, do not accept certificates below " "this depth. Useful for denying certificates made with intermediate CAs " "generated from the same CA as the server." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:805 +#: src/usr/local/www/vpn_openvpn_server.php:809 msgid "Strict User-CN Matching" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:808 +#: src/usr/local/www/vpn_openvpn_server.php:812 msgid "" "When authenticating users, enforce a match between the common name of the " "client certificate and the username given at login." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:819 +#: src/usr/local/www/vpn_openvpn_server.php:823 msgid "" "This is the IPv4 virtual network used for private communications between " "this server and client hosts expressed using CIDR (e.g. 10.0.8.0/24). The " @@ -30405,7 +30155,7 @@ msgid "" "(see Address Pool)." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:829 +#: src/usr/local/www/vpn_openvpn_server.php:833 msgid "" "This is the IPv6 virtual network used for private communications between " "this server and client hosts expressed using CIDR (e.g. fe80::/64). The " @@ -30414,15 +30164,15 @@ msgid "" "(see Address Pool)." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:836 +#: src/usr/local/www/vpn_openvpn_server.php:840 msgid "Bridge DHCP" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:843 +#: src/usr/local/www/vpn_openvpn_server.php:847 msgid "Bridge Interface" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:846 +#: src/usr/local/www/vpn_openvpn_server.php:850 msgid "" "The interface to which this TAP instance will be bridged. This is not done " "automatically. This interface must be assigned and the bridge created " @@ -30431,11 +30181,11 @@ msgid "" "Server Bridge DHCP settings below to be ignored." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:852 +#: src/usr/local/www/vpn_openvpn_server.php:856 msgid "Server Bridge DHCP Start" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:855 +#: src/usr/local/www/vpn_openvpn_server.php:859 msgid "" "When using TAP mode as a multi-point server, a DHCP range may optionally be " "supplied to use on the interface to which this TAP instance is bridged. If " @@ -30443,15 +30193,15 @@ msgid "" "the interface setting above will be ignored." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:861 +#: src/usr/local/www/vpn_openvpn_server.php:865 msgid "Server Bridge DHCP End" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:875 +#: src/usr/local/www/vpn_openvpn_server.php:879 msgid "IPv4 Local network(s)" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:878 +#: src/usr/local/www/vpn_openvpn_server.php:882 msgid "" "IPv4 networks that will be accessible from the remote endpoint. Expressed as " "a comma-separated list of one or more CIDR ranges. This may be left blank if " @@ -30459,11 +30209,11 @@ msgid "" "machine. This is generally set to the LAN network." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:885 +#: src/usr/local/www/vpn_openvpn_server.php:889 msgid "IPv6 Local network(s)" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:888 +#: src/usr/local/www/vpn_openvpn_server.php:892 msgid "" "IPv6 networks that will be accessible from the remote endpoint. Expressed as " "a comma-separated list of one or more IP/PREFIX. This may be left blank if " @@ -30471,38 +30221,38 @@ msgid "" "machine. This is generally set to the LAN network." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:912 +#: src/usr/local/www/vpn_openvpn_server.php:916 msgid "Concurrent connections" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:915 +#: src/usr/local/www/vpn_openvpn_server.php:919 msgid "" "Specify the maximum number of clients allowed to concurrently connect to " "this server." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:935 +#: src/usr/local/www/vpn_openvpn_server.php:939 msgid "Inter-client communication" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:942 +#: src/usr/local/www/vpn_openvpn_server.php:946 msgid "Duplicate Connection" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:945 +#: src/usr/local/www/vpn_openvpn_server.php:949 msgid "" "(This is not generally recommended, but may be needed for some scenarios.)" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:961 +#: src/usr/local/www/vpn_openvpn_server.php:965 msgid "Dynamic IP" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:968 +#: src/usr/local/www/vpn_openvpn_server.php:972 msgid "Address Pool" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:978 +#: src/usr/local/www/vpn_openvpn_server.php:982 msgid "" "Specifies the method used to supply a virtual adapter IP address to clients " "when using TUN mode on IPv4.<br />Some clients may require this be set to " @@ -30511,111 +30261,126 @@ msgid "" "require \"net30\"." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:984 +#: src/usr/local/www/vpn_openvpn_server.php:988 msgid "Advanced Client Settings" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1003 +#: src/usr/local/www/vpn_openvpn_server.php:1007 msgid "DNS Server enable" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1010 +#: src/usr/local/www/vpn_openvpn_server.php:1014 msgid "DNS Server 1" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1017 +#: src/usr/local/www/vpn_openvpn_server.php:1021 msgid "DNS Server 2" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1024 +#: src/usr/local/www/vpn_openvpn_server.php:1028 msgid "DNS Server 3" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1031 +#: src/usr/local/www/vpn_openvpn_server.php:1035 msgid "DNS Server 4" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1038 +#: src/usr/local/www/vpn_openvpn_server.php:1042 +msgid "Block Outside DNS" +msgstr "" + +#: src/usr/local/www/vpn_openvpn_server.php:1045 +msgid "" +"Requires Windows 10 and OpenVPN 2.3.9 or later. Only Windows 10 is prone to " +"DNS leakage in this way, other clients will ignore the option as they are " +"not affected." +msgstr "" + +#: src/usr/local/www/vpn_openvpn_server.php:1049 msgid "Force DNS cache update" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1041 +#: src/usr/local/www/vpn_openvpn_server.php:1052 msgid "This is known to kick Windows into recognizing pushed DNS servers." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1045 +#: src/usr/local/www/vpn_openvpn_server.php:1056 msgid "NTP Server enable" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1066 +#: src/usr/local/www/vpn_openvpn_server.php:1077 msgid "NetBIOS enable" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1069 +#: src/usr/local/www/vpn_openvpn_server.php:1080 msgid "" "If this option is not set, all NetBIOS-over-TCP/IP options (including WINS) " "will be disabled." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1076 +#: src/usr/local/www/vpn_openvpn_server.php:1087 msgid "" "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)" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1081 +#: src/usr/local/www/vpn_openvpn_server.php:1092 msgid "Scope ID" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1084 +#: src/usr/local/www/vpn_openvpn_server.php:1095 msgid "" "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" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1090 +#: src/usr/local/www/vpn_openvpn_server.php:1101 msgid "WINS server enable" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1097 +#: src/usr/local/www/vpn_openvpn_server.php:1108 msgid "WINS Server 1" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1104 +#: src/usr/local/www/vpn_openvpn_server.php:1115 msgid "WINS Server 2" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1111 +#: src/usr/local/www/vpn_openvpn_server.php:1122 msgid "Enable custom port " msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1118 +#: src/usr/local/www/vpn_openvpn_server.php:1129 msgid "Management port" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1121 +#: src/usr/local/www/vpn_openvpn_server.php:1132 msgid "" "The default port is 166. Specify a different port if the client machines " "need to select from multiple OpenVPN links." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1132 +#: src/usr/local/www/vpn_openvpn_server.php:1143 msgid "" "Enter any additional options to add to the OpenVPN server configuration " "here, separated by semicolon.<br />EXAMPLE: push \"route 10.0.0.0 " "255.255.255.0\"" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1168 +#: src/usr/local/www/vpn_openvpn_server.php:1179 msgid "OpenVPN Servers" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1173 +#: src/usr/local/www/vpn_openvpn_server.php:1184 msgid "Protocol / Port" msgstr "" +#: src/usr/local/www/vpn_openvpn_server.php:1186 +msgid "Crypto" +msgstr "" + #: src/usr/local/www/widgets/include/captiveportal.inc:22 msgid "Captive Portal Status" msgstr "" @@ -30685,24 +30450,24 @@ msgstr "" msgid "Updated gateways widget settings via dashboard." msgstr "" -#: src/usr/local/www/widgets/widgets/gateways.widget.php:103 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:105 msgid "Gateway IP" msgstr "" -#: src/usr/local/www/widgets/widgets/gateways.widget.php:112 #: src/usr/local/www/widgets/widgets/gateways.widget.php:114 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:116 msgid "Save Settings" msgstr "" -#: src/usr/local/www/widgets/widgets/gateways.widget.php:220 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:224 msgid "Packetloss" msgstr "" -#: src/usr/local/www/widgets/widgets/gateways.widget.php:223 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:227 msgid "Latency" msgstr "" -#: src/usr/local/www/widgets/widgets/gateways.widget.php:227 +#: src/usr/local/www/widgets/widgets/gateways.widget.php:231 msgid "Online <br/>(unmonitored)" msgstr "" @@ -30716,15 +30481,15 @@ msgid "" "a>." msgstr "" -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:89 +#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:88 msgid "ok" msgstr "" -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:143 +#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:141 msgid "Retrieving package data" msgstr "" -#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:148 +#: src/usr/local/www/widgets/widgets/installed_packages.widget.php:146 msgid "Packages may be added/managed here: " msgstr "" @@ -30752,7 +30517,7 @@ msgstr "" msgid "Errors Out" msgstr "" -#: src/usr/local/www/widgets/widgets/interface_statistics.widget.php:89 +#: src/usr/local/www/widgets/widgets/interface_statistics.widget.php:91 msgid "Retrieving interface data" msgstr "" @@ -30760,40 +30525,40 @@ msgstr "" msgid "Mobile" msgstr "" -#: src/usr/local/www/widgets/widgets/ipsec.widget.php:189 +#: src/usr/local/www/widgets/widgets/ipsec.widget.php:190 msgid "Active Tunnels" msgstr "" -#: src/usr/local/www/widgets/widgets/ipsec.widget.php:190 +#: src/usr/local/www/widgets/widgets/ipsec.widget.php:191 msgid "Inactive Tunnels" msgstr "" -#: src/usr/local/www/widgets/widgets/ipsec.widget.php:191 +#: src/usr/local/www/widgets/widgets/ipsec.widget.php:192 msgid "Mobile Users" msgstr "" -#: src/usr/local/www/widgets/widgets/ipsec.widget.php:195 +#: src/usr/local/www/widgets/widgets/ipsec.widget.php:196 msgid "Retrieving overview data " msgstr "" -#: src/usr/local/www/widgets/widgets/ipsec.widget.php:210 +#: src/usr/local/www/widgets/widgets/ipsec.widget.php:211 msgid "Retrieving tunnel data " msgstr "" -#: src/usr/local/www/widgets/widgets/ipsec.widget.php:226 +#: src/usr/local/www/widgets/widgets/ipsec.widget.php:227 msgid "Retrieving mobile data " msgstr "" -#: src/usr/local/www/widgets/widgets/ipsec.widget.php:233 +#: src/usr/local/www/widgets/widgets/ipsec.widget.php:234 msgid "There are no configured IPsec Tunnels" msgstr "" -#: src/usr/local/www/widgets/widgets/ipsec.widget.php:234 +#: src/usr/local/www/widgets/widgets/ipsec.widget.php:235 msgid "IPsec can be configured <a href=\"vpn_ipsec.php\">here</a>." msgstr "" #: src/usr/local/www/widgets/widgets/log.widget.php:69 -msgid "Saved Filter Log Entries via Dashboard" +msgid "Saved Filter Log Entries via Dashboard." msgstr "" #: src/usr/local/www/widgets/widgets/log.widget.php:101 @@ -30828,63 +30593,67 @@ msgstr "" msgid "Update interval" msgstr "" -#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:52 +#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:56 msgid "stratum" msgstr "" -#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:141 +#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:145 msgid "Server Time" msgstr "" -#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:153 +#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:157 msgid "Sync Source" msgstr "" -#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:156 +#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:160 msgid "No active peers available" msgstr "" -#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:164 +#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:168 msgid "Clock location" msgstr "" -#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:178 +#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:182 msgid "in view" msgstr "" -#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:180 +#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:184 msgid "in use" msgstr "" -#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:458 +#: src/usr/local/www/widgets/widgets/ntp_status.widget.php:462 msgid "Updating..." msgstr "" -#: src/usr/local/www/widgets/widgets/openvpn.widget.php:80 -#: src/usr/local/www/widgets/widgets/openvpn.widget.php:136 -#: src/usr/local/www/widgets/widgets/openvpn.widget.php:192 +#: src/usr/local/www/widgets/widgets/openvpn.widget.php:66 +#: src/usr/local/www/widgets/widgets/openvpn.widget.php:124 +#: src/usr/local/www/widgets/widgets/openvpn.widget.php:182 msgid "Name/Time" msgstr "" -#: src/usr/local/www/widgets/widgets/openvpn.widget.php:81 +#: src/usr/local/www/widgets/widgets/openvpn.widget.php:67 msgid "Real/Virtual IP" msgstr "" -#: src/usr/local/www/widgets/widgets/openvpn.widget.php:137 -#: src/usr/local/www/widgets/widgets/openvpn.widget.php:193 +#: src/usr/local/www/widgets/widgets/openvpn.widget.php:125 +#: src/usr/local/www/widgets/widgets/openvpn.widget.php:183 msgid "Remote/Virtual IP" msgstr "" -#: src/usr/local/www/widgets/widgets/openvpn.widget.php:241 +#: src/usr/local/www/widgets/widgets/openvpn.widget.php:232 msgid "No OpenVPN instances defined" msgstr "" +#: src/usr/local/www/widgets/widgets/picture.widget.php:57 +msgid "Picture widget saved via Dashboard." +msgstr "" + #: src/usr/local/www/widgets/widgets/picture.widget.php:73 msgid "New picture:" msgstr "" #: src/usr/local/www/widgets/widgets/rss.widget.php:33 -msgid "Saved RSS Widget feed via Dashboard" +msgid "Saved RSS Widget feed via Dashboard." msgstr "" #: src/usr/local/www/widgets/widgets/rss.widget.php:127 @@ -30904,7 +30673,7 @@ msgid "Content limit" msgstr "" #: src/usr/local/www/widgets/widgets/services_status.widget.php:65 -msgid "Saved Service Status Filter via Dashboard" +msgid "Saved Service Status Filter via Dashboard." msgstr "" #: src/usr/local/www/widgets/widgets/services_status.widget.php:106 @@ -30923,127 +30692,123 @@ msgstr "" msgid "Ident" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:42 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:43 msgid "<i>Unable to check for updates</i>" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:49 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:50 msgid "<i>Error in version information</i>" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:60 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:61 msgid "Version " msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:61 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:62 msgid "is available." msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:67 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:68 msgid "The system is on the latest version." msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:70 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:71 msgid "The system is on a later version than<br />the official release." msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:73 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:74 msgid "<i>Error comparing installed version<br />with latest available</i>" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:95 -msgid "built on" -msgstr "" - -#: src/usr/local/www/widgets/widgets/system_information.widget.php:102 -msgid "Obtaining update status " +#: src/usr/local/www/widgets/widgets/system_information.widget.php:104 +msgid "Unknown system" msgstr "" #: src/usr/local/www/widgets/widgets/system_information.widget.php:108 -msgid "Platform" +msgid "Serial: " msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:126 -msgid "NanoBSD Boot Slice" +#: src/usr/local/www/widgets/widgets/system_information.widget.php:117 +msgid "built on" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:130 -msgid "Next Boot" +#: src/usr/local/www/widgets/widgets/system_information.widget.php:124 +msgid "Obtaining update status " msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:137 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:129 msgid "CPU Type" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:144 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:136 msgid "CPUs" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:151 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:143 msgid "Hardware crypto" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:160 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:152 msgid "Current date/time" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:164 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:156 msgid "DNS server(s)" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:178 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:170 msgid "Last config change" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:183 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:175 msgid "State table size" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:193 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:185 msgid "Show states" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:197 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:189 msgid "MBUF Usage" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:212 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:204 msgid "Temperature" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:224 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:216 msgid "Load average" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:226 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:218 msgid "Last 1, 5 and 15 minutes" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:230 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:222 msgid "CPU usage" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:236 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:228 msgid "(Updating in 10 seconds)" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:240 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:232 msgid "Memory usage" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:253 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:245 msgid "SWAP usage" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:267 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:259 msgid "Disk usage" msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:273 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:265 msgid " of " msgstr "" -#: src/usr/local/www/widgets/widgets/system_information.widget.php:273 +#: src/usr/local/www/widgets/widgets/system_information.widget.php:265 msgid "in RAM" msgstr "" @@ -31099,28 +30864,24 @@ msgstr "" msgid "section" msgstr "" -#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:72 +#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:116 msgid "Updated traffic graph settings via dashboard." msgstr "" -#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:132 +#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:379 msgid "Show graphs" msgstr "" -#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:143 -msgid "Default Autoscale" -msgstr "" - -#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:147 -msgid "Up" +#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:396 +msgid "Refresh Interval" msgstr "" -#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:151 -msgid "Follow" +#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:403 +msgid "Inverse" msgstr "" -#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:157 -msgid "Refresh Interval" +#: src/usr/local/www/widgets/widgets/traffic_graphs.widget.php:420 +msgid "Unit Size" msgstr "" #: src/usr/local/www/widgets/widgets/wake_on_lan.widget.php:39 @@ -31273,82 +31034,20 @@ msgstr "" msgid "The same interface cannot be selected twice on local interfaces." msgstr "" -#: src/usr/local/www/xmlrpc.php:59 -msgid "Authentication failed" -msgstr "" - -#: src/usr/local/www/xmlrpc.php:70 -msgid "" -"XMLRPC wrapper for eval(). This method must be called with two parameters: a " -"string containing the local system\\'s password followed by the PHP code to " -"evaluate." -msgstr "" - -#: src/usr/local/www/xmlrpc.php:102 -msgid "" -"XMLRPC wrapper for mwexec(). This method must be called with two parameters: " -"a string containing the local system\\'s password followed by an shell " -"command to execute." +#: src/usr/local/www/xmlrpc.php:66 +msgid "Authentication failed: Invalid username or password" msgstr "" -#: src/usr/local/www/xmlrpc.php:126 -msgid "" -"XMLRPC wrapper for backup_config_section. This method must be called with " -"two parameters: a string containing the local system\\'s password followed " -"by an array containing the keys to be backed up." +#: src/usr/local/www/xmlrpc.php:83 +msgid "Authentication failed: not enough privileges" msgstr "" -#: src/usr/local/www/xmlrpc.php:154 -msgid "" -"XMLRPC wrapper for restore_config_section. This method must be called with " -"two parameters: a string containing the local system\\'s password and an " -"array to merge into the system\\'s config. This function returns true upon " -"completion." -msgstr "" - -#: src/usr/local/www/xmlrpc.php:230 src/usr/local/www/xmlrpc.php:325 -#: src/usr/local/www/xmlrpc.php:356 +#: src/usr/local/www/xmlrpc.php:302 src/usr/local/www/xmlrpc.php:429 +#: src/usr/local/www/xmlrpc.php:458 #, php-format msgid "Merged in config (%s sections) from XMLRPC client." msgstr "" -#: src/usr/local/www/xmlrpc.php:301 -msgid "" -"XMLRPC wrapper for merging package sections. This method must be called with " -"two parameters: a string containing the local system\\'s password and an " -"array to merge into the system\\'s config. This function returns true upon " -"completion." -msgstr "" - -#: src/usr/local/www/xmlrpc.php:331 -msgid "" -"XMLRPC wrapper for merge_config_section. This method must be called with two " -"parameters: a string containing the local system\\'s password and an array " -"to merge into the system\\'s config. This function returns true upon " -"completion." -msgstr "" - -#: src/usr/local/www/xmlrpc.php:361 -msgid "" -"Basic XMLRPC wrapper for filter_configure. This method must be called with " -"one parameter: a string containing the local system\\'s password. This " -"function returns true upon completion." -msgstr "" - -#: src/usr/local/www/xmlrpc.php:418 -msgid "Basic XMLRPC wrapper for configuring CARP interfaces." -msgstr "" - -#: src/usr/local/www/xmlrpc.php:445 -msgid "" -"Basic XMLRPC wrapper for host_firmware_version. This function will return " -"the output of host_firmware_version upon completion." -msgstr "" - -#: src/usr/local/www/xmlrpc.php:466 -msgid "Basic XMLRPC wrapper for rc.reboot." -msgstr "" - #: src/etc/inc/pfsense-utils.inc:288 msgid "Manage Log" msgstr "" @@ -31381,43 +31080,37 @@ msgstr "" msgid "Borrow from other queues when available" msgstr "" -#: src/etc/inc/shaper.inc:3819 +#: src/etc/inc/shaper.inc:3821 msgid "Enable limiter and its children" msgstr "" -#: src/etc/inc/shaper.inc:4132 +#: src/etc/inc/shaper.inc:4134 msgid "Enable this queue" msgstr "" -#: src/usr/local/www/diag_backup.php:605 +#: src/usr/local/www/diag_backup.php:560 msgid "Do not backup package information." msgstr "" -#: src/usr/local/www/diag_backup.php:612 +#: src/usr/local/www/diag_backup.php:567 msgid "" "Do not backup RRD data (NOTE: RRD Data can consume 4+ megabytes of config." "xml space!)" msgstr "" -#: src/usr/local/www/diag_backup.php:619 +#: src/usr/local/www/diag_backup.php:574 msgid "Encrypt this configuration file." msgstr "" -#: src/usr/local/www/diag_backup.php:666 +#: src/usr/local/www/diag_backup.php:621 msgid "Configuration file is encrypted." msgstr "" -#: src/usr/local/www/diag_nanobsd.php:221 -msgid "" -"These options have been relocated to the <a href=\"system_advanced_misc.php" -"\">System > Advanced, Miscellaneous</a> tab." -msgstr "" - -#: src/usr/local/www/diag_packet_capture.php:287 +#: src/usr/local/www/diag_packet_capture.php:286 msgid "Enable promiscuous mode" msgstr "" -#: src/usr/local/www/diag_packet_capture.php:360 +#: src/usr/local/www/diag_packet_capture.php:359 msgid "Do reverse DNS lookup" msgstr "" @@ -31476,8 +31169,8 @@ msgstr "" #: src/usr/local/www/firewall_nat_1to1_edit.php:369 #: src/usr/local/www/firewall_nat_edit.php:635 #: src/usr/local/www/firewall_nat_npt_edit.php:192 -#: src/usr/local/www/firewall_nat_out_edit.php:419 -#: src/usr/local/www/firewall_rules_edit.php:1120 +#: src/usr/local/www/firewall_nat_out_edit.php:434 +#: src/usr/local/www/firewall_rules_edit.php:1115 msgid "Disable this rule" msgstr "" @@ -31489,7 +31182,7 @@ msgstr "" #: src/usr/local/www/firewall_nat_1to1_edit.php:454 #: src/usr/local/www/firewall_nat_npt_edit.php:207 #: src/usr/local/www/firewall_nat_npt_edit.php:222 -#: src/usr/local/www/firewall_nat_out_edit.php:525 +#: src/usr/local/www/firewall_nat_out_edit.php:540 msgid "Not" msgstr "" @@ -31499,7 +31192,7 @@ msgstr "" #: src/usr/local/www/firewall_nat_edit.php:710 #: src/usr/local/www/firewall_nat_edit.php:777 -#: src/usr/local/www/firewall_rules_edit.php:1267 +#: src/usr/local/www/firewall_rules_edit.php:1262 msgid "Invert match." msgstr "" @@ -31507,52 +31200,52 @@ msgstr "" msgid "Do not automatically sync to other CARP members" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:426 +#: src/usr/local/www/firewall_nat_out_edit.php:441 msgid "" "Enabling this option will disable NAT for traffic matching this rule and " "stop processing Outbound NAT rules" msgstr "" -#: src/usr/local/www/firewall_nat_out_edit.php:587 +#: src/usr/local/www/firewall_nat_out_edit.php:609 msgid "Static port" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1129 +#: src/usr/local/www/firewall_rules_edit.php:1124 msgid "Apply the action immediately on match." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1147 +#: src/usr/local/www/firewall_rules_edit.php:1142 msgid "" "<span class=\"help-block\">This is associated with a NAT rule.<br/>Editing " "the interface, protocol, source, or destination of associated filter rules " "is not permitted." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1397 +#: src/usr/local/www/firewall_rules_edit.php:1385 msgid "Log packets that are handled by this rule" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1447 +#: src/usr/local/www/firewall_rules_edit.php:1435 msgid "" "Allow packets with IP options to pass. Otherwise they are blocked by " "default. This is usually only seen with multicast traffic." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1455 +#: src/usr/local/www/firewall_rules_edit.php:1443 msgid "Disable auto generated reply-to for this rule." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1533 +#: src/usr/local/www/firewall_rules_edit.php:1521 msgid "Prevent states created by this rule to be sync'ed over pfsync." msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1553 +#: src/usr/local/www/firewall_rules_edit.php:1541 msgid "" "Prevent the rule on Master from automatically syncing to other CARP members" msgstr "" -#: src/usr/local/www/firewall_rules_edit.php:1687 -#: src/usr/local/www/firewall_rules_edit.php:1694 +#: src/usr/local/www/firewall_rules_edit.php:1675 +#: src/usr/local/www/firewall_rules_edit.php:1682 msgid "<b>" msgstr "" @@ -31562,110 +31255,114 @@ msgid "" "expands to 256 entries.) " msgstr "" -#: src/usr/local/www/interfaces.php:1688 +#: src/usr/local/www/interfaces.php:1691 msgid "Enable interface" msgstr "" -#: src/usr/local/www/interfaces.php:1836 src/usr/local/www/interfaces.php:3142 +#: src/usr/local/www/interfaces.php:1839 src/usr/local/www/interfaces.php:3150 msgid "Default gateway" msgstr "" -#: src/usr/local/www/interfaces.php:1901 src/usr/local/www/interfaces.php:2084 +#: src/usr/local/www/interfaces.php:1904 src/usr/local/www/interfaces.php:2087 msgid "Configuration Override" msgstr "" -#: src/usr/local/www/interfaces.php:1982 +#: src/usr/local/www/interfaces.php:1985 msgid "FreeBSD default" msgstr "" -#: src/usr/local/www/interfaces.php:1998 +#: src/usr/local/www/interfaces.php:2001 msgid "pfSense Default" msgstr "" -#: src/usr/local/www/interfaces.php:2006 +#: src/usr/local/www/interfaces.php:2009 msgid "Saved Cfg" msgstr "" -#: src/usr/local/www/interfaces.php:2093 +#: src/usr/local/www/interfaces.php:2096 msgid "Request a IPv6 prefix/information through the IPv4 connectivity link" msgstr "" -#: src/usr/local/www/interfaces.php:2100 +#: src/usr/local/www/interfaces.php:2103 msgid "Only request an IPv6 prefix, do not request an IPv6 address" msgstr "" -#: src/usr/local/www/interfaces.php:2114 +#: src/usr/local/www/interfaces.php:2117 msgid "" "Send an IPv6 prefix hint to indicate the desired prefix size for delegation" msgstr "" -#: src/usr/local/www/interfaces.php:2121 +#: src/usr/local/www/interfaces.php:2124 msgid "Start DHCP6 client in debug mode" msgstr "" -#: src/usr/local/www/interfaces.php:2145 +#: src/usr/local/www/interfaces.php:2130 +msgid "Required by some ISPs, especially those not using PPPoE" +msgstr "" + +#: src/usr/local/www/interfaces.php:2153 msgid "Exchange Information Only" msgstr "" -#: src/usr/local/www/interfaces.php:2181 +#: src/usr/local/www/interfaces.php:2189 msgid "Non-Temporary Address Allocation" msgstr "" -#: src/usr/local/www/interfaces.php:2221 +#: src/usr/local/www/interfaces.php:2229 msgid "Prefix Delegation " msgstr "" -#: src/usr/local/www/interfaces.php:2563 src/usr/local/www/interfaces.php:2693 +#: src/usr/local/www/interfaces.php:2571 src/usr/local/www/interfaces.php:2701 msgid "Enable Dial-On-Demand mode " msgstr "" -#: src/usr/local/www/interfaces.php:2620 +#: src/usr/local/www/interfaces.php:2628 msgid "Reset at each month (\"0 0 1 * *\")" msgstr "" -#: src/usr/local/www/interfaces.php:2628 +#: src/usr/local/www/interfaces.php:2636 msgid "Reset at each week (\"0 0 * * 0\")" msgstr "" -#: src/usr/local/www/interfaces.php:2636 +#: src/usr/local/www/interfaces.php:2644 msgid "Reset at each day (\"0 0 * * *\")" msgstr "" -#: src/usr/local/www/interfaces.php:2644 +#: src/usr/local/www/interfaces.php:2652 msgid "Reset at each hour (\"0 * * * *\")" msgstr "" -#: src/usr/local/www/interfaces.php:2731 +#: src/usr/local/www/interfaces.php:2739 msgid "" "Preserve common wireless configuration through interface deletions and " "reassignments." msgstr "" -#: src/usr/local/www/interfaces.php:2931 +#: src/usr/local/www/interfaces.php:2939 msgid "" "Allow packets to pass between wireless clients directly when operating as an " "access point" msgstr "" -#: src/usr/local/www/interfaces.php:2939 +#: src/usr/local/www/interfaces.php:2947 msgid "Force the card to use WME (wireless QoS)" msgstr "" -#: src/usr/local/www/interfaces.php:2947 +#: src/usr/local/www/interfaces.php:2955 msgid "" "Disable broadcasting of the SSID for this network (This may cause problems " "for some clients, and the SSID may still be discovered by other means.)" msgstr "" -#: src/usr/local/www/interfaces.php:2960 +#: src/usr/local/www/interfaces.php:2968 msgid "Enable WPA" msgstr "" -#: src/usr/local/www/interfaces.php:3012 +#: src/usr/local/www/interfaces.php:3020 msgid "Force the AP to rekey whenever a client disassociates" msgstr "" -#: src/usr/local/www/interfaces.php:3024 +#: src/usr/local/www/interfaces.php:3032 msgid "Enable 802.1X authentication" msgstr "" @@ -31689,55 +31386,55 @@ msgid "" "the local tunnel address" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:695 +#: src/usr/local/www/interfaces_ppps_edit.php:715 msgid "Enable persistent logging of connection uptime. " msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:712 +#: src/usr/local/www/interfaces_ppps_edit.php:733 msgid "Configure NULL service name" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:767 +#: src/usr/local/www/interfaces_ppps_edit.php:789 msgid "Monthly (0 0 1 * *)" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:775 +#: src/usr/local/www/interfaces_ppps_edit.php:797 msgid "Weekly (0 0 * * 0)" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:783 +#: src/usr/local/www/interfaces_ppps_edit.php:805 msgid "Daily (0 0 * * *)" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:791 +#: src/usr/local/www/interfaces_ppps_edit.php:813 msgid "Hourly (0 * * * *)" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:820 +#: src/usr/local/www/interfaces_ppps_edit.php:842 msgid "Enable Dial-on-Demand mode. " msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:837 +#: src/usr/local/www/interfaces_ppps_edit.php:859 msgid "Disable vjcomp (compression, auto-negotiated by default)." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:847 +#: src/usr/local/www/interfaces_ppps_edit.php:869 msgid "Disable tcpmssfix (enabled by default)." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:858 +#: src/usr/local/www/interfaces_ppps_edit.php:880 msgid "Disable shortseq (auto-negotiated by default)." msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:866 +#: src/usr/local/www/interfaces_ppps_edit.php:888 msgid "Disable ACF compression (auto-negotiated by default)" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:873 +#: src/usr/local/www/interfaces_ppps_edit.php:895 msgid "Disable Protocol compression (auto-negotiated by default)" msgstr "" -#: src/usr/local/www/interfaces_ppps_edit.php:919 +#: src/usr/local/www/interfaces_ppps_edit.php:941 msgid "<span id=\"linkparamhelp\">" msgstr "" @@ -31870,48 +31567,52 @@ msgstr "" msgid "Disable HTTPS Forwards" msgstr "" -#: src/usr/local/www/services_captiveportal_vouchers.php:482 +#: src/usr/local/www/services_captiveportal_vouchers.php:451 msgid "Enable the creation, generation and activation of rolls with vouchers" msgstr "" -#: src/usr/local/www/services_dhcp.php:768 +#: src/usr/local/www/services_dhcp.php:774 +msgid "Ignore BOOTP queries" +msgstr "" + +#: src/usr/local/www/services_dhcp.php:781 msgid "Only the clients defined below will get DHCP leases from this server." msgstr "" -#: src/usr/local/www/services_dhcp.php:775 +#: src/usr/local/www/services_dhcp.php:788 msgid "Denied clients will be ignored rather than rejected." msgstr "" -#: src/usr/local/www/services_dhcp.php:947 +#: src/usr/local/www/services_dhcp.php:960 msgid "Enable Static ARP entries" msgstr "" -#: src/usr/local/www/services_dhcp.php:954 +#: src/usr/local/www/services_dhcp.php:967 msgid "Change DHCP display lease time from UTC to local time" msgstr "" -#: src/usr/local/www/services_dhcp.php:961 +#: src/usr/local/www/services_dhcp.php:974 msgid "Enable RRD statistics graphs" msgstr "" -#: src/usr/local/www/services_dhcp.php:984 +#: src/usr/local/www/services_dhcp.php:997 msgid "Enable registration of DHCP client names in DNS" msgstr "" -#: src/usr/local/www/services_dhcp.php:1133 +#: src/usr/local/www/services_dhcp.php:1146 msgid "Enables network booting" msgstr "" -#: src/usr/local/www/services_dhcp.php:1194 +#: src/usr/local/www/services_dhcp.php:1207 msgid "<div class=\"alert alert-info\"> " msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:464 +#: src/usr/local/www/services_dhcp_edit.php:471 msgid "Create an ARP Table Static Entry for this MAC & IP Address pair." msgstr "" -#: src/usr/local/www/services_dhcp_edit.php:577 -#: src/usr/local/www/services_dhcpv6.php:742 +#: src/usr/local/www/services_dhcp_edit.php:584 +#: src/usr/local/www/services_dhcpv6.php:737 msgid "Enable registration of DHCP client names in DNS." msgstr "" @@ -31924,27 +31625,27 @@ msgstr "" msgid "Append circuit ID and agent ID to requests" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:570 +#: src/usr/local/www/services_dhcpv6.php:565 msgid "Enable DHCPv6 server on interface " msgstr "" -#: src/usr/local/www/services_dhcpv6.php:588 +#: src/usr/local/www/services_dhcpv6.php:583 msgid " bits" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:593 +#: src/usr/local/www/services_dhcpv6.php:588 msgid " to " msgstr "" -#: src/usr/local/www/services_dhcpv6.php:719 +#: src/usr/local/www/services_dhcpv6.php:714 msgid "Change DHCPv6 display lease time from UTC to local time" msgstr "" -#: src/usr/local/www/services_dhcpv6.php:789 +#: src/usr/local/www/services_dhcpv6.php:784 msgid "Add reverse dynamic DNS entries." msgstr "" -#: src/usr/local/www/services_dhcpv6.php:867 +#: src/usr/local/www/services_dhcpv6.php:862 msgid "Enable Network Booting" msgstr "" @@ -32158,7 +31859,7 @@ msgstr "" msgid "AAAA (IPv6)" msgstr "" -#: src/usr/local/www/services_router_advertisements.php:452 +#: src/usr/local/www/services_router_advertisements.php:447 msgid "Use same settings as DHCPv6 server" msgstr "" @@ -32269,133 +31970,149 @@ msgid "Formatted" msgstr "" #: src/usr/local/www/status_logs_common.inc:885 -#: src/usr/local/www/status_logs_settings.php:275 +#: src/usr/local/www/status_logs_settings.php:283 msgid "Log errors from the web server process" msgstr "" #: src/usr/local/www/status_logs_common.inc:896 -#: src/usr/local/www/status_logs_settings.php:247 +#: src/usr/local/www/status_logs_settings.php:255 msgid "Log packets matched from the default block rules in the ruleset" msgstr "" #: src/usr/local/www/status_logs_common.inc:903 -#: src/usr/local/www/status_logs_settings.php:254 +#: src/usr/local/www/status_logs_settings.php:262 msgid "Log packets matched from the default pass rules put in the ruleset" msgstr "" #: src/usr/local/www/status_logs_common.inc:910 -#: src/usr/local/www/status_logs_settings.php:261 +#: src/usr/local/www/status_logs_settings.php:269 msgid "Log packets blocked by 'Block Bogon Networks' rules" msgstr "" #: src/usr/local/www/status_logs_common.inc:917 -#: src/usr/local/www/status_logs_settings.php:268 +#: src/usr/local/www/status_logs_settings.php:276 msgid "Log packets blocked by 'Block Private Networks' rules" msgstr "" -#: src/usr/local/www/status_logs_settings.php:224 +#: src/usr/local/www/status_logs_settings.php:232 msgid "Show log entries in reverse order (newest entries on top)" msgstr "" -#: src/usr/local/www/status_logs_settings.php:282 +#: src/usr/local/www/status_logs_settings.php:290 msgid "Show raw filter logs" msgstr "" -#: src/usr/local/www/status_logs_settings.php:289 +#: src/usr/local/www/status_logs_settings.php:297 msgid "Enable verbose logging (Default is terse logging)" msgstr "" -#: src/usr/local/www/status_logs_settings.php:308 +#: src/usr/local/www/status_logs_settings.php:316 msgid "Disable writing log files to the local disk" msgstr "" -#: src/usr/local/www/status_logs_settings.php:326 +#: src/usr/local/www/status_logs_settings.php:334 msgid "Send log messages to remote syslog server" msgstr "" -#: src/usr/local/www/status_logs_settings.php:381 +#: src/usr/local/www/status_logs_settings.php:389 msgid "Everything" msgstr "" -#: src/usr/local/www/status_logs_settings.php:388 +#: src/usr/local/www/status_logs_settings.php:396 msgid "System Events" msgstr "" -#: src/usr/local/www/status_logs_settings.php:395 +#: src/usr/local/www/status_logs_settings.php:403 msgid "Firewall Events" msgstr "" -#: src/usr/local/www/status_logs_settings.php:402 -msgid "DHCP service events" +#: src/usr/local/www/status_logs_settings.php:410 +msgid "DNS Events (Resolver/unbound, Forwarder/dnsmasq, filterdns)" +msgstr "" + +#: src/usr/local/www/status_logs_settings.php:417 +msgid "DHCP Events (DHCP Daemon, DHCP Relay, DHCP Client)" +msgstr "" + +#: src/usr/local/www/status_logs_settings.php:424 +msgid "PPP Events (PPPoE WAN Client, L2TP WAN Client, PPTP WAN Client)" +msgstr "" + +#: src/usr/local/www/status_logs_settings.php:431 +msgid "Captive Portal Events" +msgstr "" + +#: src/usr/local/www/status_logs_settings.php:438 +msgid "VPN Events (IPsec, OpenVPN, L2TP, PPPoE Server)" msgstr "" -#: src/usr/local/www/status_logs_settings.php:409 -msgid "Portal Auth events" +#: src/usr/local/www/status_logs_settings.php:445 +msgid "Gateway Monitor Events" msgstr "" -#: src/usr/local/www/status_logs_settings.php:416 -msgid "VPN (PPTP, IPsec, OpenVPN) events" +#: src/usr/local/www/status_logs_settings.php:452 +msgid "Routing Daemon Events (RADVD, UPnP, RIP, OSPF, BGP)" msgstr "" -#: src/usr/local/www/status_logs_settings.php:423 -msgid "Gateway Monitor events" +#: src/usr/local/www/status_logs_settings.php:459 +msgid "Server Load Balancer Events (relayd)" msgstr "" -#: src/usr/local/www/status_logs_settings.php:430 -msgid "Server Load Balancer events" +#: src/usr/local/www/status_logs_settings.php:466 +msgid "Network Time Protocol Events (NTP Daemon, NTP Client)" msgstr "" -#: src/usr/local/www/status_logs_settings.php:437 -msgid "Wireless events" +#: src/usr/local/www/status_logs_settings.php:473 +msgid "Wireless Events (hostapd)" msgstr "" -#: src/usr/local/www/system.php:424 +#: src/usr/local/www/system.php:431 msgid "Allow DNS server list to be overridden by DHCP/PPP on WAN" msgstr "" -#: src/usr/local/www/system.php:434 +#: src/usr/local/www/system.php:441 msgid "Do not use the DNS Forwarder as a DNS server for the firewall" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:366 +#: src/usr/local/www/system_advanced_admin.php:364 msgid "Disable webConfigurator redirect rule" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:375 +#: src/usr/local/www/system_advanced_admin.php:373 msgid "Enable webConfigurator login autocomplete" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:386 +#: src/usr/local/www/system_advanced_admin.php:384 msgid "Disable logging of webConfigurator successful logins" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:400 +#: src/usr/local/www/system_advanced_admin.php:398 msgid "Disable webConfigurator anti-lockout rule" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:413 +#: src/usr/local/www/system_advanced_admin.php:411 msgid "Disable DNS Rebinding Checks" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:433 +#: src/usr/local/www/system_advanced_admin.php:431 msgid "Disable HTTP_REFERER enforcement check" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:450 +#: src/usr/local/www/system_advanced_admin.php:448 msgid "Enable Secure Shell" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:457 +#: src/usr/local/www/system_advanced_admin.php:455 msgid "Disable password login for Secure Shell (RSA/DSA key only)" msgstr "" -#: src/usr/local/www/system_advanced_admin.php:479 +#: src/usr/local/www/system_advanced_admin.php:477 msgid "" "Enables the first serial port with 115200/8/N/1 by default, or another speed " "selectable below." msgstr "" -#: src/usr/local/www/system_advanced_admin.php:514 +#: src/usr/local/www/system_advanced_admin.php:512 msgid "Password protect the console menu" msgstr "" @@ -32450,31 +32167,31 @@ msgid "" "subnet it originated from." msgstr "" -#: src/usr/local/www/system_advanced_misc.php:375 +#: src/usr/local/www/system_advanced_misc.php:374 msgid "Enable default gateway switching" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:387 +#: src/usr/local/www/system_advanced_misc.php:386 msgid "Enable PowerD" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:468 +#: src/usr/local/www/system_advanced_misc.php:467 msgid "Do not kill connections when schedule expires" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:480 +#: src/usr/local/www/system_advanced_misc.php:479 msgid "Flush all states when a gateway goes down" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:488 +#: src/usr/local/www/system_advanced_misc.php:487 msgid "Do not create rules when gateway is down" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:500 +#: src/usr/local/www/system_advanced_misc.php:499 msgid "Use memory file system for /tmp and /var" msgstr "" -#: src/usr/local/www/system_advanced_misc.php:569 +#: src/usr/local/www/system_advanced_misc.php:566 msgid "Do NOT send HOST UUID with user agent" msgstr "" @@ -32511,23 +32228,19 @@ msgstr "" msgid "Suppress ARP messages" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:208 +#: src/usr/local/www/system_advanced_notifications.php:215 msgid "Disable Growl Notifications" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:258 +#: src/usr/local/www/system_advanced_notifications.php:265 msgid "Disable SMTP Notifications" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:284 +#: src/usr/local/www/system_advanced_notifications.php:298 msgid "Enable SMTP over SSL/TLS" msgstr "" -#: src/usr/local/www/system_advanced_notifications.php:291 -msgid "Enable STARTTLS" -msgstr "" - -#: src/usr/local/www/system_advanced_notifications.php:349 +#: src/usr/local/www/system_advanced_notifications.php:356 msgid "Disable the startup/shutdown beep" msgstr "" @@ -32561,7 +32274,7 @@ msgstr "" msgid "Do not strip away parts of the username after the @ symbol" msgstr "" -#: src/usr/local/www/system_certmanager.php:610 +#: src/usr/local/www/system_certmanager.php:615 msgid "<a href=\"system_camanager.php?act=new&method=internal\"> " msgstr "" @@ -32686,28 +32399,28 @@ msgstr "" msgid "Disable this static route" msgstr "" -#: src/usr/local/www/system_update_settings.php:144 +#: src/usr/local/www/system_update_settings.php:139 msgid "Disable the automatic dashboard auto-update check" msgstr "" -#: src/usr/local/www/system_update_settings.php:156 +#: src/usr/local/www/system_update_settings.php:151 msgid "Enable repository/branch sync before reboot" msgstr "" -#: src/usr/local/www/system_usermanager.php:691 +#: src/usr/local/www/system_usermanager.php:685 msgid "This user cannot login" msgstr "" -#: src/usr/local/www/system_usermanager.php:749 +#: src/usr/local/www/system_usermanager.php:743 msgid "" "Use individual customized GUI options and dashboard layout for this user." msgstr "" -#: src/usr/local/www/system_usermanager.php:817 +#: src/usr/local/www/system_usermanager.php:811 msgid "Click to create a user certificate" msgstr "" -#: src/usr/local/www/system_usermanager.php:913 +#: src/usr/local/www/system_usermanager.php:907 msgid "Click to paste an authorized key" msgstr "" @@ -32734,7 +32447,7 @@ msgstr "" #: src/usr/local/www/vpn_ipsec_mobile.php:562 #: src/usr/local/www/vpn_openvpn_csc.php:422 -#: src/usr/local/www/vpn_openvpn_server.php:990 +#: src/usr/local/www/vpn_openvpn_server.php:994 msgid "Provide a default domain name to clients" msgstr "" @@ -32746,13 +32459,13 @@ msgstr "" #: src/usr/local/www/vpn_ipsec_mobile.php:608 #: src/usr/local/www/vpn_openvpn_csc.php:442 -#: src/usr/local/www/vpn_openvpn_server.php:1004 +#: src/usr/local/www/vpn_openvpn_server.php:1008 msgid "Provide a DNS server list to clients" msgstr "" #: src/usr/local/www/vpn_ipsec_mobile.php:633 #: src/usr/local/www/vpn_openvpn_csc.php:534 -#: src/usr/local/www/vpn_openvpn_server.php:1091 +#: src/usr/local/www/vpn_openvpn_server.php:1102 msgid "Provide a WINS server list to clients" msgstr "" @@ -32766,39 +32479,39 @@ msgstr "" msgid "Provide a login banner to clients" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:658 +#: src/usr/local/www/vpn_ipsec_phase1.php:654 msgid "" "Set this option to disable this phase1 without removing it from the list. " msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:829 +#: src/usr/local/www/vpn_ipsec_phase1.php:825 msgid "Disables renegotiation when a connection is about to expire." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:836 +#: src/usr/local/www/vpn_ipsec_phase1.php:832 msgid "" "Whether rekeying of an IKE_SA should also reauthenticate the peer. In IKEv1, " "reauthentication is always done." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:843 +#: src/usr/local/www/vpn_ipsec_phase1.php:839 msgid "" "Enable this option to never initiate this connection from this side, only " "respond to incoming requests." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:865 +#: src/usr/local/www/vpn_ipsec_phase1.php:861 msgid "" "Enable this to split connection entries with multiple phase 2 " "configurations. Required for remote endpoints that support only a single " "traffic selector per child SA." msgstr "" -#: src/usr/local/www/vpn_ipsec_phase1.php:891 +#: src/usr/local/www/vpn_ipsec_phase1.php:887 msgid "Enable DPD" msgstr "" -#: src/usr/local/www/vpn_ipsec_phase2.php:503 +#: src/usr/local/www/vpn_ipsec_phase2.php:498 msgid "Disable this phase 2 entry without removing it from the list. " msgstr "" @@ -32855,29 +32568,29 @@ msgid "Infinitely resolve server " msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:558 -#: src/usr/local/www/vpn_openvpn_server.php:674 +#: src/usr/local/www/vpn_openvpn_server.php:678 msgid "Enable authentication of TLS packets." msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:566 -#: src/usr/local/www/vpn_openvpn_server.php:682 +#: src/usr/local/www/vpn_openvpn_server.php:686 msgid "Automatically generate a shared TLS authentication key." msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:613 -#: src/usr/local/www/vpn_openvpn_server.php:763 +#: src/usr/local/www/vpn_openvpn_server.php:767 msgid "Automatically generate a shared key" msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:718 -#: src/usr/local/www/vpn_openvpn_server.php:929 +#: src/usr/local/www/vpn_openvpn_server.php:933 msgid "" "Set the TOS IP header value of tunnel packets to match the encapsulated " "packet value." msgstr "" #: src/usr/local/www/vpn_openvpn_client.php:725 -#: src/usr/local/www/vpn_openvpn_server.php:950 +#: src/usr/local/www/vpn_openvpn_server.php:954 msgid "Don't forward IPv6 traffic. " msgstr "" @@ -32898,7 +32611,7 @@ msgid "Block this client connection based on its common name. " msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:403 -#: src/usr/local/www/vpn_openvpn_server.php:869 +#: src/usr/local/www/vpn_openvpn_server.php:873 msgid "Force all client generated traffic through the tunnel." msgstr "" @@ -32907,53 +32620,59 @@ msgid "Prevent this client from receiving any server-defined client settings. " msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:483 -#: src/usr/local/www/vpn_openvpn_server.php:1046 +#: src/usr/local/www/vpn_openvpn_server.php:1057 msgid "Provide an NTP server list to clients" msgstr "" #: src/usr/local/www/vpn_openvpn_csc.php:511 -#: src/usr/local/www/vpn_openvpn_server.php:1067 +#: src/usr/local/www/vpn_openvpn_server.php:1078 msgid "Enable NetBIOS over TCP/IP" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:598 +#: src/usr/local/www/vpn_openvpn_server.php:602 msgid "Disable this server" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:806 +#: src/usr/local/www/vpn_openvpn_server.php:810 msgid "Enforce match" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:837 +#: src/usr/local/www/vpn_openvpn_server.php:841 msgid "Allow clients on the bridge to obtain DHCP." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:936 +#: src/usr/local/www/vpn_openvpn_server.php:940 msgid "Allow communication between clients connected to this server" msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:943 +#: src/usr/local/www/vpn_openvpn_server.php:947 msgid "" "Allow multiple concurrent connections from clients using the same Common " "Name." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:962 +#: src/usr/local/www/vpn_openvpn_server.php:966 msgid "" "Allow connected clients to retain their connections if their IP address " "changes." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:969 +#: src/usr/local/www/vpn_openvpn_server.php:973 msgid "Provide a virtual adapter IP address to clients (see Tunnel Network)." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1039 +#: src/usr/local/www/vpn_openvpn_server.php:1043 +msgid "" +"Make Windows 10 Clients Block access to DNS servers except across OpenVPN " +"while connected, forcing clients to use only VPN DNS servers." +msgstr "" + +#: src/usr/local/www/vpn_openvpn_server.php:1050 msgid "" "Run \"net stop dnscache\", \"net start dnscache\", \"ipconfig /flushdns\" " "and \"ipconfig /registerdns\" on connection initiation." msgstr "" -#: src/usr/local/www/vpn_openvpn_server.php:1112 +#: src/usr/local/www/vpn_openvpn_server.php:1123 msgid "Use a different management port for clients." msgstr "" diff --git a/src/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po b/src/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po index 8539301..4fe73fe 100644 --- a/src/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po +++ b/src/usr/local/share/locale/ja/LC_MESSAGES/pfSense.po @@ -1,5 +1,5 @@ # Language translation for pfSense project. -# Copyright (C) 2011-2015 Electric Sheep Fencing LLC +# Copyright (C) 2011-2015 Rubicon Communications, LLC (Netgate) # This file is distributed under the same license as the pfSense package. # Kiyo Takami and Isaac (.ike) Levy, 2013. # diff --git a/src/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.po b/src/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.po index 82e25c5..274de07 100644 --- a/src/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.po +++ b/src/usr/local/share/locale/pt_BR/LC_MESSAGES/pfSense.po @@ -1,5 +1,5 @@ # Language translation for pfSense project. -# Copyright (C) 2011-2015 Electric Sheep Fencing LLC +# Copyright (C) 2011-2015 Rubicon Communications, LLC (Netgate) # This file is distributed under the same license as the pfSense package. # Vinicius Coque <vcoque@gmail.com>, 2011. # Luiz Gustavo <luizgustavo@luizgustavo.pro>, 2014 Powered by: TrustUX Network (www.trustux.com) diff --git a/src/usr/local/share/pfSense/post_upgrade_command b/src/usr/local/share/pfSense/post_upgrade_command deleted file mode 100755 index fd6a46c..0000000 --- a/src/usr/local/share/pfSense/post_upgrade_command +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/sh -# -# post_upgrade_command -# -# part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC -# All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -/etc/rc.conf_mount_rw - -PFSENSETYPE=`cat /etc/platform` - -if [ "${PFSENSETYPE}" = "pfSense" -o "${PFSENSETYPE}" = "nanobsd" ]; then - touch /conf/needs_package_sync_after_reboot -fi - -if [ "${PFSENSETYPE}" = "nanobsd" ]; then - ROOT=/tmp/${1}/ -else - ROOT=/ -fi - -# Now turn on or off serial console as needed -echo "Checking for ${ROOT}usr/local/share/pfSense/post_upgrade_command.php... " >> /conf/upgrade_log.txt -if [ -x ${ROOT}usr/local/share/pfSense/post_upgrade_command.php ]; then - echo "Running ${ROOT}usr/local/share/pfSense/post_upgrade_command.php $1" >> /conf/upgrade_log.txt - ${ROOT}usr/local/share/pfSense/post_upgrade_command.php $1 >> /conf/upgrade_log.txt 2>&1 -fi - -# Fixup permissions on installed files -if [ -f ${ROOT}usr/local/share/pfSense/base.mtree ]; then - if [ -x "/tmp/mtree.old" ]; then - MTREE_BIN=/tmp/mtree.old - else - MTREE_BIN=/usr/sbin/mtree - fi - ${MTREE_BIN} -U -e -q -f ${ROOT}usr/local/share/pfSense/base.mtree -p ${ROOT} > /conf/mtree.log -fi - -# Make sure to preserve existing time zone -if [ "${PFSENSETYPE}" = "nanobsd" -a -f /etc/localtime ]; then - /bin/cp -p /etc/localtime ${ROOT}etc/localtime 2>/dev/null -fi - -# Files may contain spaces -oIFS=${IFS} -IFS=" -" -# Obsolete files - nanobsd doesn't need it since a new image is installed -# on the other partition -if [ "${PFSENSETYPE}" != "nanobsd" -a -f /etc/pfSense.obsoletedfiles ]; then - for f in $(cat /etc/pfSense.obsoletedfiles); do - if [ -n "${f}" -a -f "${f}" ]; then - rm -f "${f}" - elif [ -n "${f}" -a -d "${f}" ]; then - rm -rf "${f}" - fi - done -fi - -# Restore IFS -IFS=${oIFS} diff --git a/src/usr/local/share/pfSense/post_upgrade_command.php b/src/usr/local/share/pfSense/post_upgrade_command.php deleted file mode 100755 index 938f61e..0000000 --- a/src/usr/local/share/pfSense/post_upgrade_command.php +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/local/bin/php -f -<?php -/* - * post_upgrade_command.php - * - * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC - * All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - /* upgrade embedded users serial console */ - require_once("globals.inc"); - require_once("config.inc"); - require_once("functions.inc"); - - if (file_exists("/usr/local/bin/git") && isset($config['system']['gitsync']['synconupgrade'])) { - if (!empty($config['system']['gitsync']['repositoryurl'])) { - exec("cd /root/pfsense/pfSenseGITREPO/pfSenseGITREPO && git config remote.origin.url " . escapeshellarg($config['system']['gitsync']['repositoryurl'])); - } - if (!empty($config['system']['gitsync']['branch'])) { - system("pfSsh.php playback gitsync " . escapeshellarg($config['system']['gitsync']['branch']) . " --upgrading"); - } - } - - $newslicedir = ""; - if (isset($argv[1]) && $argv[1] != "") { - $newslicedir = '/tmp/' . $argv[1]; - } - - if ($g['enableserial_force'] || file_exists("{$newslicedir}/enableserial_force")) { - $config['system']['enableserial'] = true; - write_config(); - } - - system("echo \"Adding serial port settings ({$newslicedir})...\" >> /conf/upgrade_log.txt"); - setup_serial_port("upgrade", $newslicedir); - -?> diff --git a/src/usr/local/share/pfSense/pre_upgrade_command b/src/usr/local/share/pfSense/pre_upgrade_command deleted file mode 100644 index daa72d8..0000000 --- a/src/usr/local/share/pfSense/pre_upgrade_command +++ /dev/null @@ -1,159 +0,0 @@ -#!/bin/sh -# -# pre_upgrade_command -# -# part of pfSense (https://www.pfsense.org) -# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC -# All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -/etc/rc.conf_mount_rw - -# Record the previous version -PRIOR_VERSION=`uname -r | cut -d'.' -f1` -echo $PRIOR_VERSION > /tmp/pre_upgrade_version - -# De-activate sync on root filesystem. See ticket #4523 -# Back up original fstab -/bin/cp /etc/fstab /etc/fstab.orig -# De-activate sync on the root slice only. This will not match NanoBSD since it already has sync,noatime -/usr/bin/sed -i '' 's/^\(\/.*[[:space:]]*\/[[:space:]]*ufs[[:space:]]*\)rw,sync\([[:space:]]*[[:digit:]][[:space:]]*[[:digit:]]\)$/\1rw\2/' /etc/fstab - -# Uninstall all packages before upgrade to 2.3 -PFSENSE_VERSION=$(cat /etc/version) - -if echo "$PFSENSE_VERSION" | grep -q '^1.2'; then - UNINSTALL="uninstall_package_from_name" -else - UNINSTALL="uninstall_package" -fi - -cat >/tmp/remove_all_packages.php <<EOD -#!/usr/local/bin/php -<?php - -require_once("pkg-utils.inc"); - -global \$pkg_interface; -\$pkg_interface = "console"; - -if (!isset(\$config['installedpackages']['package'])) { - exit(0); -} - -if (!is_array(\$config['installedpackages']['package'])) { - exit(0); -} - -\$removed_packages = array(); -foreach (\$config['installedpackages']['package'] as \$package) { - if (isset(\$package['internal_name'])) { - \$removed_packages[] = \$package['internal_name']; - } else { - \$rename_arr = array("Quagga OSPF" => "Quagga_OSPF", "System Patches" => "System_Patches"); - if (key_exists(\$package['name'], \$rename_arr)) { - \$removed_packages[] = \$rename_arr[\$package['name']]; - } else { - \$removed_packages[] = \$package['name']; - } - } - ${UNINSTALL}(\$package['name']); -} - -@file_put_contents("{\$g['cf_conf_path']}/packages_to_reinstall_after_upgrade.txt", implode("\\n",\$removed_packages)); - -?> -EOD - -/usr/local/bin/php /tmp/remove_all_packages.php -rm -f /tmp/remove_all_packages.php - -# Cleanup PBIs -if which pbi_info >/dev/null 2>&1; then - for pbi in $(pbi_info); do - echo ">>> Removing PBI ${pbi} and all symlinks" - pbi_prefix=$(pbi_info ${pbi} | awk '$1 == "Prefix:" { print $2 }') - - for subdir in bin sbin; do - if [ ! -d "${pbi_prefix}/${subdir}" ]; then - continue - fi - - for pbiopt in ${pbi_prefix}/${subdir}/*.pbiopt; do - link_name=$(awk '$1 == "TARGET:" { print $2 }' ${pbiopt}) - - if [ -z "${link_name}" ]; then - continue - fi - - if [ -L /usr/local/${link_name} ]; then - rm -f /usr/local/${link_name} - fi - done - done - - pbi_delete ${pbi} - done - - # Cleanup remaining symbolic links - find / -type l -lname '/usr/pbi/*' -delete -fi - -# Hack to workaround ticket #3749 -if [ ${PRIOR_VERSION} -le 8 ] && grep -q 'sh /etc/rc.reboot' /etc/rc.firmware; then - PROC=$(ps axwww | grep '/etc/rc.firmware *pfSenseupgrade') - PID='' - IMG='' - if [ -n "${PROC}" ]; then - PID=$(echo "${PROC}" | awk '{print $1}') - IMG=$(echo "${PROC}" | sed 's,^.*pfSenseupgrade *,,') - fi - - if [ -n "${PID}" -a -n "${IMG}" -a -f "${IMG}" ]; then - cp -fp /bin/sh /tmp/sh.old - kill ${PID} >/dev/null 2>&1 - kill -9 ${PID} >/dev/null 2>&1 - sed -i '' -e 's,sh /,/tmp/sh.old /,' \ - -e 's,/usr/sbin/mtree,/tmp/mtree.old,' /etc/rc.firmware - # To avoid restarting rc.firmware twice because of #4328 - sed -i '' -e '/^restore_chflags()/, /^}/ s/mtree *-PU/mtree -P/' /etc/rc.firmware - /etc/rc.firmware pfSenseupgrade "${IMG}" - exit - fi -fi - -# One more hack to workaround #4328 -if grep -q 'mtree *-PU' /etc/rc.firmware; then - PROC=$(ps axwww | grep '/etc/rc.firmware *pfSenseupgrade') - PID='' - IMG='' - if [ -n "${PROC}" ]; then - PID=$(echo "${PROC}" | awk '{print $1}') - IMG=$(echo "${PROC}" | sed 's,^.*pfSenseupgrade *,,') - fi - - if [ -n "${PID}" -a -n "${IMG}" -a -f "${IMG}" ]; then - kill ${PID} >/dev/null 2>&1 - kill -9 ${PID} >/dev/null 2>&1 - sed -i '' -e '/^restore_chflags()/, /^}/ s/mtree *-PU/mtree -P/' /etc/rc.firmware - /etc/rc.firmware pfSenseupgrade "${IMG}" - exit - fi -fi - -# Make sure /boot files are not protected with schg -chflags -R noschg /boot >/dev/null 2>&1 - -rm /boot/kernel/* - diff --git a/src/usr/local/www/bandwidth_by_ip.php b/src/usr/local/www/bandwidth_by_ip.php index 44af2d6..d380322 100644 --- a/src/usr/local/www/bandwidth_by_ip.php +++ b/src/usr/local/www/bandwidth_by_ip.php @@ -3,7 +3,7 @@ * bandwidth_by_ip.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/classes/Form.class.php b/src/usr/local/www/classes/Form.class.php index 7c7e5f6..d3467f4 100644 --- a/src/usr/local/www/classes/Form.class.php +++ b/src/usr/local/www/classes/Form.class.php @@ -3,7 +3,7 @@ * Form.class.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2015 Sjon Hortensius * All rights reserved. * diff --git a/src/usr/local/www/classes/Form/Button.class.php b/src/usr/local/www/classes/Form/Button.class.php index 54e619c..e00f9b9 100644 --- a/src/usr/local/www/classes/Form/Button.class.php +++ b/src/usr/local/www/classes/Form/Button.class.php @@ -4,7 +4,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2015 Sjon Hortensius - * Copyright (c) 2015-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2015-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/classes/Form/Checkbox.class.php b/src/usr/local/www/classes/Form/Checkbox.class.php index 0a3f236..286bdf5 100644 --- a/src/usr/local/www/classes/Form/Checkbox.class.php +++ b/src/usr/local/www/classes/Form/Checkbox.class.php @@ -4,7 +4,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2015 Sjon Hortensius - * Copyright (c) 2015-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2015-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/classes/Form/Element.class.php b/src/usr/local/www/classes/Form/Element.class.php index e4d4a39..aea948e 100644 --- a/src/usr/local/www/classes/Form/Element.class.php +++ b/src/usr/local/www/classes/Form/Element.class.php @@ -4,7 +4,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2015 Sjon Hortensius - * Copyright (c) 2015-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2015-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/classes/Form/Group.class.php b/src/usr/local/www/classes/Form/Group.class.php index b4c8e69..bcfdc42 100644 --- a/src/usr/local/www/classes/Form/Group.class.php +++ b/src/usr/local/www/classes/Form/Group.class.php @@ -3,7 +3,7 @@ * Group.class.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2015 Sjon Hortensius * All rights reserved. * diff --git a/src/usr/local/www/classes/Form/Input.class.php b/src/usr/local/www/classes/Form/Input.class.php index 43ec643..7a05d76 100644 --- a/src/usr/local/www/classes/Form/Input.class.php +++ b/src/usr/local/www/classes/Form/Input.class.php @@ -3,7 +3,7 @@ * Input.class.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2015 Sjon Hortensius * All rights reserved. * diff --git a/src/usr/local/www/classes/Form/IpAddress.class.php b/src/usr/local/www/classes/Form/IpAddress.class.php index 58548a7..9ab26d8 100644 --- a/src/usr/local/www/classes/Form/IpAddress.class.php +++ b/src/usr/local/www/classes/Form/IpAddress.class.php @@ -3,7 +3,7 @@ * IpAddress.class.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2015 Sjon Hortensius * All rights reserved. * @@ -30,7 +30,8 @@ class Form_IpAddress extends Form_Input switch ($type) { case "BOTH": - $this->_attributes['pattern'] = '[a-f0-9:.]*'; + $this->_attributes['pattern'] = '[a-fA-F0-9:.]*'; + $this->_attributes['title'] = 'An IPv4 address like 1.2.3.4 or an IPv6 address like 1:2a:3b:ffff::1'; break; case "V4": @@ -38,7 +39,8 @@ class Form_IpAddress extends Form_Input break; case "V6": - $this->_attributes['pattern'] = '[a-f0-9:]*'; + $this->_attributes['pattern'] = '[a-fA-F0-9:.]*'; + $this->_attributes['title'] = 'An IPv6 address like 1:2a:3b:ffff::1'; break; } } diff --git a/src/usr/local/www/classes/Form/MultiCheckbox.class.php b/src/usr/local/www/classes/Form/MultiCheckbox.class.php index 987a544..104f9e7 100644 --- a/src/usr/local/www/classes/Form/MultiCheckbox.class.php +++ b/src/usr/local/www/classes/Form/MultiCheckbox.class.php @@ -3,7 +3,7 @@ * MultiCheckbox.class.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2015 Sjon Hortensius * All rights reserved. * diff --git a/src/usr/local/www/classes/Form/MultiCheckboxGroup.class.php b/src/usr/local/www/classes/Form/MultiCheckboxGroup.class.php index 9eb3af1..d85421f 100644 --- a/src/usr/local/www/classes/Form/MultiCheckboxGroup.class.php +++ b/src/usr/local/www/classes/Form/MultiCheckboxGroup.class.php @@ -3,7 +3,7 @@ * MultiCheckboxGroup.class.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2015 Sjon Hortensius * All rights reserved. * diff --git a/src/usr/local/www/classes/Form/Section.class.php b/src/usr/local/www/classes/Form/Section.class.php index 99e9767..a14494f 100644 --- a/src/usr/local/www/classes/Form/Section.class.php +++ b/src/usr/local/www/classes/Form/Section.class.php @@ -3,7 +3,7 @@ * Section.class.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2015 Sjon Hortensius * All rights reserved. * diff --git a/src/usr/local/www/classes/Form/Select.class.php b/src/usr/local/www/classes/Form/Select.class.php index 649166d..891aa10 100644 --- a/src/usr/local/www/classes/Form/Select.class.php +++ b/src/usr/local/www/classes/Form/Select.class.php @@ -3,7 +3,7 @@ * Select.class.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2015 Sjon Hortensius * All rights reserved. * diff --git a/src/usr/local/www/classes/Form/StaticText.class.php b/src/usr/local/www/classes/Form/StaticText.class.php index 001b462..d2a410c 100644 --- a/src/usr/local/www/classes/Form/StaticText.class.php +++ b/src/usr/local/www/classes/Form/StaticText.class.php @@ -3,7 +3,7 @@ * StaticText.class.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2015 Sjon Hortensius * All rights reserved. * diff --git a/src/usr/local/www/classes/Form/Textarea.class.php b/src/usr/local/www/classes/Form/Textarea.class.php index 3e5c71c..2519719 100644 --- a/src/usr/local/www/classes/Form/Textarea.class.php +++ b/src/usr/local/www/classes/Form/Textarea.class.php @@ -3,7 +3,7 @@ * Textarea.class.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2015 Sjon Hortensius * All rights reserved. * diff --git a/src/usr/local/www/classes/Modal.class.php b/src/usr/local/www/classes/Modal.class.php index dff6bca..3a32e5e 100644 --- a/src/usr/local/www/classes/Modal.class.php +++ b/src/usr/local/www/classes/Modal.class.php @@ -3,7 +3,7 @@ * Modal.class.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2015 Sjon Hortensius * All rights reserved. * diff --git a/src/usr/local/www/classes/autoload.inc.php b/src/usr/local/www/classes/autoload.inc.php index bec1a4b..316ad9a 100644 --- a/src/usr/local/www/classes/autoload.inc.php +++ b/src/usr/local/www/classes/autoload.inc.php @@ -3,7 +3,7 @@ * autoload.inc.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/crash_reporter.php b/src/usr/local/www/crash_reporter.php index 7e1a9bc..9a74c3e 100644 --- a/src/usr/local/www/crash_reporter.php +++ b/src/usr/local/www/crash_reporter.php @@ -3,7 +3,7 @@ * crash_reporter.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/css/Compact-RED.css b/src/usr/local/www/css/Compact-RED.css index 9105de0..99b1675 100644 --- a/src/usr/local/www/css/Compact-RED.css +++ b/src/usr/local/www/css/Compact-RED.css @@ -3,7 +3,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2016 PiBa-NL - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -23,6 +23,7 @@ body { font-size: 12px; + font-family: sans-serif; } .form-control { @@ -83,6 +84,11 @@ body { .dropdown-menu>li>a { padding: 0px 20px; + line-height: 26px; +} + +.dropdown-menu>li>a:focus, .dropdown-menu>li>a:hover { + background-color: rgb(224, 224, 224); } .navbar-right>li>a { @@ -95,6 +101,14 @@ body { } .panel-default>.panel-heading { background-color: #900; + padding: 2px 5px 2px 15px; +} + +.panel-title { + line-height: 18px; + font-size: 12px; + font-family: sans-serif; + font-weight: bold; } .form-control { @@ -108,6 +122,10 @@ body { padding:2px; } +.table-striped>tbody>tr:hover { + background-color: rgb(224, 224, 224); +} + .header .context-links { top: 1px; } diff --git a/src/usr/local/www/css/pfSense-BETA.css b/src/usr/local/www/css/pfSense-BETA.css index 8d25f05..4550601 100644 --- a/src/usr/local/www/css/pfSense-BETA.css +++ b/src/usr/local/www/css/pfSense-BETA.css @@ -2,7 +2,7 @@ * pfSense-BETA.css * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -82,3 +82,7 @@ a.fa, i.fa { .panel-heading { padding: 5px 10px; } + +.ui-widget { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; +} diff --git a/src/usr/local/www/css/pfSense-dark-BETA.css b/src/usr/local/www/css/pfSense-dark-BETA.css index cb89447..a443e41 100644 --- a/src/usr/local/www/css/pfSense-dark-BETA.css +++ b/src/usr/local/www/css/pfSense-dark-BETA.css @@ -2,7 +2,7 @@ * pfSense-dark-BETA.css * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -86,3 +86,7 @@ a.fa, i.fa { .panel-heading { padding: 5px 10px; } + +.ui-widget { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; +} diff --git a/src/usr/local/www/css/pfSense-dark.css b/src/usr/local/www/css/pfSense-dark.css index 1f6c763..da9debe 100644 --- a/src/usr/local/www/css/pfSense-dark.css +++ b/src/usr/local/www/css/pfSense-dark.css @@ -2,7 +2,7 @@ * pfSense-dark.css * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -43,9 +43,9 @@ h1 a:link, h1 a:visited { color: #fff; } -h1 a:hover, h1 a:active { - color: #fff; - text-decoration: none !important; +h1 a:hover, h1 a:active { + color: #fff; + text-decoration: none !important; } /** Content structure */ @@ -348,13 +348,13 @@ caption { a.list-group-item, .list-group-item { background-color: #424242; - color: #e0e0e0; - border: 1px solid #212121; + color: #e0e0e0; + border: 1px solid #212121; } a.list-group-item:focus, a.list-group-item:hover, .list-group-item:focus, .list-group-item:hover { background-color: #303030; - color: #e0e0e0; + color: #e0e0e0; } a.list-group-item .list-group-item-heading, .list-group-item .list-group-item-heading { @@ -406,12 +406,12 @@ ul.tree li A:link, ul.tree li A:hover, ul.tree li A:visited { table[data-sortable].sortable-theme-bootstrap th[data-sorted="true"] { background-color: #000; - color: #009688; + color: #009688; border-bottom-color: #009688; } table[data-sortable].sortable-theme-bootstrap tbody td { - border-top: 1px solid #303030; + border-top: 1px solid #303030; } textarea { @@ -424,6 +424,10 @@ textarea { background-color: #e0e0e0; } +.ui-widget { + font-family: Roboto, sans-serif; +} + /* Callouts */ .bs-callout { padding: 10px 15px; diff --git a/src/usr/local/www/css/pfSense.css b/src/usr/local/www/css/pfSense.css index 770fc75..a2cb099 100644 --- a/src/usr/local/www/css/pfSense.css +++ b/src/usr/local/www/css/pfSense.css @@ -2,7 +2,7 @@ * pfSense.css * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -77,6 +77,10 @@ h1 a:hover, h1 a:active { cursor: move; } +.ui-widget { + font-family: Roboto, sans-serif; +} + tr.disabled td, tr.disabled th { opacity: .5; @@ -231,6 +235,12 @@ tr.disabled th { padding: inherit; } +/* location of bottom right drag icon on resizable elements */ +.ui-resizable-se { + bottom: 2px; + right: 46px; +} + #login .form-control { height: 34px; } diff --git a/src/usr/local/www/diag_arp.php b/src/usr/local/www/diag_arp.php index 9634ccf..d99bca0 100644 --- a/src/usr/local/www/diag_arp.php +++ b/src/usr/local/www/diag_arp.php @@ -3,7 +3,7 @@ * diag_arp.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -238,15 +238,14 @@ foreach ($ifdescrs as $key => $interface) { $data = array(); foreach ($rawdata as $line) { - $elements = explode(' ', $line); - - if ($elements[3] != "(incomplete)") { - $arpent = array(); - $arpent['ip'] = trim(str_replace(array('(', ')'), '', $elements[1])); - $arpent['mac'] = trim($elements[3]); - $arpent['interface'] = trim($elements[5]); - $data[] = $arpent; - } + $elements = explode(' ', $line, 7); + $arpent = array(); + $arpent['ip'] = trim(str_replace(array('(', ')'), '', $elements[1])); + $arpent['mac'] = trim($elements[3]); + $arpent['interface'] = trim($elements[5]); + $arpent['status'] = trim(substr($elements[6], 0, strrpos($elements[6], ' '))); + $arpent['linktype'] = trim(str_replace(array('[', ']'), '', strrchr($elements[6], ' '))); + $data[] = $arpent; } function _getHostName($mac, $ip) { @@ -334,6 +333,8 @@ $mac_man = load_mac_manufacturer_table(); <th><?= gettext("IP address")?></th> <th><?= gettext("MAC address")?></th> <th><?= gettext("Hostname")?></th> + <th><?= gettext("Status")?></th> + <th><?= gettext("Link Type")?></th> <th data-sortable="false"><?=gettext("Actions")?></th> </tr> </thead> @@ -356,6 +357,8 @@ $mac_man = load_mac_manufacturer_table(); ?> </td> <td><?=trim(str_replace("Z_ ", "", $entry['dnsresolve']))?></td> + <td><?=ucfirst($entry['status'])?></td> + <td><?=$entry['linktype']?></td> <td> <a class="fa fa-trash" title="<?=gettext('Delete arp cache entry')?>" href="diag_arp.php?deleteentry=<?=$entry['ip']?>"></a> </td> @@ -379,7 +382,10 @@ events.push(function() { <div class="infoblock blockopen"> <?php -print_info_box(gettext("Local IPv6 peers use ") . '<a href="diag_ndp.php">' . gettext("NDP") . '</a>' . gettext(" instead of ARP."), 'info', false); +print_info_box(gettext("Local IPv6 peers use ") . '<a href="diag_ndp.php">' . gettext("NDP") . '</a>' . gettext(" instead of ARP.") . '<br />' . + '<br />' . gettext("Permanent ARP entries are shown for local interfaces or static ARP entries.") . + '<br />' . gettext("Normal dynamic ARP entries show a countdown timer until they will expire and then be re-checked.") . + '<br />' . gettext("Incomplete ARP entries indicate that the target host has not yet replied to an ARP request."), 'info', false); ?> </div> diff --git a/src/usr/local/www/diag_authentication.php b/src/usr/local/www/diag_authentication.php index 920f81d..e03bd55 100644 --- a/src/usr/local/www/diag_authentication.php +++ b/src/usr/local/www/diag_authentication.php @@ -3,7 +3,7 @@ * diag_authentication.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/diag_backup.php b/src/usr/local/www/diag_backup.php index 926841d..bd3de22 100644 --- a/src/usr/local/www/diag_backup.php +++ b/src/usr/local/www/diag_backup.php @@ -3,7 +3,7 @@ * diag_backup.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -164,9 +164,7 @@ function check_and_returnif_section_exists($section) { if ($_POST['apply']) { ob_flush(); flush(); - conf_mount_rw(); clear_subsystem_dirty("restore"); - conf_mount_ro(); exit; } @@ -311,7 +309,6 @@ if ($_POST) { write_config(); add_base_packages_menu_items(); convert_config(); - conf_mount_ro(); } filter_configure(); $savemsg = gettext("The configuration area has been restored. The firewall may need to be rebooted."); @@ -325,7 +322,6 @@ if ($_POST) { file_put_contents($_FILES['conffile']['tmp_name'], $data); if (config_install($_FILES['conffile']['tmp_name']) == 0) { /* this will be picked up by /index.php */ - conf_mount_rw(); mark_subsystem_dirty("restore"); touch("/conf/needs_package_sync_after_reboot"); /* remove cache, we will force a config reboot */ @@ -349,7 +345,6 @@ if ($_POST) { write_config(); add_base_packages_menu_items(); convert_config(); - conf_mount_ro(); } if ($m0n0wall_upgrade == true) { if ($config['system']['gateway'] <> "") { @@ -401,56 +396,16 @@ if ($_POST) { } // Convert icmp types // http://www.openbsd.org/cgi-bin/man.cgi?query=icmp&sektion=4&arch=i386&apropos=0&manpath=OpenBSD+Current - for ($i = 0; isset($config["filter"]["rule"][$i]); $i++) { - if ($config["filter"]["rule"][$i]['icmptype']) { - switch ($config["filter"]["rule"][$i]['icmptype']) { - case "echo": - $config["filter"]["rule"][$i]['icmptype'] = "echoreq"; - break; - case "unreach": - $config["filter"]["rule"][$i]['icmptype'] = "unreach"; - break; - case "echorep": - $config["filter"]["rule"][$i]['icmptype'] = "echorep"; - break; - case "squench": - $config["filter"]["rule"][$i]['icmptype'] = "squench"; - break; - case "redir": - $config["filter"]["rule"][$i]['icmptype'] = "redir"; - break; - case "timex": - $config["filter"]["rule"][$i]['icmptype'] = "timex"; - break; - case "paramprob": - $config["filter"]["rule"][$i]['icmptype'] = "paramprob"; - break; - case "timest": - $config["filter"]["rule"][$i]['icmptype'] = "timereq"; - break; - case "timestrep": - $config["filter"]["rule"][$i]['icmptype'] = "timerep"; - break; - case "inforeq": - $config["filter"]["rule"][$i]['icmptype'] = "inforeq"; - break; - case "inforep": - $config["filter"]["rule"][$i]['icmptype'] = "inforep"; - break; - case "maskreq": - $config["filter"]["rule"][$i]['icmptype'] = "maskreq"; - break; - case "maskrep": - $config["filter"]["rule"][$i]['icmptype'] = "maskrep"; - break; - } + $convert = array('echo' => 'echoreq', 'timest' => 'timereq', 'timestrep' => 'timerep'); + foreach ($config["filter"]["rule"] as $ruleid => &$ruledata) { + if ($convert[$ruledata['icmptype']]) { + $ruledata['icmptype'] = $convert[$ruledata['icmptype']]; } } $config['diag']['ipv6nat'] = true; write_config(); add_base_packages_menu_items(); convert_config(); - conf_mount_ro(); $savemsg = gettext("The m0n0wall configuration has been restored and upgraded to pfSense."); mark_subsystem_dirty("restore"); } diff --git a/src/usr/local/www/diag_command.php b/src/usr/local/www/diag_command.php index 78a9d21..a2de181 100644 --- a/src/usr/local/www/diag_command.php +++ b/src/usr/local/www/diag_command.php @@ -3,7 +3,7 @@ * diag_command.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Exec+ v1.02-000 - Copyright 2001-2003, All rights reserved @@ -61,7 +61,6 @@ if ($_POST['submit'] == "DOWNLOAD" && file_exists($_POST['dlPath'])) { } if ($_POST) { - conf_mount_rw(); } // Function: is Blank @@ -324,5 +323,4 @@ if ($_POST['submit'] == "EXEC" && !isBlank($_POST['txtCommand'])):?> include("foot.inc"); if ($_POST) { - conf_mount_ro(); } diff --git a/src/usr/local/www/diag_confbak.php b/src/usr/local/www/diag_confbak.php index a65aedc..390f295 100644 --- a/src/usr/local/www/diag_confbak.php +++ b/src/usr/local/www/diag_confbak.php @@ -3,7 +3,7 @@ * diag_confbak.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005 Colin Smith * All rights reserved. * @@ -44,7 +44,6 @@ if (isset($_POST['backupcount'])) { return; } - conf_mount_rw(); $confvers = unserialize(file_get_contents($g['cf_conf_path'] . '/backup/backup.cache')); if ($_GET['newver'] != "") { @@ -58,7 +57,6 @@ if (isset($_POST['backupcount'])) { unlink_if_exists($g['conf_path'] . '/backup/config-' . $_GET['rmver'] . '.xml'); $savemsg = sprintf(gettext('Deleted backup with timestamp %1$s and description "%2$s".'), date(gettext("n/j/y H:i:s"), $_GET['rmver']), htmlspecialchars($confvers[$_GET['rmver']]['description'])); } - conf_mount_ro(); } if ($_GET['getcfg'] != "") { diff --git a/src/usr/local/www/diag_defaults.php b/src/usr/local/www/diag_defaults.php index 97eb00e..8c1ee6f 100644 --- a/src/usr/local/www/diag_defaults.php +++ b/src/usr/local/www/diag_defaults.php @@ -3,7 +3,7 @@ * diag_defaults.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/diag_dns.php b/src/usr/local/www/diag_dns.php index 787f27a..bb44e73 100644 --- a/src/usr/local/www/diag_dns.php +++ b/src/usr/local/www/diag_dns.php @@ -3,7 +3,7 @@ * diag_dns.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -62,7 +62,7 @@ function resolve_host_addresses($host) { } } error_reporting($errreporting);// restore original php warning/error settings. - + foreach ($dnsresult as $item) { $newitem = array(); $newitem['type'] = $item['type']; @@ -79,7 +79,6 @@ function resolve_host_addresses($host) { $newitem['data'] = $item['ipv6']; $resolved[] = $newitem; break; - } } return $resolved; @@ -152,9 +151,8 @@ if ($_POST) { } $type = "unknown"; - $resolved = ""; + $resolved = array(); $ipaddr = ""; - $hostname = ""; if (!$input_errors) { if (is_ipaddr($host)) { $type = "ip"; @@ -168,24 +166,15 @@ if ($_POST) { } } elseif (is_hostname($host)) { $type = "hostname"; - $resolved = gethostbyname($host); - if ($resolved) { - $resolved = resolve_host_addresses($host); - } - $hostname = $host; - if ($host != $resolved) { - $ipaddr = $resolved[0]; - } - } - - if ($host == $resolved) { - $resolved = gettext("No record found"); + $ipaddr = gethostbyname($host); + $resolved = resolve_host_addresses($host); } } } -if (($_POST['host']) && ($_POST['dialog_output'])) { - display_host_results ($host, $resolved, $dns_speeds); +if ($_POST['host'] && $_POST['dialog_output']) { + $host = (isset($resolvedptr) ? $resolvedptr : $host); + display_host_results ($ipaddr, $host, $dns_speeds); exit; } @@ -267,7 +256,7 @@ if (!$input_errors && $type) { <div class="panel panel-default"> <div class="panel-heading"><h2 class="panel-title"><?=gettext('Results')?></h2></div> <div class="panel-body"> - + <table class="table"> <thead> <tr> diff --git a/src/usr/local/www/diag_dump_states.php b/src/usr/local/www/diag_dump_states.php index b9b86d2..342d8f5 100644 --- a/src/usr/local/www/diag_dump_states.php +++ b/src/usr/local/www/diag_dump_states.php @@ -3,7 +3,7 @@ * diag_dump_states.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005 Colin Smith * All rights reserved. * @@ -216,11 +216,6 @@ print $form; $states = count($res); } - /* XXX - limit to 10.000 states. */ - if ($states > 10000) { - $states = 10000; - } - for ($i = 0; $i < $states; $i++) { $info = $res[$i]['src']; $srcip = get_ip($res[$i]['src']); diff --git a/src/usr/local/www/diag_dump_states_sources.php b/src/usr/local/www/diag_dump_states_sources.php index f787143..c245502 100644 --- a/src/usr/local/www/diag_dump_states_sources.php +++ b/src/usr/local/www/diag_dump_states_sources.php @@ -3,7 +3,7 @@ * diag_dump_states_source.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005 Colin Smith * All rights reserved. * diff --git a/src/usr/local/www/diag_edit.php b/src/usr/local/www/diag_edit.php index e99aca8..10964ea 100644 --- a/src/usr/local/www/diag_edit.php +++ b/src/usr/local/www/diag_edit.php @@ -3,7 +3,7 @@ * diag_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -65,10 +65,8 @@ if ($_POST['action']) { print_info_box(gettext("No file name specified."), 'danger'); print('|'); } else { - conf_mount_rw(); $_POST['data'] = str_replace("\r", "", base64_decode($_POST['data'])); $ret = file_put_contents($_POST['file'], $_POST['data']); - conf_mount_ro(); if ($_POST['file'] == "/conf/config.xml" || $_POST['file'] == "/cf/conf/config.xml") { if (file_exists("/tmp/config.cache")) { unlink("/tmp/config.cache"); diff --git a/src/usr/local/www/diag_gmirror.php b/src/usr/local/www/diag_gmirror.php index 1f34185..869fb02 100644 --- a/src/usr/local/www/diag_gmirror.php +++ b/src/usr/local/www/diag_gmirror.php @@ -3,7 +3,7 @@ * diag_gmirror.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/diag_halt.php b/src/usr/local/www/diag_halt.php index d1495c9..38446d8 100644 --- a/src/usr/local/www/diag_halt.php +++ b/src/usr/local/www/diag_halt.php @@ -3,7 +3,7 @@ * diag_halt.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/diag_limiter_info.php b/src/usr/local/www/diag_limiter_info.php index 4b86bba..fa2ba38 100644 --- a/src/usr/local/www/diag_limiter_info.php +++ b/src/usr/local/www/diag_limiter_info.php @@ -3,7 +3,7 @@ * diag_limiter_info.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/diag_nanobsd.php b/src/usr/local/www/diag_nanobsd.php deleted file mode 100644 index 3839802..0000000 --- a/src/usr/local/www/diag_nanobsd.php +++ /dev/null @@ -1,252 +0,0 @@ -<?php -/* - * diag_nanobsd.php - * - * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC - * All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -##|+PRIV -##|*IDENT=page-diagnostics-nanobsd -##|*NAME=Diagnostics: NanoBSD -##|*DESCR=Allow access to the 'Diagnostics: NanoBSD' page. -##|*MATCH=diag_nanobsd.php* -##|-PRIV - -ini_set('zlib.output_compression', 0); -ini_set('implicit_flush', 1); -ini_set('max_input_time', '9999'); - -require_once("guiconfig.inc"); -require_once("config.inc"); - -// Setting DEBUG to true causes the dangerous stuff on this page to be simulated rather than executed. -// MUST be set to false for production of course -define('DEBUG', false); - -$pgtitle = array(gettext("Diagnostics"), gettext("NanoBSD")); -include("head.inc"); - -// Survey slice info -global $SLICE, $OLDSLICE, $TOFLASH, $COMPLETE_PATH, $COMPLETE_BOOT_PATH; -global $GLABEL_SLICE, $UFS_ID, $OLD_UFS_ID, $BOOTFLASH; -global $BOOT_DEVICE, $REAL_BOOT_DEVICE, $BOOT_DRIVE, $ACTIVE_SLICE; -nanobsd_detect_slice_info(); - -$NANOBSD_SIZE = nanobsd_get_size(); -$class = 'alert-warning'; - -if ($_POST['bootslice']) { - if (!DEBUG) { - nanobsd_switch_boot_slice(); - } else { - sleep(4); - } - - $savemsg = sprintf(gettext("The boot slice has been set to %s."), nanobsd_get_active_slice()); - $class = 'alert-success'; - // Survey slice info - nanobsd_detect_slice_info(); -} - -if ($_POST['destslice'] && $_POST['duplicateslice']) { - $statusmsg = gettext("Duplicating slice. Please wait, this will take a moment..."); - - if (!DEBUG && nanobsd_clone_slice($_POST['destslice'])) { - $savemsg = gettext("The slice has been duplicated.") . "<p/>" . gettext("To boot from this newly duplicated slice set it using the bootup information area."); - $class = 'alert-success'; - } else { - $savemsg = gettext("There was an error while duplicating the slice. Operation aborted."); - $class = 'alert-danger'; - } - // Re-Survey slice info - nanobsd_detect_slice_info(); -} - -if ($_POST['changero']) { - if (!DEBUG && is_writable("/")) { - conf_mount_ro(); - } else { - conf_mount_rw(); - } -} - -if ($_POST['setrw']) { - if (!DEBUG) { - conf_mount_rw(); - if (isset($_POST['nanobsd_force_rw'])) { - $savemsg = gettext("Permanent read/write has been set successfully."); - $class = 'alert-success'; - $config['system']['nanobsd_force_rw'] = true; - } else { - $savemsg = gettext('Permanent read/write has been cleared successfully.'); - $class = 'alert-success'; - unset($config['system']['nanobsd_force_rw']); - } - - write_config(gettext("Changed Permanent Read/Write Setting")); - conf_mount_ro(); - } else { - $savemsg = gettext('Saved read/write permanently.'); - $class = 'alert-success'; - } -} - -print_info_box(gettext("The options on this page are intended for use by advanced users only.")); - -if ($savemsg) { - print_info_box($savemsg, $class); -} - -$form = new Form(false); - -$section = new Form_Section('NanoBSD Options'); - -$section->addInput(new Form_StaticText( - 'Image Size', - $NANOBSD_SIZE -)); - -$slicebtn = new Form_Button( - 'bootslice', - 'Switch Slice', - null, - 'fa-retweet' -); -$slicebtn->addClass('btn-warning btn-sm'); - -$section->addInput(new Form_StaticText( - 'Bootup slice', - $ACTIVE_SLICE . ' ' . $slicebtn -)); - -$refcount = refcount_read(1000); -$mounted_rw = is_writable("/"); - -if ($mounted_rw) { - /* refcount_read returns -1 when shared memory section does not exist */ - /* refcount can be zero here when the user has set nanobsd_force_rw */ - /* refcount 1 is normal, so only display the count for abnormal values */ - /* - if ($refcount == 1 || $refcount == 0 || $refcount == -1) { - $refdisplay = ""; - } else { - $refdisplay = " ". sprintf(gettext("(Reference count %s)"), $refcount); - } - */ - $lbl = gettext("Read/Write") . $refdisplay; - $btnlbl = gettext("Switch to Read-Only"); -} else { - $lbl = gettext("Read-Only"); - $btnlbl = gettext("Switch to Read/Write"); -} - -// Only show the changero button if force read/write is off, or the file system is not in writable state, or there is an unusual refcount. -// If force read/write is on, and the file system is in writable state, and refcount is normal then the user has no reason to mess about. -/* -if (!isset($config['system']['nanobsd_force_rw']) || !$mounted_rw || ($refcount > 1)) { - $robtn = new Form_Button( - 'changero', - $btnlbl, - null, - ($mounted_rw) ? 'fa-lock' : 'fa-unlock' - ); - $robtn->addClass(($mounted_rw) ? 'btn-success' : 'btn-warning' . ' btn-sm'); - $lbl .= ' ' . $robtn; -} -*/ -$section->addInput(new Form_StaticText( - 'Read/Write status', - $lbl -))->setHelp('NanoBSD is now always read-write to avoid read-write to read-only mount problems.'); -//))->setHelp('This setting is only temporary, and can be switched dynamically in the background.'); - -/* -$section->addInput(new Form_Checkbox( - 'nanobsd_force_rw', - 'Permanent Read/Write', - 'Keep media mounted read/write at all times. ', - isset($config['system']['nanobsd_force_rw']) -)); - -$permbtn = new Form_Button( - 'setrw', - 'Save', - null, - 'fa-save' -); -$permbtn->addClass('btn-primary btn-sm'); - -$section->addInput(new Form_StaticText( - null, - $permbtn -)); -*/ - -$section->addInput(new Form_Input( - 'destslice', - null, - 'hidden', - $COMPLETE_PATH -)); - -$dupbtn = new Form_Button( - 'duplicateslice', - 'Duplicate ' . $COMPLETE_BOOT_PATH . ' -> ' . $TOFLASH, - null, - 'fa-clone' -); -$dupbtn->addClass('btn-success btn-sm'); - -$section->addInput(new Form_StaticText( - 'Duplicate boot slice', - $dupbtn -))->setHelp('This will duplicate the bootup slice to the alternate slice. Use this to duplicate the known good working boot partition to the alternate.'); - -$section->addInput(new Form_StaticText( - 'RRD/DHCP Backup', - 'These options have been relocated to the ' . '<a href="system_advanced_misc.php">' . 'System > Advanced, Miscellaneous</a> tab.' -)); - -if (file_exists("/conf/upgrade_log.txt")) { - $viewbtn = new Form_Button( - 'viewupgradelog', - 'View log', - null, - 'fa-file-text-o' - ); - $viewbtn->addClass('btn-primary btn-sm'); - - $section->addInput(new Form_StaticText( - 'View previous upgrade log', - $viewbtn - )); -} -$form->add($section); -print($form); - -if (file_exists("/conf/upgrade_log.txt") && $_POST['viewupgradelog']) { -?> - <div class="panel panel-default"> - <div class="panel-heading"><h2 class="panel-title"><?=gettext("Previous Upgrade Log")?></h2></div> - <!-- No white space between the <pre> and the first output or it will appear on the page! --> - <pre> - <?=str_ireplace("pfsense", $g['product_name'], file_get_contents("/conf/upgrade_log.txt"))?> - </pre> - </div> -<?php -} -require_once("foot.inc"); diff --git a/src/usr/local/www/diag_ndp.php b/src/usr/local/www/diag_ndp.php index 70a377e..a27d4ba 100644 --- a/src/usr/local/www/diag_ndp.php +++ b/src/usr/local/www/diag_ndp.php @@ -3,7 +3,7 @@ * diag_ndp.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2011 Seth Mos <seth.mos@dds.nl> * All rights reserved. * diff --git a/src/usr/local/www/diag_packet_capture.php b/src/usr/local/www/diag_packet_capture.php index 43dc9c1..5b15ada 100644 --- a/src/usr/local/www/diag_packet_capture.php +++ b/src/usr/local/www/diag_packet_capture.php @@ -3,7 +3,7 @@ * diag_packet_capture.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -188,7 +188,6 @@ if ($_POST) { if (!count($input_errors)) { $do_tcpdump = true; - conf_mount_rw(); if ($_POST['promiscuous']) { //if promiscuous mode is checked @@ -491,7 +490,6 @@ if ($do_tcpdump) : system("/usr/sbin/tcpdump {$disabledns} {$detail_args} {$iscarp} -r {$fp}{$fn}"); print('</textarea>'); - conf_mount_ro(); ?> </div> </div> diff --git a/src/usr/local/www/diag_pf_info.php b/src/usr/local/www/diag_pf_info.php index 78eefe6..0f73a00 100644 --- a/src/usr/local/www/diag_pf_info.php +++ b/src/usr/local/www/diag_pf_info.php @@ -3,7 +3,7 @@ * diag_pf_info.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/diag_pftop.php b/src/usr/local/www/diag_pftop.php index 5b42304..95d5d1d 100644 --- a/src/usr/local/www/diag_pftop.php +++ b/src/usr/local/www/diag_pftop.php @@ -3,7 +3,7 @@ * diag_pftop.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -53,7 +53,7 @@ if ($_REQUEST['getactivity']) { $numstate = "100"; } - $text = `pftop -b {$sorttype} -v {$viewtype} {$numstate}`; + $text = `pftop -b {$sorttype} -w 135 -v {$viewtype} {$numstate}`; echo trim($text); exit; } diff --git a/src/usr/local/www/diag_ping.php b/src/usr/local/www/diag_ping.php index 7ad0804..492e98a 100644 --- a/src/usr/local/www/diag_ping.php +++ b/src/usr/local/www/diag_ping.php @@ -3,7 +3,7 @@ * diag_ping.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2003-2005 Bob Zoller (bob@kludgebox.com) * All rights reserved. * diff --git a/src/usr/local/www/diag_reboot.php b/src/usr/local/www/diag_reboot.php index 595d44e..8b6229e 100644 --- a/src/usr/local/www/diag_reboot.php +++ b/src/usr/local/www/diag_reboot.php @@ -3,7 +3,7 @@ * diag_reboot.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/diag_resetstate.php b/src/usr/local/www/diag_resetstate.php index 5742689..b5d7a2a 100644 --- a/src/usr/local/www/diag_resetstate.php +++ b/src/usr/local/www/diag_resetstate.php @@ -3,7 +3,7 @@ * diag_resetstate.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/diag_routes.php b/src/usr/local/www/diag_routes.php index 15e83ff..13bd65d 100644 --- a/src/usr/local/www/diag_routes.php +++ b/src/usr/local/www/diag_routes.php @@ -3,7 +3,7 @@ * diag_routes.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2006 Fernando Lamos * All rights reserved. * diff --git a/src/usr/local/www/diag_smart.php b/src/usr/local/www/diag_smart.php index f77e161..5a34030 100644 --- a/src/usr/local/www/diag_smart.php +++ b/src/usr/local/www/diag_smart.php @@ -3,7 +3,7 @@ * diag_smart.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2006 Eric Friesen * All rights reserved. * @@ -41,8 +41,6 @@ if ($action != 'config') { $pgtitle[] = gettext('Config'); } $smartctl = "/usr/local/sbin/smartctl"; -$smartd = "/usr/local/sbin/smartd"; -$start_script = "/usr/local/etc/rc.d/smartd.sh"; $valid_test_types = array("offline", "short", "long", "conveyance"); $valid_info_types = array("i", "H", "c", "A", "a"); @@ -64,30 +62,6 @@ function add_colors($string) { return preg_replace($patterns, $replacements, $string); } -// Edits smartd.conf file, adds or removes email for failed disk reporting -function update_email($email) { - /* Bail if an e-mail address is invalid */ - if (!empty($email) && (filter_var($email, FILTER_VALIDATE_EMAIL) === false)) { - return; - } - - if (!file_exists("/usr/local/etc/smartd.conf") && file_exists("/usr/local/etc/smartd.conf.sample")) { - copy("/usr/local/etc/smartd.conf.sample", "/usr/local/etc/smartd.conf"); - } - // Did they pass an email? - if (!empty($email)) { - // Put it in the smartd.conf file - shell_exec("/usr/bin/sed -i .old " . escapeshellarg("s/^DEVICESCAN.*/DEVICESCAN -H -m {$email}/") . " /usr/local/etc/smartd.conf"); - } else { - // Remove email flags in smartd.conf - shell_exec("/usr/bin/sed -i .old 's/^DEVICESCAN.*/DEVICESCAN/' /usr/local/etc/smartd.conf"); - } -} - -function smartmonctl($action) { - global $start_script; - shell_exec($start_script . escapeshellarg($action)); -} $targetdev = basename($_POST['device']); if (!file_exists('/dev/' . $targetdev)) { @@ -95,14 +69,9 @@ if (!file_exists('/dev/' . $targetdev)) { return; } -$tab_array = array(); -$tab_array[0] = array(htmlspecialchars(gettext("Information & Tests")), ($action != 'config'), $_SERVER['PHP_SELF'] . "?action=default"); -$tab_array[1] = array(gettext("Config"), ($action == 'config'), $_SERVER['PHP_SELF'] . "?action=config"); -display_top_tabs($tab_array); - $specplatform = system_identify_specific_platform(); -if ($specplatform['name'] == "Hyper-V") { - echo gettext("S.M.A.R.T. is not supported in Hyper-V guests."); +if (($specplatform['name'] == "Hyper-V") || ($specplatform['name'] == "uFW")) { + echo sprintf(gettext("S.M.A.R.T. is not supported on this system (%s)."), $specplatform['descr']); include("foot.inc"); exit; } @@ -217,75 +186,6 @@ switch ($action) { break; } - // Config changes, users email in xml config and write changes to smartd.conf - case 'config': - { - if (isset($_POST['test'])) { - -// FIXME shell_exec($smartd . " -M test -m " . $config['system']['smartmonemail']); - $savemsg = sprintf(gettext("Email sent to %s"), $config['system']['smartmonemail']); - smartmonctl("stop"); - smartmonctl("start"); - $style = 'warning'; - } else if (isset($_POST['save'])) { - if (!empty($_POST['smartmonemail']) && (filter_var($_POST['smartmonemail'], FILTER_VALIDATE_EMAIL) === false)) { - $savemsg = "The supplied e-mail address is invalid."; - $style = 'danger'; - } else { - $config['system']['smartmonemail'] = $_POST['smartmonemail']; - write_config(); - $retval = 0; - config_lock(); - if (stristr($retval, "error") != true) { - $savemsg = get_std_save_message($retval); - $style = 'success'; - } else { - $savemsg = $retval; - $style='danger'; - } - config_unlock(); - // Write the changes to the smartd.conf file - update_email($_POST['smartmonemail']); - // Send sig HUP to smartd, rereads the config file - shell_exec("/usr/bin/killall -HUP smartd"); - } - } - - // Was the config changed? if so, print the message - if ($savemsg) { - print_info_box($savemsg, $style); - } - - // Get users email from the xml file - $pconfig['smartmonemail'] = $config['system']['smartmonemail']; - - $form = new Form(); - - $section = new Form_Section('Configuration'); - - $section->addInput(new Form_Input( - 'smartmonemail', - 'Email Address', - 'text', - $pconfig['smartmonemail'] - )); - - $form->add($section); - - if (!empty($pconfig['smartmonemail'])) { - $form->addGlobal(new Form_Button( - 'test', - 'Send test email', - null, - 'fa-send' - ))->addClass('btn-info'); - } - - print($form); - - break; - } - // Default page, prints the forms to view info, test, etc... default: { // Information diff --git a/src/usr/local/www/diag_sockets.php b/src/usr/local/www/diag_sockets.php index b962674..dcfc4c6 100644 --- a/src/usr/local/www/diag_sockets.php +++ b/src/usr/local/www/diag_sockets.php @@ -3,7 +3,7 @@ * diag_sockets.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/diag_states_summary.php b/src/usr/local/www/diag_states_summary.php index c870da9..72f4978 100644 --- a/src/usr/local/www/diag_states_summary.php +++ b/src/usr/local/www/diag_states_summary.php @@ -3,7 +3,7 @@ * diag_states_summary.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005 Colin Smith * All rights reserved. * diff --git a/src/usr/local/www/diag_system_activity.php b/src/usr/local/www/diag_system_activity.php index 6725c33..96f6b2e 100644 --- a/src/usr/local/www/diag_system_activity.php +++ b/src/usr/local/www/diag_system_activity.php @@ -3,7 +3,7 @@ * diag_system_activity.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/diag_tables.php b/src/usr/local/www/diag_tables.php index 13f6372..9fe3a8b 100644 --- a/src/usr/local/www/diag_tables.php +++ b/src/usr/local/www/diag_tables.php @@ -3,7 +3,7 @@ * diag_tables.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/diag_testport.php b/src/usr/local/www/diag_testport.php index 15d7574..68e3a60 100644 --- a/src/usr/local/www/diag_testport.php +++ b/src/usr/local/www/diag_testport.php @@ -3,7 +3,7 @@ * diag_testport.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/diag_traceroute.php b/src/usr/local/www/diag_traceroute.php index 45b646d..efb0d85 100644 --- a/src/usr/local/www/diag_traceroute.php +++ b/src/usr/local/www/diag_traceroute.php @@ -3,7 +3,7 @@ * diag_traceroute.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005 Paul Taylor (paultaylor@winndixie.com) * All rights reserved. * diff --git a/src/usr/local/www/easyrule.php b/src/usr/local/www/easyrule.php index c3842bc..161725e 100644 --- a/src/usr/local/www/easyrule.php +++ b/src/usr/local/www/easyrule.php @@ -3,7 +3,7 @@ * easyrule.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Originally Sponsored By Anathematic @ pfSense Forums * All rights reserved. * diff --git a/src/usr/local/www/firewall_aliases.php b/src/usr/local/www/firewall_aliases.php index 72e9849..55069d8 100644 --- a/src/usr/local/www/firewall_aliases.php +++ b/src/usr/local/www/firewall_aliases.php @@ -3,7 +3,7 @@ * firewall_aliases.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/firewall_aliases_edit.php b/src/usr/local/www/firewall_aliases_edit.php index 43a23ac..ad34a39 100644 --- a/src/usr/local/www/firewall_aliases_edit.php +++ b/src/usr/local/www/firewall_aliases_edit.php @@ -3,7 +3,7 @@ * firewall_aliases_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -132,6 +132,7 @@ if (isset($id) && $a_aliases[$id]) { } if ($_POST) { + unset($input_errors); $vertical_bar_err_text = gettext("Vertical bars (|) at start or end, or double in the middle of descriptions not allowed. Descriptions have been cleaned. Check and save again."); @@ -418,7 +419,7 @@ if ($_POST) { $tmpaddress .= "/" . $input_address_subnet[$idx]; } } - $address[] = $tmpaddress; + $address[] = addrtolower($tmpaddress); } unset($desc_fmt_err_found); if ($wrongaliases <> "") { diff --git a/src/usr/local/www/firewall_aliases_import.php b/src/usr/local/www/firewall_aliases_import.php index 9b6f71f..e70c453 100644 --- a/src/usr/local/www/firewall_aliases_import.php +++ b/src/usr/local/www/firewall_aliases_import.php @@ -3,7 +3,7 @@ * firewall_aliases_import.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/firewall_nat.php b/src/usr/local/www/firewall_nat.php index b0c35c3..6621108 100644 --- a/src/usr/local/www/firewall_nat.php +++ b/src/usr/local/www/firewall_nat.php @@ -3,7 +3,7 @@ * firewall_nat.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -129,6 +129,7 @@ if (isset($_POST['del_x'])) { /* delete selected rules */ if (is_array($_POST['rule']) && count($_POST['rule'])) { $a_separators = &$config['nat']['separator']; + $num_deleted = 0; foreach ($_POST['rule'] as $rulei) { $target = $rule['target']; @@ -136,16 +137,17 @@ if (isset($_POST['del_x'])) { // Check for filter rule associations if (isset($a_nat[$rulei]['associated-rule-id'])) { delete_id($a_nat[$rulei]['associated-rule-id'], $config['filter']['rule']); - mark_subsystem_dirty('filter'); } unset($a_nat[$rulei]); // Update the separators - $ridx = $rulei; + // As rules are deleted, $ridx has to be decremented or separator position will break + $ridx = $rulei - $num_deleted; $mvnrows = -1; move_separators($a_separators, $ridx, $mvnrows); + $num_deleted++; } if (write_config()) { @@ -191,6 +193,14 @@ display_top_tabs($tab_array); $columns_in_table = 13; ?> +<!-- Allow table to scroll when dragging outside of the display window --> +<style> +.table-responsive { + clear: both; + overflow-x: visible; + margin-bottom: 0px; +} +</style> <form action="firewall_nat.php" method="post" name="iform"> <div class="panel panel-default"> diff --git a/src/usr/local/www/firewall_nat_1to1.php b/src/usr/local/www/firewall_nat_1to1.php index b3bf479..5ae075b 100644 --- a/src/usr/local/www/firewall_nat_1to1.php +++ b/src/usr/local/www/firewall_nat_1to1.php @@ -3,7 +3,7 @@ * firewall_nat_1to1.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/firewall_nat_1to1_edit.php b/src/usr/local/www/firewall_nat_1to1_edit.php index 7efb07e..4d7ebe9 100644 --- a/src/usr/local/www/firewall_nat_1to1_edit.php +++ b/src/usr/local/www/firewall_nat_1to1_edit.php @@ -3,7 +3,7 @@ * firewall_nat_1to1_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -312,21 +312,20 @@ function build_dsttype_list() { if (is_array($config['virtualip']['vip'])) { foreach ($config['virtualip']['vip'] as $sn) { - if (isset($sn['noexpand'])) { - continue; - } - - if ($sn['mode'] == "proxyarp" && $sn['type'] == "network") { + if (($sn['mode'] == "proxyarp" || $sn['mode'] == "other") && $sn['type'] == "network") { + $list[$sn['subnet'] . '/' . $sn['subnet_bits']] = 'Subnet: ' . $sn['subnet'] . '/' . $sn['subnet_bits'] . ' (' . $sn['descr'] . ')'; + if (isset($sn['noexpand'])) { + continue; + } $start = ip2long32(gen_subnet($sn['subnet'], $sn['subnet_bits'])); $end = ip2long32(gen_subnet_max($sn['subnet'], $sn['subnet_bits'])); $len = $end - $start; - for ($i = 0; $i <= $len; $i++) { $snip = long2ip32($start+$i); $list[$snip] = $snip . ' (' . $sn['descr'] . ')'; } - + } else { $list[$sn['subnet']] = $sn['subnet'] . ' (' . $sn['descr'] . ')'; } } @@ -439,7 +438,7 @@ $group->add(new Form_IpAddress( 'src', null, is_specialnet($pconfig['src']) ? '': $pconfig['src'] -))->addMask('srcmask', $pconfig['srcmask'], 31)->setHelp('Address/mask')->setPattern('[a-zA-Z0-9\.\:\_]+'); +))->addMask('srcmask', $pconfig['srcmask'], 31)->setHelp('Address/mask')->setPattern('[a-zA-Z0-9.:_]+'); $group->setHelp('Enter the internal (LAN) subnet for the 1:1 mapping. ' . 'The subnet size specified for the internal subnet will be applied to the external subnet.'); @@ -466,7 +465,7 @@ $group->add(new Form_IpAddress( 'dst', null, is_specialnet($pconfig['dst']) ? '': $pconfig['dst'] -))->addMask('dstmask', $pconfig['dstmask'], 31)->setHelp('Address/mask')->setPattern('[a-zA-Z0-9\.\:\_]+'); +))->addMask('dstmask', $pconfig['dstmask'], 31)->setHelp('Address/mask')->setPattern('[a-zA-Z0-9.:_]+'); $group->setHelp('The 1:1 mapping will only be used for connections to or from the specified destination. Hint: this is usually "Any".'); diff --git a/src/usr/local/www/firewall_nat_edit.php b/src/usr/local/www/firewall_nat_edit.php index a16bbed..0450163 100644 --- a/src/usr/local/www/firewall_nat_edit.php +++ b/src/usr/local/www/firewall_nat_edit.php @@ -3,7 +3,7 @@ * firewall_nat_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -577,7 +577,8 @@ function build_dsttype_list() { if (is_ipaddrv6($sn['subnet'])) { continue; } - if ($sn['mode'] == "proxyarp" && $sn['type'] == "network") { + if (($sn['mode'] == "proxyarp" || $sn['mode'] == "other") && $sn['type'] == "network") { + $list[$sn['subnet'] . '/' . $sn['subnet_bits']] = 'Subnet: ' . $sn['subnet'] . '/' . $sn['subnet_bits'] . ' (' . $sn['descr'] . ')'; if (isset($sn['noexpand'])) { continue; } @@ -590,8 +591,6 @@ function build_dsttype_list() { $list[$snip] = $snip . ' (' . $sn['descr'] . ')'; } - - $list[$sn['subnet']] = $sn['subnet'] . ' (' . $sn['descr'] . ')'; } else { $list[$sn['subnet']] = $sn['subnet'] . ' (' . $sn['descr'] . ')'; } diff --git a/src/usr/local/www/firewall_nat_npt.php b/src/usr/local/www/firewall_nat_npt.php index e54a0f0..b585d99 100644 --- a/src/usr/local/www/firewall_nat_npt.php +++ b/src/usr/local/www/firewall_nat_npt.php @@ -3,7 +3,7 @@ * firewall_nat_npt.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2011 Seth Mos <seth.mos@dds.nl> * All rights reserved. * diff --git a/src/usr/local/www/firewall_nat_npt_edit.php b/src/usr/local/www/firewall_nat_npt_edit.php index 0fdfb58..0d79e2c 100644 --- a/src/usr/local/www/firewall_nat_npt_edit.php +++ b/src/usr/local/www/firewall_nat_npt_edit.php @@ -3,7 +3,7 @@ * firewall_nat_npt_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2011 Seth Mos <seth.mos@dds.nl> * All rights reserved. * diff --git a/src/usr/local/www/firewall_nat_out.php b/src/usr/local/www/firewall_nat_out.php index 57cb354..6915780 100644 --- a/src/usr/local/www/firewall_nat_out.php +++ b/src/usr/local/www/firewall_nat_out.php @@ -3,7 +3,7 @@ * firewall_nat_out.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -304,10 +304,10 @@ print($form); $alias = rule_columns_with_alias( - $natent['source']['address'], - pprint_port($natent['source']['port']), + $natent['source']['network'], + pprint_port($natent['sourceport']), $natent['destination']['address'], - pprint_port($natent['destination']['port']) + pprint_port($natent['dstport']) ); ?> diff --git a/src/usr/local/www/firewall_nat_out_edit.php b/src/usr/local/www/firewall_nat_out_edit.php index 0b4bbae..3f47dc2 100644 --- a/src/usr/local/www/firewall_nat_out_edit.php +++ b/src/usr/local/www/firewall_nat_out_edit.php @@ -3,7 +3,7 @@ * firewall_nat_out_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -97,6 +97,7 @@ if (isset($id) && $a_out[$id]) { $pconfig['targetip'] = $a_out[$id]['targetip']; $pconfig['targetip_subnet'] = $a_out[$id]['targetip_subnet']; $pconfig['poolopts'] = $a_out[$id]['poolopts']; + $pconfig['source_hash_key'] = $a_out[$id]['source_hash_key']; $pconfig['interface'] = $a_out[$id]['interface']; if (!$pconfig['interface']) { @@ -227,6 +228,7 @@ if ($_POST) { /* Verify Pool Options */ $poolopts = ""; + $source_hash_key = ""; if ($_POST['poolopts']) { if (is_subnet($_POST['target']) || ($_POST['target'] == "other-subnet")) { $poolopts = $_POST['poolopts']; @@ -237,6 +239,18 @@ if ($_POST) { $input_errors[] = gettext("Only Round Robin pool options may be chosen when selecting an alias."); } } + /* If specified, verify valid source-hash key or generate a valid key using md5 */ + if ($_POST['source_hash_key']) { + if (substr($_POST['source_hash_key'],0,2) == "0x") { + if (ctype_xdigit(substr($_POST['source_hash_key'],2)) && strlen($_POST['source_hash_key']) == 34) { + $source_hash_key = $_POST['source_hash_key']; + } else { + $input_errors[] = gettext("Incorrect format for source-hash key, \"0x\" must be followed by exactly 32 hexadecimal characters."); + } + } else { + $source_hash_key = "0x".md5($_POST['source_hash_key']); + } + } } /* if user has selected any as source, set it here */ @@ -279,6 +293,7 @@ if ($_POST) { $natent['targetip_subnet'] = (!isset($_POST['nonat'])) ? $_POST['targetip_subnet'] : ""; $natent['interface'] = $_POST['interface']; $natent['poolopts'] = $poolopts; + $natent['source_hash_key'] = $source_hash_key; /* static-port */ if (isset($_POST['staticnatport']) && $protocol_uses_ports && !isset($_POST['nonat'])) { @@ -371,16 +386,14 @@ function build_target_list() { if (is_array($config['virtualip']['vip'])) { foreach ($config['virtualip']['vip'] as $sn) { - if (isset($sn['noexpand'])) { - continue; - } - - if ($sn['mode'] == "proxyarp" && $sn['type'] == "network") { + if (($sn['mode'] == "proxyarp" || $sn['mode'] == "other") && $sn['type'] == "network") { + $list[$sn['subnet'] . '/' . $sn['subnet_bits']] = 'Subnet: ' . $sn['subnet'] . '/' . $sn['subnet_bits'] . ' (' . $sn['descr'] . ')'; + if (isset($sn['noexpand'])) { + continue; + } $start = ip2long32(gen_subnet($sn['subnet'], $sn['subnet_bits'])); $end = ip2long32(gen_subnet_max($sn['subnet'], $sn['subnet_bits'])); $len = $end - $start; - $list[$sn['subnet'] . '/' . $sn['subnet_bits']] = 'Subnet: ' . $sn['subnet'] . '/' . $sn['subnet_bits'] . ' (' . $sn['descr'] . ')'; - for ($i = 0; $i <= $len; $i++) { $snip = long2ip32($start+$i); @@ -460,7 +473,7 @@ $section->addInput(new Form_Select( 'Interface', $pconfig['interface'], $interfaces -))->setHelp('Choose which interface this rule applies to. In most cases "WAN" is specified.'); +))->setHelp('The interface on which traffic is matched as it exits the firewall. In most cases this is "WAN" or another externally-connected interface.'); $protocols = "any TCP UDP TCP/UDP ICMP ESP AH GRE IPV6 IGMP carp pfsync"; @@ -484,14 +497,14 @@ $group->add(new Form_IpAddress( 'source', null, $pconfig['source'] -))->addMask('source_subnet', $pconfig['source_subnet'])->setHelp('Source network for the outbound NAT mapping.')->setPattern('[a-zA-Z0-9\_\.\:]+'); +))->addMask('source_subnet', $pconfig['source_subnet'])->setHelp('Source network for the outbound NAT mapping.')->setPattern('[a-zA-Z0-9_.:]+'); $group->add(new Form_Input( 'sourceport', null, 'text', $pconfig['sourceport'] -))->setHelp('Port')->setWidth('2'); +))->setHelp('Port or Range')->setWidth('2'); $section->add($group); @@ -508,14 +521,14 @@ $group->add(new Form_IpAddress( 'destination', null, $pconfig['destination'] == "any" ? "":$pconfig['destination'] -))->addMask('destination_subnet', $pconfig['destination_subnet'])->setHelp('Destination network for the outbound NAT mapping.')->setPattern('[a-zA-Z0-9\_\.\:]+'); +))->addMask('destination_subnet', $pconfig['destination_subnet'])->setHelp('Destination network for the outbound NAT mapping.')->setPattern('[a-zA-Z0-9_.:]+'); $group->add(new Form_Input( 'dstport', null, 'text', $pconfig['dstport'] -))->setHelp('Port')->setWidth('2'); +))->setHelp('Port or Range')->setWidth('2'); $section->add($group); @@ -536,18 +549,17 @@ $section->addInput(new Form_Select( 'Address', $pconfig['target'], build_target_list() -)); +))->setHelp( 'Connections matching this rule will be mapped to the specified <b>Address</b>.' . '<br />' . + 'The <b>Address</b> can be an Interface, a Host-type Alias, or a ' . + '<a href="firewall_virtual_ip.php">' . gettext("Virtual IP") . '</a> ' . ' address.'); $section->addInput(new Form_IpAddress( 'targetip', 'Other subnet', $pconfig['targetip'] -))->addMask('targetip_subnet', $pconfig['targetip_subnet'])->addClass('othersubnet')->setHelp( - 'Packets matching this rule will be mapped to the IP address given here.' . '<br />' . - 'To apply this rule to a different IP address than the IP address of the interface chosen above, ' . - 'select it here (' . - '<a href="firewall_virtual_ip.php">' . gettext("Virtual IP") . '</a> ' . - 'addresses need to be defined on the interface first)'); +))->addMask('targetip_subnet', $pconfig['targetip_subnet'])->setHelp( + 'This subnet must be routed to the firewall or each address in the subnet must be defined in one or more ' . + '<a href="firewall_virtual_ip.php">' . gettext("Virtual IP") . '</a> ' . ' addresses.'); $section->addInput(new Form_Select( 'poolopts', @@ -571,7 +583,14 @@ $section->addInput(new Form_Select( '<li>' . 'Sticky Address: The Sticky Address option can be used with the Random and Round Robin pool types to ensure that a particular source address is always mapped to the same translation address.' . '</li>' . '</ul><span class="help-block">'); -$group = new Form_Group('Port'); +$section->addInput(new Form_Input( + 'source_hash_key', + 'Source Hash Key', + 'text', + $pconfig['source_hash_key'] +))->setHelp('The key that is fed to the hashing algorithm in hex format, preceeded by "0x", or any string. A non-hex string is hashed using md5 to a hexadecimal key. Defaults to a randomly generated value.')->setWidth(10); + +$group = new Form_Group('Port or Range'); $group->addClass('natportgrp'); $group->add(new Form_Input( @@ -579,12 +598,15 @@ $group->add(new Form_Input( null, 'text', $pconfig['natport'] -))->setHelp('Enter the source port or range for the outbound NAT mapping.'); +))->setHelp('Enter the external source <b>Port or Range</b> used for remapping '. + 'the original source port on connections matching the rule. <br/><br/>'. + 'Port ranges are a low port and high port number separated by ":".<br/>'. + 'Leave blank when <b>Static Port</b> is checked.'); $group->add(new Form_Checkbox( 'staticnatport', null, - 'Static port', + 'Static Port', $pconfig['staticnatport'] )); @@ -714,17 +736,25 @@ events.push(function() { function poolopts_change() { if ($('#target option:selected').text().trim().substring(0,4) == "Host") { hideInput('poolopts', false); - hideGroupClass('othersubnet', true); + hideInput('source_hash_key', true); + hideIpAddress('targetip', true); } else if ($('#target option:selected').text().trim().substring(0,6) == "Subnet") { hideInput('poolopts', false); - hideGroupClass('othersubnet', true); + hideInput('source_hash_key', true); + hideIpAddress('targetip', true); } else if ($('#target option:selected').text().trim().substring(0,5) == "Other") { hideInput('poolopts', false); - hideGroupClass('othersubnet', false); + hideIpAddress('targetip', false); + if ($('#poolopts option:selected').text().trim().substring(0,6) == "Source") { + hideInput('source_hash_key', false); + }else { + hideInput('source_hash_key', true); + } } else { $('#poolopts').prop('selectedIndex',0); hideInput('poolopts', true); - hideGroupClass('othersubnet', true); + hideInput('source_hash_key', true); + hideIpAddress('targetip', true); $('#targetip').val(''); $('#targetip_subnet').val('0'); } @@ -755,6 +785,10 @@ events.push(function() { poolopts_change(); }); + $('#poolopts').on('change', function() { + poolopts_change(); + }); + // Set initial states staticportchange(); sourcesel_change(); diff --git a/src/usr/local/www/firewall_rules.php b/src/usr/local/www/firewall_rules.php index 57f0c2c..56899cc 100644 --- a/src/usr/local/www/firewall_rules.php +++ b/src/usr/local/www/firewall_rules.php @@ -3,7 +3,7 @@ * firewall_rules.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -163,14 +163,10 @@ if ($config['openvpn']["openvpn-server"] || $config['openvpn']["openvpn-client"] } if (!$if || !isset($iflist[$if])) { - if ("any" == $if) { + if ($if != "any" && $if != "FloatingRules" && isset($iflist['wan'])) { + $if = "wan"; + } else { $if = "FloatingRules"; - } else if ("FloatingRules" != $if) { - if (isset($iflist['wan'])) { - $if = "wan"; - } else { - $if = "FloatingRules"; - } } } @@ -221,6 +217,7 @@ if (isset($_POST['del_x'])) { if (is_array($_POST['rule']) && count($_POST['rule'])) { $a_separators = &$config['filter']['separator'][strtolower($if)]; + $num_deleted = 0; foreach ($_POST['rule'] as $rulei) { delete_nat_association($a_filter[$rulei]['associated-rule-id']); @@ -228,9 +225,11 @@ if (isset($_POST['del_x'])) { $deleted = true; // Update the separators - $ridx = ifridx($if, $rulei); // get rule index within interface + // As rules are deleted, $ridx has to be decremented or separator position will break + $ridx = ifridx($if, $rulei) - $num_deleted; // get rule index within interface $mvnrows = -1; move_separators($a_separators, $ridx, $mvnrows); + $num_deleted++; } if ($deleted) { @@ -363,11 +362,20 @@ $rulescnt = pfSense_get_pf_rules(); $columns_in_table = 13; ?> +<!-- Allow table to scroll when dragging outside of the display window --> +<style> +.table-responsive { + clear: both; + overflow-x: visible; + margin-bottom: 0px; +} +</style> + <form method="post"> <div class="panel panel-default"> <div class="panel-heading"><h2 class="panel-title"><?=gettext("Rules (Drag to Change Order)")?></h2></div> <div id="mainarea" class="table-responsive panel-body"> - <table id="ruletable" class="table table-hover table-striped table-condensed"> + <table id="ruletable" class="table table-hover table-striped table-condensed" style="overflow-x: 'visible'"> <thead> <tr> <th><!-- checkbox --></th> @@ -947,6 +955,9 @@ events.push(function() { $('table tbody.user-entries').sortable({ cursor: 'grabbing', + scroll: true, + overflow: 'scroll', + scrollSensitivity: 100, update: function(event, ui) { $('#order-store').removeAttr('disabled'); reindex_rules(ui.item.parent('tbody')); diff --git a/src/usr/local/www/firewall_rules_edit.php b/src/usr/local/www/firewall_rules_edit.php index 84562df..1a7d40a 100644 --- a/src/usr/local/www/firewall_rules_edit.php +++ b/src/usr/local/www/firewall_rules_edit.php @@ -3,7 +3,7 @@ * firewall_rules_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -42,8 +42,8 @@ if (isset($_POST['referer'])) { } function is_posnumericint($arg) { - // Note that to be safe we do not allow any leading zero - "01", "007" - return (is_numericint($arg) && $arg[0] != '0' && $arg > 0); + // Integer > 0? (Note that to be safe we do not allow any leading zero - "01", "007") + return (is_numericint($arg) && $arg[0] != '0'); } function is_aoadv_used($rule_config) { @@ -305,33 +305,28 @@ if ($_POST) { if (($_POST['ipprotocol'] <> "") && ($_POST['gateway'] <> "")) { if (is_array($config['gateways']['gateway_group'])) { foreach ($config['gateways']['gateway_group'] as $gw_group) { - if ($gw_group['name'] == $_POST['gateway']) { - $family = $a_gatewaygroups[$_POST['gateway']]['ipprotocol']; - if ($_POST['ipprotocol'] == $family) { - continue; - } - if (($_POST['ipprotocol'] == "inet46") && ($_POST['ipprotocol'] != $family)) { - $input_errors[] = gettext("A gateway can not be assigned to a rule that applies to IPv4 and IPv6"); - } - if (($_POST['ipprotocol'] == "inet6") && ($_POST['ipprotocol'] != $family)) { - $input_errors[] = gettext("An IPv4 gateway group can not be assigned on an IPv6 Address Family rule"); - } - if (($_POST['ipprotocol'] == "inet") && ($_POST['ipprotocol'] != $family)) { - $input_errors[] = gettext("An IPv6 gateway group can not be assigned on an IPv4 Address Family rule"); + if ($gw_group['name'] == $_POST['gateway'] && $_POST['ipprotocol'] != $a_gatewaygroups[$_POST['gateway']]['ipprotocol']) { + if ($_POST['ipprotocol'] == "inet46") { + $input_errors[] = gettext("Gateways can not be assigned in a rule that applies to both IPv4 and IPv6."); + } elseif ($_POST['ipprotocol'] == "inet6") { + $input_errors[] = gettext("An IPv4 gateway group can not be assigned in IPv6 rules."); + } elseif ($_POST['ipprotocol'] == "inet") { + $input_errors[] = gettext("An IPv6 gateway group can not be assigned in IPv4 rules."); } } } } - } - if (($_POST['ipprotocol'] <> "") && ($_POST['gateway'] <> "") && (is_ipaddr(lookup_gateway_ip_by_name($_POST['gateway'])))) { - if (($_POST['ipprotocol'] == "inet46") && ($_POST['gateway'] <> "")) { - $input_errors[] = gettext("A gateway can not be assigned to a rule that applies to IPv4 and IPv6"); - } - if (($_POST['ipprotocol'] == "inet6") && (!is_ipaddrv6(lookup_gateway_ip_by_name($_POST['gateway'])))) { - $input_errors[] = gettext("An IPv4 Gateway can not be assigned to an IPv6 Filter rule"); - } - if (($_POST['ipprotocol'] == "inet") && (!is_ipaddrv4(lookup_gateway_ip_by_name($_POST['gateway'])))) { - $input_errors[] = gettext("An IPv6 Gateway can not be assigned to an IPv4 Filter rule"); + if ($iptype = is_ipaddr(lookup_gateway_ip_by_name($_POST['gateway']))) { + // this also implies that $_POST['gateway'] was set and not empty + if ($_POST['ipprotocol'] == "inet46") { + $input_errors[] = gettext("Gateways can not be assigned in a rule that applies to both IPv4 and IPv6."); + } + if (($_POST['ipprotocol'] == "inet6") && ($iptype != 6)) { + $input_errors[] = gettext("An IPv4 gateway can not be assigned in IPv6 rules."); + } + if (($_POST['ipprotocol'] == "inet") && ($iptype != 4)) { + $input_errors[] = gettext("An IPv6 gateway can not be assigned in IPv4 rules."); + } } } if (($_POST['proto'] == "icmp") && ($_POST['icmptype'] <> "")) { @@ -492,10 +487,10 @@ if ($_POST) { } if ($_POST['src']) { - $_POST['src'] = trim($_POST['src']); + $_POST['src'] = addrtolower(trim($_POST['src'])); } if ($_POST['dst']) { - $_POST['dst'] = trim($_POST['dst']); + $_POST['dst'] = addrtolower(trim($_POST['dst'])); } /* if user enters an alias and selects "network" then disallow. */ @@ -528,7 +523,7 @@ if ($_POST) { } if ((is_ipaddr($_POST['src']) && is_ipaddr($_POST['dst']))) { if (!validate_address_family($_POST['src'], $_POST['dst'])) { - $input_errors[] = sprintf(gettext("The Source IP address %s Address Family differs from the destination %s."), $_POST['src'], $_POST['dst']); + $input_errors[] = gettext("The source and destination IP addresses must have the same family (IPv4 / IPv6)."); } } if ((is_ipaddrv6($_POST['src']) || is_ipaddrv6($_POST['dst'])) && ($_POST['ipprotocol'] == "inet")) { @@ -539,7 +534,7 @@ if ($_POST) { } if ((is_ipaddr($_POST['src']) || is_ipaddr($_POST['dst'])) && ($_POST['ipprotocol'] == "inet46")) { - $input_errors[] = gettext("An IPv4 or IPv6 address can not be used in combined IPv4 + IPv6 rules."); + $input_errors[] = gettext("IPv4 and IPv6 addresses can not be used in rules that apply to both IPv4 and IPv6."); } if ($_POST['srcbeginport'] > $_POST['srcendport']) { @@ -1270,7 +1265,10 @@ foreach (['src' => 'Source', 'dst' => 'Destination'] as $type => $name) { // The rule type dropdown on the GUI can be one of the special names like // "any" "LANnet" "LAN address"... or "Single host or alias" or "Network" - if (is_specialnet($pconfig[$type])) { + if ($pconfig[$type.'type']) { + // The rule type came from the $_POST array, after input errors, so keep it. + $ruleType = $pconfig[$type.'type']; + } elseif (is_specialnet($pconfig[$type])) { // It is one of the special names, let it through as-is. $ruleType = $pconfig[$type]; } elseif ((is_ipaddrv6($pconfig[$type]) && $pconfig[$type.'mask'] == 128) || @@ -1323,26 +1321,28 @@ foreach (['src' => 'Source', 'dst' => 'Destination'] as $type => $name) { $type, $name .' Address', $pconfig[$type] - ))->addMask($type .'mask', $pconfig[$type.'mask'])->setPattern('[a-zA-Z0-9\_\.\:]+'); + ))->addMask($type .'mask', $pconfig[$type.'mask'])->setPattern('[a-zA-Z0-9_.:]+'); $section->add($group); if ($type == 'src') { $section->addInput(new Form_Button( - 'btnsrcadv', - 'Display Advanced', + 'btnsrctoggle', + '', null, 'fa-cog' - ))->setAttribute('type','button')->addClass('btn-info btn-sm'); + ))->setAttribute('type','button')->addClass('btn-info btn-sm')->setHelp( + 'The <b>Source Port Range</b> for a connection is typically random '. + 'and almost never equal to the destination port. '. + 'In most cases this setting must remain at its default value, <b>any</b>.'); } $portValues = ['' => gettext('(other)'), 'any' => gettext('any')]; - foreach ($wkports as $port => $portName) { $portValues[$port] = $portName.' ('. $port .')'; } - $group = new Form_Group($name .' port range'); + $group = new Form_Group($name .' Port Range'); $group->addClass($type . 'portrange'); @@ -1374,16 +1374,7 @@ foreach (['src' => 'Source', 'dst' => 'Destination'] as $type => $name) { (isset($portValues[ $pconfig[$type .'endport'] ]) ? null : $pconfig[$type .'endport']) ))->setHelp('Custom'); - - if ($type == 'src') - $group->setHelp('Specify the source port or port range for this rule. This is '. - 'usually random and almost never equal to the destination port range (and '. - 'should usually be <b>any</b>). The "To" field may be left '. - 'empty if only filtering a single port.'); - else - $group->setHelp('Specify the destination port or port range for this rule. ' . - 'The "To" field may be left empty if only filtering a '. - 'single port.'); + $group->setHelp(sprintf('Specify the %s port or port range for this rule. The "To" field may be left empty if only filtering a single port.',strtolower($name))); $group->addClass(($type == 'src') ? 'srcprtr':'dstprtr'); $section->add($group); @@ -1803,7 +1794,7 @@ events.push(function() { } else { text = "<?=gettext('Display Advanced');?>"; } - $('#btnsrcadv').html('<i class="fa fa-cog"></i> ' + text); + $('#btnsrctoggle').html('<i class="fa fa-cog"></i> ' + text); } function typesel_change() { @@ -1889,7 +1880,7 @@ events.push(function() { if ($('#proto').find(":selected").index() <= 2) { hideClass('dstprtr', false); - hideInput('btnsrcadv', false); + hideInput('btnsrctoggle', false); if ((($('#srcbeginport').val() == "any") || ($('#srcbeginport').val() == "")) && (($('#srcendport').val() == "any") || ($('#srcendport').val() == ""))) { srcportsvisible = false; @@ -1898,7 +1889,7 @@ events.push(function() { } } else { hideClass('dstprtr', true); - hideInput('btnsrcadv', true); + hideInput('btnsrctoggle', true); srcportsvisible = false; } @@ -1934,7 +1925,7 @@ events.push(function() { ext_change(); }); - $('#btnsrcadv').click(function() { + $('#btnsrctoggle').click(function() { srcportsvisible = !srcportsvisible; show_source_port_range(); }); diff --git a/src/usr/local/www/firewall_schedule.php b/src/usr/local/www/firewall_schedule.php index e90c7ff..1c7b866 100644 --- a/src/usr/local/www/firewall_schedule.php +++ b/src/usr/local/www/firewall_schedule.php @@ -3,7 +3,7 @@ * firewall_schedule.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/firewall_schedule_edit.php b/src/usr/local/www/firewall_schedule_edit.php index 2168631..dcabeed 100644 --- a/src/usr/local/www/firewall_schedule_edit.php +++ b/src/usr/local/www/firewall_schedule_edit.php @@ -3,7 +3,7 @@ * firewall_schedule_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/firewall_shaper.php b/src/usr/local/www/firewall_shaper.php index 6abb201..54f38bb 100644 --- a/src/usr/local/www/firewall_shaper.php +++ b/src/usr/local/www/firewall_shaper.php @@ -3,7 +3,7 @@ * firewall_shaper.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/firewall_shaper_queues.php b/src/usr/local/www/firewall_shaper_queues.php index 27e4283..d91e16c 100644 --- a/src/usr/local/www/firewall_shaper_queues.php +++ b/src/usr/local/www/firewall_shaper_queues.php @@ -3,7 +3,7 @@ * firewall_shaper_queues.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/firewall_shaper_vinterface.php b/src/usr/local/www/firewall_shaper_vinterface.php index 171c44b..74526e9 100644 --- a/src/usr/local/www/firewall_shaper_vinterface.php +++ b/src/usr/local/www/firewall_shaper_vinterface.php @@ -3,7 +3,7 @@ * firewall_shaper_vinterface.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/firewall_shaper_wizards.php b/src/usr/local/www/firewall_shaper_wizards.php index 7c79141..440f8c8 100644 --- a/src/usr/local/www/firewall_shaper_wizards.php +++ b/src/usr/local/www/firewall_shaper_wizards.php @@ -3,7 +3,7 @@ * firewall_shaper_wizards.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/firewall_virtual_ip.php b/src/usr/local/www/firewall_virtual_ip.php index ad6cc57..33a1f4f 100644 --- a/src/usr/local/www/firewall_virtual_ip.php +++ b/src/usr/local/www/firewall_virtual_ip.php @@ -3,7 +3,7 @@ * firewall_virtual_ip.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005 Bill Marquette <bill.marquette@gmail.com> * All rights reserved. * diff --git a/src/usr/local/www/firewall_virtual_ip_edit.php b/src/usr/local/www/firewall_virtual_ip_edit.php index 8bd2d89..02ff722 100644 --- a/src/usr/local/www/firewall_virtual_ip_edit.php +++ b/src/usr/local/www/firewall_virtual_ip_edit.php @@ -3,7 +3,7 @@ * firewall_virtual_ip_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005 Bill Marquette <bill.marquette@gmail.com> * All rights reserved. * @@ -72,7 +72,6 @@ if (isset($id) && $a_vip[$id]) { $pconfig['advskew'] = $a_vip[$id]['advskew']; $pconfig['advbase'] = $a_vip[$id]['advbase']; $pconfig['password'] = $a_vip[$id]['password']; - $pconfig['range'] = $a_vip[$id]['range']; $pconfig['subnet'] = $a_vip[$id]['subnet']; $pconfig['subnet_bits'] = $a_vip[$id]['subnet_bits']; $pconfig['noexpand'] = $a_vip[$id]['noexpand']; @@ -210,14 +209,8 @@ if ($_POST) { $vipent['mode'] = $_POST['mode']; $vipent['interface'] = $_POST['interface']; - /* ProxyARP specific fields */ - if ($_POST['mode'] === "proxyarp") { - if ($_POST['type'] == "range") { - $vipent['range']['from'] = $_POST['range_from']; - $vipent['range']['to'] = $_POST['range_to']; - - } - + /* ProxyARP & Other specific fields */ + if (($_POST['mode'] === "proxyarp") || ($_POST['mode'] === "other")) { $vipent['noexpand'] = isset($_POST['noexpand']); } @@ -373,7 +366,7 @@ $section->addInput(new Form_Select( $section->addInput(new Form_Select( 'type', 'Address type', - ((!$pconfig['range'] && $pconfig['subnet_bits'] == 32) || (!isset($pconfig['subnet']))) ? 'single':'network', + (!isset($pconfig['subnet'])) ? 'single':'network', array( 'single' => gettext('Single address'), 'network' => gettext('Network') @@ -508,10 +501,12 @@ events.push(function() { $('#address_note').html("<?=$proxyarphelp?>"); disableInput('type', false); disableInput('subnet_bits', ($('#type').val() == 'single')); + hideCheckbox('noexpand', false); } else { $('#address_note').html(''); disableInput('type', false); disableInput('subnet_bits', ($('#type').val() == 'single')); + hideCheckbox('noexpand', false); } } diff --git a/src/usr/local/www/foot.inc b/src/usr/local/www/foot.inc index c21e794..5037860 100644 --- a/src/usr/local/www/foot.inc +++ b/src/usr/local/www/foot.inc @@ -3,7 +3,7 @@ * foot.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/getserviceproviders.php b/src/usr/local/www/getserviceproviders.php index 2ae719a..12e3fa1 100644 --- a/src/usr/local/www/getserviceproviders.php +++ b/src/usr/local/www/getserviceproviders.php @@ -3,7 +3,7 @@ * getserviceproviders.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Vinicius Coque <vinicius.coque@bluepex.com> * All rights reserved. * diff --git a/src/usr/local/www/getstats.php b/src/usr/local/www/getstats.php index fd8d88d..9bc913f 100644 --- a/src/usr/local/www/getstats.php +++ b/src/usr/local/www/getstats.php @@ -3,7 +3,7 @@ * getstats.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2009 Bill Marquette * All rights reserved. * diff --git a/src/usr/local/www/graph.php b/src/usr/local/www/graph.php index 1578418..f5ec63e 100644 --- a/src/usr/local/www/graph.php +++ b/src/usr/local/www/graph.php @@ -3,7 +3,7 @@ * graph.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2004-2006 T. Lechat <dev@lechat.org> * Copyright (c) 2004-2006 Jonathan Watt <jwatt@jwatt.org> * All rights reserved. diff --git a/src/usr/local/www/graph_cpu.php b/src/usr/local/www/graph_cpu.php index 58e2575..ac5538f 100644 --- a/src/usr/local/www/graph_cpu.php +++ b/src/usr/local/www/graph_cpu.php @@ -3,7 +3,7 @@ * graph_cpu.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2004-2006 T. Lechat <dev@lechat.org> * Copyright (c) 2004-2006 Jonathan Watt <jwatt@jwatt.org> * All rights reserved. diff --git a/src/usr/local/www/guiconfig.inc b/src/usr/local/www/guiconfig.inc index 06f8701..38a6c17 100644 --- a/src/usr/local/www/guiconfig.inc +++ b/src/usr/local/www/guiconfig.inc @@ -3,7 +3,7 @@ * guiconfig.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -27,6 +27,7 @@ /* THIS MUST BE ABOVE ALL OTHER CODE */ if (!$nocsrf) { function csrf_startup() { + global $config; csrf_conf('rewrite-js', '/csrf/csrf-magic.js'); $timeout_minutes = isset($config['system']['webgui']['session_timeout']) ? $config['system']['webgui']['session_timeout'] : 240; csrf_conf('expires', $timeout_minutes * 60); diff --git a/src/usr/local/www/head.inc b/src/usr/local/www/head.inc index b4cd4a2..dbbf15c 100644 --- a/src/usr/local/www/head.inc +++ b/src/usr/local/www/head.inc @@ -3,7 +3,7 @@ * head.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -212,9 +212,7 @@ $system_menu[] = array(gettext("Advanced"), "/system_advanced_admin.php"); $system_menu[] = array(gettext("Update"), "/pkg_mgr_install.php?id=firmware"); $system_menu[] = array(gettext("General Setup"), "/system.php"); $system_menu[] = array(gettext("High Avail. Sync"), "/system_hasync.php"); -if ($g['platform'] == $g['product_name'] or $g['platform'] == "nanobsd") { - $system_menu[] = array(gettext("Package Manager"), "/pkg_mgr_installed.php"); -} +$system_menu[] = array(gettext("Package Manager"), "/pkg_mgr_installed.php"); $system_menu[] = array(gettext("Setup Wizard"), "/wizard.php?xml=setup_wizard.xml"); $system_menu[] = array(gettext("Routing"), "/system_gateways.php"); $system_menu[] = array(gettext("Cert. Manager"), "/system_camanager.php"); @@ -241,7 +239,10 @@ foreach ($opts as $oif => $odescr) { $interfaces_menu[] = array(htmlspecialchars($odescr), "/interfaces.php?if={$oif}"); } } -$interfaces_menu = msort(array_merge($interfaces_menu, return_ext_menu("Interfaces")), 0); + +// Interface list no longer sorted per Redmine #6753 +// $interfaces_menu = msort(array_merge($interfaces_menu, return_ext_menu("Interfaces")), 0); +$interfaces_menu = array_merge($interfaces_menu, return_ext_menu("Interfaces")); // Firewall $firewall_menu = array(); @@ -299,17 +300,13 @@ $status_menu[] = array(gettext("Dashboard"), "/index.php"); $status_menu[] = array(gettext("Gateways"), "/status_gateways.php"); $status_menu[] = array(gettext("DHCP Leases"), "/status_dhcp_leases.php"); $status_menu[] = array(gettext("DHCPv6 Leases"), "/status_dhcpv6_leases.php"); -$status_menu[] = array(gettext("Filter Reload"), "/status_filter_reload.php"); +$status_menu[] = array(gettext("Filter Reload"), "/status_filter_reload.php?user=true"); $status_menu[] = array(gettext("Interfaces"), "/status_interfaces.php"); $status_menu[] = array(gettext("IPsec"), "/status_ipsec.php"); $status_menu[] = array(gettext("Load Balancer"), "/status_lb_pool.php"); $status_menu[] = array(gettext("NTP"), "/status_ntpd.php"); $status_menu[] = array(gettext("OpenVPN"), "/status_openvpn.php"); - -if ($g['platform'] == $g['product_name']) { - $status_menu[] = array(gettext("Package Logs"), "/status_pkglogs.php"); -} - +$status_menu[] = array(gettext("Package Logs"), "/status_pkglogs.php"); $status_menu[] = array(gettext("Queues"), "/status_queues.php"); $status_menu[] = array(gettext("Services"), "/status_services.php"); $status_menu[] = array(gettext("System Logs"), "/status_logs.php"); @@ -365,14 +362,6 @@ $diagnostics_menu[] = array(gettext("System Activity"), "/diag_system_activity.p $diagnostics_menu[] = array(gettext("Traceroute"), "/diag_traceroute.php"); $diagnostics_menu[] = array(gettext("Packet Capture"), "/diag_packet_capture.php"); -if ($g['platform'] == "nanobsd") { - $diagnostics_menu[] = array(gettext("NanoBSD"), "/diag_nanobsd.php"); -} - -if (isset($config['system']['developer'])) { - $diagnostics_menu[] = array(gettext("Restart HTTPD"), "/restart_httpd.php", "style" => "font-weight: bold; color: yellow;"); -} - $diagnostics_menu = msort(array_merge($diagnostics_menu, return_ext_menu("Diagnostics")), 0); $gold_menu = array(); @@ -650,7 +639,7 @@ if (are_notices_pending()):?> <a href="<?=htmlspecialchars($notice['url'])?>"><?=htmlspecialchars($notice['id'])?></a> - <?php endif;?> </b> - <?=htmlspecialchars($notice['notice'])?> + <?=str_replace("\n", "<br/>", htmlspecialchars($notice['notice']))?> <i>@ <?=date('Y-m-d H:i:s', $notice['time'])?></i> </li> <?php endforeach;?> diff --git a/src/usr/local/www/help.php b/src/usr/local/www/help.php index 6d64b89..9954067 100644 --- a/src/usr/local/www/help.php +++ b/src/usr/local/www/help.php @@ -3,7 +3,7 @@ * help.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -81,7 +81,6 @@ $helppages = array( 'status_logs_filter_summary.php' => 'https://doc.pfsense.org/index.php/Firewall_Logs', 'status_logs_settings.php' => 'https://doc.pfsense.org/index.php/Log_Settings', 'status_logs_vpn.php' => 'https://doc.pfsense.org/index.php/PPTP_VPN_Logs', - 'diag_nanobsd.php' => 'https://doc.pfsense.org/index.php/NanoBSD_Diagnostics', 'diag_ping.php' => 'https://doc.pfsense.org/index.php/Ping_Host', 'status_pkglogs.php' => 'https://doc.pfsense.org/index.php/Package_Logs', 'diag_tables.php' => 'https://doc.pfsense.org/index.php/Tables', diff --git a/src/usr/local/www/ifstats.php b/src/usr/local/www/ifstats.php index 8f1c300..c06c51d 100644 --- a/src/usr/local/www/ifstats.php +++ b/src/usr/local/www/ifstats.php @@ -3,7 +3,7 @@ * ifstats.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/includes/functions.inc.php b/src/usr/local/www/includes/functions.inc.php index 144648c..3f727fb 100644 --- a/src/usr/local/www/includes/functions.inc.php +++ b/src/usr/local/www/includes/functions.inc.php @@ -3,7 +3,7 @@ * functions.inc.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2013-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2013-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/index.php b/src/usr/local/www/index.php index 8ff71eb..2995ad8 100644 --- a/src/usr/local/www/index.php +++ b/src/usr/local/www/index.php @@ -3,7 +3,7 @@ * index.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -155,19 +155,15 @@ if (file_exists("/usr/sbin/swapinfo")) { ## If packages are installed lets resync if (file_exists('/conf/needs_package_sync')) { if ($config['installedpackages'] <> '' && is_array($config['installedpackages']['package'])) { - if ($g['platform'] == $g['product_name'] || $g['platform'] == "nanobsd") { - ## If the user has logged into webGUI quickly while the system is booting then do not redirect them to - ## the package reinstall page. That is about to be done by the boot script anyway. - ## The code in head.inc will put up a notice to the user. - if (!platform_booting()) { - header('Location: pkg_mgr_install.php?mode=reinstallall'); - exit; - } + ## If the user has logged into webGUI quickly while the system is booting then do not redirect them to + ## the package reinstall page. That is about to be done by the boot script anyway. + ## The code in head.inc will put up a notice to the user. + if (!platform_booting()) { + header('Location: pkg_mgr_install.php?mode=reinstallall'); + exit; } } else { - conf_mount_rw(); @unlink('/conf/needs_package_sync'); - conf_mount_ro(); } } @@ -211,8 +207,7 @@ if ($fd) { or preg_match("/.*(VIA Padlock)/", $dmesgl, $matches) or preg_match("/^safe.: (\w.*)/", $dmesgl, $matches) or preg_match("/^ubsec.: (.*?),/", $dmesgl, $matches) - or preg_match("/^padlock.: <(.*?)>,/", $dmesgl, $matches) - or preg_match("/^glxsb.: (.*?),/", $dmesgl, $matches)) { + or preg_match("/^padlock.: <(.*?)>,/", $dmesgl, $matches)) { $hwcrypto = $matches[1]; break; } diff --git a/src/usr/local/www/interfaces.php b/src/usr/local/www/interfaces.php index 2e5bf0d..18be1a0 100644 --- a/src/usr/local/www/interfaces.php +++ b/src/usr/local/www/interfaces.php @@ -3,7 +3,7 @@ * interfaces.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2006 Daniel S. Haischt * All rights reserved. * @@ -467,7 +467,6 @@ if ($_POST['apply']) { } else { $pconfig['track6-prefix-id'] = 0; } - conf_mount_rw(); /* filter out spaces from descriptions */ $_POST['descr'] = remove_bad_chars($_POST['descr']); @@ -692,6 +691,8 @@ if ($_POST['apply']) { } } if ($_POST['ipaddrv6']) { + $_POST['ipaddrv6'] = addrtolower($_POST['ipaddrv6']); + if (!is_ipaddrv6($_POST['ipaddrv6'])) { $input_errors[] = gettext("A valid IPv6 address must be specified."); } else { @@ -1392,7 +1393,6 @@ if ($_POST['apply']) { handle_wireless_post(); } - conf_mount_ro(); write_config(); if (file_exists("{$g['tmp_path']}/.interfaces.apply")) { @@ -1774,7 +1774,8 @@ $section->addClass('staticv4'); $section->addInput(new Form_IpAddress( 'ipaddr', 'IPv4 Address', - $pconfig['ipaddr'] + $pconfig['ipaddr'], + 'V4' ))->addMask('subnet', $pconfig['subnet'], 32); $group = new Form_Group('IPv4 Upstream gateway'); @@ -1807,7 +1808,8 @@ $section->addClass('staticv6'); $section->addInput(new Form_IpAddress( 'ipaddrv6', 'IPv6 address', - $pconfig['ipaddrv6'] + $pconfig['ipaddrv6'], + 'V6' ))->addMask('subnetv6', $pconfig['subnetv6'], 128); $group = new Form_Group('IPv6 Upstream gateway'); @@ -1852,7 +1854,8 @@ $modal->addInput(new Form_Input( $modal->addInput(new Form_IpAddress( 'gatewayip6', 'Gateway IPv6', - null + null, + 'V6' )); $modal->addInput(new Form_Input( @@ -1919,7 +1922,8 @@ $section->addInput(new Form_Input( $section->addInput(new Form_IpAddress( 'alias-address', 'Alias IPv4 address', - $pconfig['alias-address'] + $pconfig['alias-address'], + 'V4' ))->addMask('alias-subnet', $pconfig['alias-subnet'], 32)->setHelp('The value in this field is used as a fixed alias IPv4 address by the DHCP client.'); $section->addInput(new Form_Input( @@ -2203,7 +2207,8 @@ $group->add(new Form_Input( $group->add(new Form_IpAddress( 'adv_dhcp6_id_assoc_statement_address', null, - $pconfig['adv_dhcp6_id_assoc_statement_address'] + $pconfig['adv_dhcp6_id_assoc_statement_address'], + 'V6' ))->sethelp('IPv6 address'); $group->add(new Form_Input( @@ -2243,7 +2248,8 @@ $group->add(new Form_Input( $group->add(new Form_IpAddress( 'adv_dhcp6_id_assoc_statement_prefix', null, - $pconfig['adv_dhcp6_id_assoc_statement_prefix'] + $pconfig['adv_dhcp6_id_assoc_statement_prefix'], + 'V6' ))->sethelp('IPv6 prefix'); $group->add(new Form_Input( @@ -2688,13 +2694,15 @@ $section->addPassword(new Form_Input( $section->addInput(new Form_IpAddress( 'pptp_local0', 'Local IP address', - $pconfig['pptp_localip'][0] + $pconfig['pptp_localip'][0], + 'V4' ))->addMask('pptp_subnet0', $pconfig['pptp_subnet'][0]); $section->addInput(new Form_IpAddress( 'pptp_remote0', 'Remote IP address', - $pconfig['pptp_remote'][0] + $pconfig['pptp_remote'][0], + 'V4' )); $section->addInput(new Form_Checkbox( @@ -3163,7 +3171,8 @@ $modal->addInput(new Form_Input( $modal->addInput(new Form_IpAddress( 'gatewayip', 'Gateway IPv4', - null + null, + 'V4' )); $modal->addInput(new Form_Input( @@ -3350,7 +3359,8 @@ events.push(function() { } function report_failure(request, textStatus, errorThrown) { - if (textStatus === "error" && request.getResponseHeader("Content-Type") === "text/plain") { + contenttype = ";"+request.getResponseHeader("Content-Type")+";"; + if (textStatus === "error" && contenttype.indexOf(";text/plain;") !== -1) { alert(request.responseText); } else { alert("The IPv4 gateway could not be created."); diff --git a/src/usr/local/www/interfaces_assign.php b/src/usr/local/www/interfaces_assign.php index cfa4fe5..b647fea 100644 --- a/src/usr/local/www/interfaces_assign.php +++ b/src/usr/local/www/interfaces_assign.php @@ -3,7 +3,7 @@ * interfaces_assign.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -403,12 +403,12 @@ if (isset($_POST['add']) && isset($_POST['if_add'])) { if (is_array($config['dhcpd']) && is_array($config['dhcpd'][$id])) { unset($config['dhcpd'][$id]); - services_dhcpd_configure(); + services_dhcpd_configure('inet'); } if (is_array($config['dhcpdv6']) && is_array($config['dhcpdv6'][$id])) { unset($config['dhcpdv6'][$id]); - services_dhcpdv6_configure(); + services_dhcpd_configure('inet6'); } if (count($config['filter']['rule']) > 0) { @@ -577,7 +577,9 @@ display_top_tabs($tab_array); <br /> <?php -print_info_box(gettext("Interfaces that are configured as members of a lagg(4) interface will not be shown."), 'info', false); +print_info_box(gettext("Interfaces that are configured as members of a lagg(4) interface will not be shown.") . + '<br/><br/>' . + gettext("Wireless interfaces must be created on the Wireless tab before they can be assigned."), 'info', false); ?> <?php include("foot.inc")?> diff --git a/src/usr/local/www/interfaces_bridge.php b/src/usr/local/www/interfaces_bridge.php index d928e91..c9631d7 100644 --- a/src/usr/local/www/interfaces_bridge.php +++ b/src/usr/local/www/interfaces_bridge.php @@ -3,7 +3,7 @@ * interfaces_bridge.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/interfaces_bridge_edit.php b/src/usr/local/www/interfaces_bridge_edit.php index cef6abe..3385a84 100644 --- a/src/usr/local/www/interfaces_bridge_edit.php +++ b/src/usr/local/www/interfaces_bridge_edit.php @@ -3,7 +3,7 @@ * interfaces_bridge_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/interfaces_gif.php b/src/usr/local/www/interfaces_gif.php index 9096ea4..1797092 100644 --- a/src/usr/local/www/interfaces_gif.php +++ b/src/usr/local/www/interfaces_gif.php @@ -3,7 +3,7 @@ * interfaces_gif.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/interfaces_gif_edit.php b/src/usr/local/www/interfaces_gif_edit.php index 36ddcba..c225fe7 100644 --- a/src/usr/local/www/interfaces_gif_edit.php +++ b/src/usr/local/www/interfaces_gif_edit.php @@ -3,7 +3,7 @@ * interfaces_gif_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/interfaces_gre.php b/src/usr/local/www/interfaces_gre.php index dbafbdf..a69edd6 100644 --- a/src/usr/local/www/interfaces_gre.php +++ b/src/usr/local/www/interfaces_gre.php @@ -3,7 +3,7 @@ * interfaces_gre.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/interfaces_gre_edit.php b/src/usr/local/www/interfaces_gre_edit.php index 3a768b8..e2be503 100644 --- a/src/usr/local/www/interfaces_gre_edit.php +++ b/src/usr/local/www/interfaces_gre_edit.php @@ -3,7 +3,7 @@ * interfaces_gre_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -60,6 +60,10 @@ if ($_POST) { unset($input_errors); $pconfig = $_POST; + $pconfig['tunnel-local-addr'] = addrtolower($_POST['tunnel-local-addr']); + $pconfig['tunnel-remote-addr'] = addrtolower($_POST['tunnel-remote-addr']); + $pconfig['remote-addr'] = addrtolower($_POST['remote-addr']); + /* input validation */ $reqdfields = explode(" ", "if remote-addr tunnel-local-addr tunnel-remote-addr tunnel-remote-net"); $reqdfieldsn = array(gettext("Parent interface"), gettext("Remote tunnel endpoint IP address"), gettext("Local tunnel IP address"), gettext("Remote tunnel IP address"), gettext("Remote tunnel network")); diff --git a/src/usr/local/www/interfaces_groups.php b/src/usr/local/www/interfaces_groups.php index 197134e..51f4bd6 100644 --- a/src/usr/local/www/interfaces_groups.php +++ b/src/usr/local/www/interfaces_groups.php @@ -3,7 +3,7 @@ * interfaces_groups.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/interfaces_groups_edit.php b/src/usr/local/www/interfaces_groups_edit.php index c6edf42..73f63d6 100644 --- a/src/usr/local/www/interfaces_groups_edit.php +++ b/src/usr/local/www/interfaces_groups_edit.php @@ -3,7 +3,7 @@ * interfaces_groups_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/interfaces_lagg.php b/src/usr/local/www/interfaces_lagg.php index b6f9f8a..c521558 100644 --- a/src/usr/local/www/interfaces_lagg.php +++ b/src/usr/local/www/interfaces_lagg.php @@ -3,7 +3,7 @@ * interfaces_lagg.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/interfaces_lagg_edit.php b/src/usr/local/www/interfaces_lagg_edit.php index afd2c1d..c4428b7 100644 --- a/src/usr/local/www/interfaces_lagg_edit.php +++ b/src/usr/local/www/interfaces_lagg_edit.php @@ -3,7 +3,7 @@ * interfaces_lagg_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/interfaces_ppps.php b/src/usr/local/www/interfaces_ppps.php index f18034d..19afc48 100644 --- a/src/usr/local/www/interfaces_ppps.php +++ b/src/usr/local/www/interfaces_ppps.php @@ -3,7 +3,7 @@ * interfaces_ppps.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/interfaces_ppps_edit.php b/src/usr/local/www/interfaces_ppps_edit.php index 710a0f4..894607e 100644 --- a/src/usr/local/www/interfaces_ppps_edit.php +++ b/src/usr/local/www/interfaces_ppps_edit.php @@ -3,7 +3,7 @@ * interfaces_ppps_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Gabriel B. <gnoahb@gmail.com> * All rights reserved. * diff --git a/src/usr/local/www/interfaces_qinq.php b/src/usr/local/www/interfaces_qinq.php index 0420d9f..63fa1b4 100644 --- a/src/usr/local/www/interfaces_qinq.php +++ b/src/usr/local/www/interfaces_qinq.php @@ -3,7 +3,7 @@ * interfaces_qinq.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/interfaces_qinq_edit.php b/src/usr/local/www/interfaces_qinq_edit.php index 0208f34..5ae39ee 100644 --- a/src/usr/local/www/interfaces_qinq_edit.php +++ b/src/usr/local/www/interfaces_qinq_edit.php @@ -3,7 +3,7 @@ * interfaces_qinq_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/interfaces_vlan.php b/src/usr/local/www/interfaces_vlan.php index c4236b7..e733dd3 100644 --- a/src/usr/local/www/interfaces_vlan.php +++ b/src/usr/local/www/interfaces_vlan.php @@ -3,7 +3,7 @@ * interfaces_vlan.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -131,7 +131,7 @@ display_top_tabs($tab_array); <td> <a class="fa fa-pencil" title="<?=gettext('Edit VLAN')?>" role="button" href="interfaces_vlan_edit.php?id=<?=$i?>"></a> <!-- <a class="btn btn-danger btn-xs" role="button" href="interfaces_vlan.php?act=del&id=<?=$i?>"><?=gettext('Delete')?></a></td> --> - <a class="fa fa-trash" title="<?=gettext('Delete VLAN')?>" role="button" id="del-<?=$i?>"></a> + <a class="fa fa-trash no-confirm" title="<?=gettext('Delete VLAN')?>" role="button" id="del-<?=$i?>"></a> </td> </tr> <?php @@ -159,15 +159,23 @@ display_top_tabs($tab_array); 'tagging will still work, but the reduced MTU may cause problems.<br />See the '. '%s handbook for information on supported cards.'), $g['product_name']), 'info', false); ?> </div> + +<?php + $delmsg = gettext("Are you sure you want to delete this VLAN?"); +?> + <script type="text/javascript"> //<![CDATA[ events.push(function() { // Select 'delete button' clicks, extract the id, set the hidden input values and submit $('[id^=del-]').click(function(event) { - $('#act').val('del'); - $('#id').val(this.id.replace("del-", "")); - $(this).parents('form').submit(); + if (confirm("<?=$delmsg?>")) { + $('#act').val('del'); + $('#id').val(this.id.replace("del-", "")); + $(this).parents('form').submit(); + } }); + }); //]]> </script> diff --git a/src/usr/local/www/interfaces_vlan_edit.php b/src/usr/local/www/interfaces_vlan_edit.php index 7698aa7..7e7b16e 100644 --- a/src/usr/local/www/interfaces_vlan_edit.php +++ b/src/usr/local/www/interfaces_vlan_edit.php @@ -3,7 +3,7 @@ * interfaces_vlan_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/interfaces_wireless.php b/src/usr/local/www/interfaces_wireless.php index 2144e29..dafe49d 100644 --- a/src/usr/local/www/interfaces_wireless.php +++ b/src/usr/local/www/interfaces_wireless.php @@ -3,7 +3,7 @@ * interfaces_wireless.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Erik Fonnesbeck * All rights reserved. * diff --git a/src/usr/local/www/interfaces_wireless_edit.php b/src/usr/local/www/interfaces_wireless_edit.php index 65b3e25..419f9c6 100644 --- a/src/usr/local/www/interfaces_wireless_edit.php +++ b/src/usr/local/www/interfaces_wireless_edit.php @@ -3,7 +3,7 @@ * interfaces_wireless_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Erik Fonnesbeck * All rights reserved. * @@ -95,7 +95,7 @@ if ($_POST) { } if (!$clone['cloneif']) { - $clone_id = 1; + $clone_id = 0; do { $clone_exists = false; $clone['cloneif'] = "{$_POST['if']}_wlan{$clone_id}"; @@ -148,13 +148,11 @@ function build_parent_list() { global $g; $parentlist = array(); - $portlist = get_interface_list(); + $portlist = interface_list_wireless(); $count = 0; - foreach ($portlist as $ifn => $ifinfo) { - if (preg_match($g['wireless_regex'], $ifn)) { - $parentlist[$ifn] = htmlspecialchars($ifn . ' (' . $ifinfo['mac'] . ')'); - $count++; - } + foreach ($portlist as $ifn) { + $parentlist[$ifn['if']] = htmlspecialchars($ifn['descr']); + $count++; } if ($count > 0) { diff --git a/src/usr/local/www/js/pfSense.js b/src/usr/local/www/js/pfSense.js index 2098dbe..8047d51 100644 --- a/src/usr/local/www/js/pfSense.js +++ b/src/usr/local/www/js/pfSense.js @@ -2,7 +2,7 @@ * pfSense.js * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -234,6 +234,11 @@ $(function() { // Focus first input $(':input:enabled:visible:first').focus(); + $(".resizable").each(function() { + $(this).css('height', 80).resizable({minHeight: 80, minWidth: 200}).parent().css('padding-bottom', 0); + $(this).css('height', 78); + }); + // Run in-page defined events while (func = window.events.shift()) func(); diff --git a/src/usr/local/www/js/pfSenseHelpers.js b/src/usr/local/www/js/pfSenseHelpers.js index 25a7e62..1744a5b 100644 --- a/src/usr/local/www/js/pfSenseHelpers.js +++ b/src/usr/local/www/js/pfSenseHelpers.js @@ -2,7 +2,7 @@ * pfSenseHelpers.js * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -58,14 +58,6 @@ function hideClass(s_class, hide) { $('.' + s_class).show(); } -// Hides all elements of the specified class assigned to a group. This will usually be a group -function hideGroupClass(s_class, hide) { - if (hide) - $('.' + s_class).parent().parent().parent().hide(); - else - $('.' + s_class).parent().parent().parent().show(); -} - function hideSelect(id, hide) { if (hide) $('#' + id).parent('div').parent('div').addClass('hidden'); @@ -80,7 +72,7 @@ function hideMultiCheckbox(id, hide) { $("[name=" + id + "]").parent().removeClass('hidden'); } -// Hides the <div> in which the specified IP address element lives so that the input, its label and help text are hidden +// Hides the <div> in which the specified IP address element lives so that the input, any mask selector, its label and help text are hidden function hideIpAddress(id, hide) { if (hide) $('#' + id).parent().parent().parent('div').addClass('hidden'); @@ -294,6 +286,7 @@ function add_row() { // Clone it var newGroup = lastRepeatableGroup.clone(); + // Increment the suffix number for each input element in the new group $(newGroup).find('input').each(function() { $(this).prop("id", bumpStringInt(this.id)); @@ -328,7 +321,7 @@ function add_row() { // And for "for" tags // $(newGroup).find('label').attr('for', bumpStringInt($(newGroup).find('label').attr('for'))); - $(newGroup).find('label').text(""); // Clear the label. We only want it on the very first row + $(newGroup).find('label:first').text(""); // Clear the label. We only want it on the very first row // Insert the updated/cloned row $(lastRepeatableGroup).after(newGroup); diff --git a/src/usr/local/www/js/traffic-graphs.js b/src/usr/local/www/js/traffic-graphs.js index 91acbfa..fcda786 100644 --- a/src/usr/local/www/js/traffic-graphs.js +++ b/src/usr/local/www/js/traffic-graphs.js @@ -1,6 +1,6 @@ /* * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2016 Electric Sheep Fencing, LLC + * Copyright (c) 2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -204,4 +204,4 @@ function draw_graph(refreshInterval, then) { }); -}
\ No newline at end of file +} diff --git a/src/usr/local/www/license.php b/src/usr/local/www/license.php index 601a5cd..d31c31d 100644 --- a/src/usr/local/www/license.php +++ b/src/usr/local/www/license.php @@ -3,7 +3,7 @@ * license.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/load_balancer_monitor.php b/src/usr/local/www/load_balancer_monitor.php index 8a6cd9a..a6875ca 100644 --- a/src/usr/local/www/load_balancer_monitor.php +++ b/src/usr/local/www/load_balancer_monitor.php @@ -3,7 +3,7 @@ * load_balancer_monitor.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005-2008 Bill Marquette <bill.marquette@gmail.com> * All rights reserved. * diff --git a/src/usr/local/www/load_balancer_monitor_edit.php b/src/usr/local/www/load_balancer_monitor_edit.php index ad8e96f..7c24f8e 100644 --- a/src/usr/local/www/load_balancer_monitor_edit.php +++ b/src/usr/local/www/load_balancer_monitor_edit.php @@ -3,7 +3,7 @@ * load_balancer_monitor_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005-2008 Bill Marquette <bill.marquette@gmail.com> * All rights reserved. * diff --git a/src/usr/local/www/load_balancer_pool.php b/src/usr/local/www/load_balancer_pool.php index 1b98c70..d9788cd 100644 --- a/src/usr/local/www/load_balancer_pool.php +++ b/src/usr/local/www/load_balancer_pool.php @@ -3,7 +3,7 @@ * load_balancer_pool.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005-2008 Bill Marquette <bill.marquette@gmail.com> * All rights reserved. * diff --git a/src/usr/local/www/load_balancer_pool_edit.php b/src/usr/local/www/load_balancer_pool_edit.php index 36f4450..c1afb3b 100644 --- a/src/usr/local/www/load_balancer_pool_edit.php +++ b/src/usr/local/www/load_balancer_pool_edit.php @@ -3,7 +3,7 @@ * load_balancer_pool_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005-2008 Bill Marquette <bill.marquette@gmail.com> * All rights reserved. * diff --git a/src/usr/local/www/load_balancer_setting.php b/src/usr/local/www/load_balancer_setting.php index 036b6b5..9ae4a95 100644 --- a/src/usr/local/www/load_balancer_setting.php +++ b/src/usr/local/www/load_balancer_setting.php @@ -3,7 +3,7 @@ * load_balancer_setting.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005-2008 Bill Marquette <bill.marquette@gmail.com> * Copyright (c) 2012 Pierre POMES <pierre.pomes@gmail.com>. * All rights reserved. diff --git a/src/usr/local/www/load_balancer_virtual_server.php b/src/usr/local/www/load_balancer_virtual_server.php index 60a7275..f07c7ac 100644 --- a/src/usr/local/www/load_balancer_virtual_server.php +++ b/src/usr/local/www/load_balancer_virtual_server.php @@ -3,7 +3,7 @@ * load_balancer_virtual_server.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005-2008 Bill Marquette <bill.marquette@gmail.com> * All rights reserved. * diff --git a/src/usr/local/www/load_balancer_virtual_server_edit.php b/src/usr/local/www/load_balancer_virtual_server_edit.php index 84aa6ae..f4722ce 100644 --- a/src/usr/local/www/load_balancer_virtual_server_edit.php +++ b/src/usr/local/www/load_balancer_virtual_server_edit.php @@ -3,7 +3,7 @@ * load_balancer_virtual_server_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005-2008 Bill Marquette <bill.marquette@gmail.com> * All rights reserved. * diff --git a/src/usr/local/www/pkg.php b/src/usr/local/www/pkg.php index 9a7d2bd..b5cf67e 100644 --- a/src/usr/local/www/pkg.php +++ b/src/usr/local/www/pkg.php @@ -3,7 +3,7 @@ * pkg.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/pkg_edit.php b/src/usr/local/www/pkg_edit.php index c0ef630..7a98908 100644 --- a/src/usr/local/www/pkg_edit.php +++ b/src/usr/local/www/pkg_edit.php @@ -3,7 +3,7 @@ * pkg_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/pkg_mgr.php b/src/usr/local/www/pkg_mgr.php index 4326471..cbb7a33 100644 --- a/src/usr/local/www/pkg_mgr.php +++ b/src/usr/local/www/pkg_mgr.php @@ -3,7 +3,7 @@ * pkg_mgr.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2013 Marcello Coutinho * All rights reserved. * diff --git a/src/usr/local/www/pkg_mgr_install.php b/src/usr/local/www/pkg_mgr_install.php index e1b55b5..f0ef8e9 100644 --- a/src/usr/local/www/pkg_mgr_install.php +++ b/src/usr/local/www/pkg_mgr_install.php @@ -3,7 +3,7 @@ * pkg_mgr_install.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005 Colin Smith * All rights reserved. * @@ -77,16 +77,17 @@ if ($_REQUEST['ajax']) { // When we do a reinstallall, it is technically possible that we might catch the system in-between // packages, hence the de-bounce here + for ($idx=0;$idx<5 && !isvalidpid($pidfile); $idx++) { + usleep(200000); + } + if (!isvalidpid($pidfile)) { - usleep(100000); - if (!isvalidpid($pidfile)) { - $running = "stopped"; - // The log files may not be complete when the process terminates so we need wait until we see the - // exit status (__RC=x) - waitfor_string_in_file($_REQUEST['logfilename'] . '.txt', "__RC=", 10); - filter_configure(); - send_event("service restart packages"); - } + $running = "stopped"; + // The log files may not be complete when the process terminates so we need wait until we see the + // exit status (__RC=x) + waitfor_string_in_file($_REQUEST['logfilename'] . '.txt', "__RC=", 10); + filter_configure(); + send_event("service restart packages"); } $pidarray = array('pid' => $running); @@ -132,6 +133,8 @@ if ($_REQUEST['ajax']) { } else { $resparray['log'] = "not_ready"; print(json_encode($resparray)); + // file_put_contents("/root/update.log", json_encode($resparray), FILE_APPEND); + // file_put_contents("/root/update.log", "\r\n---------------------------------------------------------------\r\n", FILE_APPEND); exit; } @@ -159,6 +162,9 @@ if ($_REQUEST['ajax']) { // Glob all the arrays we have made together, and convert to JSON print(json_encode($resparray + $pidarray + $statusarray + $progarray)); +// file_put_contents("/root/update.log", json_encode($resparray + $pidarray + $statusarray + $progarray), FILE_APPEND); +// file_put_contents("/root/update.log", "\r\n---------------------------------------------------------------\r\n", FILE_APPEND); + exit; } @@ -236,7 +242,7 @@ $tab_array = array(); if ($firmwareupdate) { $pgtitle = array(gettext("System"), gettext("Update"), gettext("System Update")); - $tab_array[] = array(gettext("System Update"), true, ""); + $tab_array[] = array(gettext("System Update"), true, "pkg_mgr_install.php?id=firmware"); $tab_array[] = array(gettext("Update Settings"), false, "system_update_settings.php"); } else { $pgtitle = array(gettext("System"), gettext("Package Manager"), gettext("Package Installer")); @@ -420,7 +426,7 @@ if ($confirmed): </div> <div class="panel-body"> - <textarea rows="15" class="form-control" id="output" name="output"><?=$_POST['output']?></textarea> + <textarea rows="15" class="form-control" id="output" name="output"><?=($completed ? $_POST['output'] : gettext("Please wait while the update system initializes"))?></textarea> </div> </div> <?php @@ -439,6 +445,9 @@ if ($confirmed && !$completed) { $progbar = true; $upgrade_script = "/usr/local/sbin/{$g['product_name']}-upgrade -y -l {$logfilename}.txt -p {$g['tmp_path']}/{$g['product_name']}-upgrade.sock"; + // Remove the log file before starting + unlink_if_exists($logfilename); + switch ($pkgmode) { case 'delete': mwexec_bg("{$upgrade_script} -r {$pkgname}"); @@ -540,7 +549,7 @@ function show_info() { $('#final').addClass("alert-info"); if ("<?=$pkgmode?>" != "reinstallall") { $('#final').html("<p><?=$pkg_wait_txt?>" + "</p><p>" + - "<?=gettext("This may take several minutes!")?>" + "</p>"); + "<?=gettext("This may take several minutes. Do not leave or refresh the page!")?>" + "</p>"); } else { $('#final').html("<p><?=gettext('Please wait while the reinstallation of all packages completes.')?>" + "</p><p>" + "<?=gettext("This may take several minutes!")?>" + "</p>"); @@ -581,6 +590,8 @@ function get_firmware_versions() $('#confirmlabel').text( "<?=$confirmlabel?>"); $('#pkgconfirm').show(); } + } else { + $('#uptodate').html('<span class="text-danger">' + 'Unable to check for updates' + "</span>"); } }); } @@ -609,7 +620,7 @@ function getLogsStatus() { // alert("JSON data: " + JSON.stringify(json)); - if (json.log != "not ready") { + if (json.log != "not_ready") { // Write the log file to the "output" textarea $('#output').html(json.log); scrollToBottom(); @@ -702,7 +713,7 @@ function startCountdown() { events.push(function() { if ("<?=$start_polling?>") { - setTimeout(getLogsStatus, 1000); + setTimeout(getLogsStatus, 3000); show_info(); } diff --git a/src/usr/local/www/pkg_mgr_installed.php b/src/usr/local/www/pkg_mgr_installed.php index 8c862ad..261de70 100644 --- a/src/usr/local/www/pkg_mgr_installed.php +++ b/src/usr/local/www/pkg_mgr_installed.php @@ -3,7 +3,7 @@ * pkg_mgr_installed.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/restart_httpd.php b/src/usr/local/www/restart_httpd.php deleted file mode 100644 index a8588bc..0000000 --- a/src/usr/local/www/restart_httpd.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/* - * restart_httpd.php - * - * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC - * Copyright (c) 2005 Bill Marquette <bill.marquette@gmail.com> - * All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -##|+PRIV -##|*IDENT=page-diagnostics-restart-httpd -##|*NAME=Diagnostics: Restart Web Server Daemon -##|*DESCR=Allow access to the 'Diagnostics: Restart Web Server Daemon' page. -##|*MATCH=restart_httpd.php* -##|-PRIV - -require_once("guiconfig.inc"); - -$pgtitle = array(gettext("Restarting httpd")); -include("head.inc"); -?> - -<form> -<?php include_once("fbegin.inc"); ?> - -<?=gettext("Mounting file systems read/write");?>... -<?php flush(); sleep(1); conf_mount_rw(); ?> -<?=gettext("Done");?>.<br /> -<?=gettext("Forcing all PHP file permissions to 0755");?>... -<?php flush(); sleep(1); system('/bin/chmod -R 0755 /usr/local/www/*.php'); ?> -<?=gettext("Done");?>.<br /> -<?=gettext("Mounting file systems read only");?>... -<?php flush(); sleep(1); conf_mount_ro(); ?> -<?=gettext("Done");?>.<br /> -<?=gettext("Restarting mini_httpd");?>... -<?php flush(); sleep(1); system_webgui_start(); ?> -<?=gettext("Done");?>.<br /> - -<?php -include("foot.inc"); -?> diff --git a/src/usr/local/www/services_captiveportal.php b/src/usr/local/www/services_captiveportal.php index a31e2fa..cdfbebd 100644 --- a/src/usr/local/www/services_captiveportal.php +++ b/src/usr/local/www/services_captiveportal.php @@ -3,7 +3,7 @@ * services_captiveportal.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -341,7 +341,6 @@ if ($_POST) { $cpzoneid = $newcp['zoneid']; } - $oldifaces = explode(",", $newcp['interface']); if (is_array($_POST['cinterface'])) { $newcp['interface'] = implode(",", $_POST['cinterface']); } @@ -449,19 +448,8 @@ if ($_POST) { write_config(); - /* Clear up unselected interfaces */ - $newifaces = explode(",", $newcp['interface']); - $toremove = array_diff($oldifaces, $newifaces); - - if (!empty($toremove)) { - foreach ($toremove as $removeif) { - $removeif = get_real_interface($removeif); - mwexec("/sbin/ipfw zone {$cpzoneid} mdel {$removeif}"); - } - } - captiveportal_configure_zone($newcp); - unset($newcp, $newifaces, $toremove); + unset($newcp); filter_configure(); header("Location: services_captiveportal_zones.php"); exit; @@ -688,7 +676,7 @@ $section->addInput(new Form_Input( 'number', $pconfig['bwdefaultup'] ))->setHelp('If this option is set, the captive portal will restrict each user who logs in to the specified default bandwidth. ' . - 'RADIUS can override the default settings. Leave empty or set to 0 for no limit.'); + 'RADIUS can override the default settings. Leave empty for no limit.'); $form->add($section); diff --git a/src/usr/local/www/services_captiveportal_filemanager.php b/src/usr/local/www/services_captiveportal_filemanager.php index 8d48c31..e4fc420 100644 --- a/src/usr/local/www/services_captiveportal_filemanager.php +++ b/src/usr/local/www/services_captiveportal_filemanager.php @@ -3,7 +3,7 @@ * services_captiveportal_filemanager.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005-2006 Jonathan De Graeve (jonathan.de.graeve@imelda.be) * Copyright (c) 2005-2006 Paul Taylor (paultaylor@winn-dixie.com) * All rights reserved. @@ -52,7 +52,7 @@ $cpzone = $_GET['zone']; if (isset($_POST['zone'])) { $cpzone = $_POST['zone']; } -$cpzone = strtolower($cpzone); +$cpzone = strtolower(htmlspecialchars($cpzone)); if (empty($cpzone)) { header("Location: services_captiveportal_zones.php"); @@ -120,10 +120,8 @@ if ($_POST) { } } } else if (($_GET['act'] == "del") && !empty($cpzone) && $a_element[$_GET['id']]) { - conf_mount_rw(); @unlink("{$g['captiveportal_element_path']}/" . $a_element[$_GET['id']]['name']); @unlink("{$g['captiveportal_path']}/" . $a_element[$_GET['id']]['name']); - conf_mount_ro(); unset($a_element[$_GET['id']]); write_config(); header("Location: services_captiveportal_filemanager.php?zone={$cpzone}"); diff --git a/src/usr/local/www/services_captiveportal_hostname.php b/src/usr/local/www/services_captiveportal_hostname.php index e0c513f..7de5912 100644 --- a/src/usr/local/www/services_captiveportal_hostname.php +++ b/src/usr/local/www/services_captiveportal_hostname.php @@ -3,7 +3,7 @@ * services_captiveportal_hostname.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -43,7 +43,7 @@ $cpzone = $_GET['zone']; if (isset($_POST['zone'])) { $cpzone = $_POST['zone']; } -$cpzone = strtolower($cpzone); +$cpzone = strtolower(htmlspecialchars($cpzone)); if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) { header("Location: services_captiveportal_zones.php"); @@ -75,15 +75,16 @@ if ($_GET['act'] == "del" && !empty($cpzone) && isset($cpzoneid)) { } $sn = (is_ipaddrv6($ip)) ? 128 : 32; if (is_ipaddr($ip)) { - $ipfw = pfSense_ipfw_getTablestats($cpzoneid, IP_FW_TABLE_XLISTENTRY, 3, $ip); - if (is_array($ipfw)) { - captiveportal_free_dn_ruleno($ipfw['dnpipe']); - pfSense_pipe_action("pipe delete {$ipfw['dnpipe']}"); - pfSense_pipe_action("pipe delete " . ($ipfw['dnpipe']+1)); - } + $rule = pfSense_ipfw_table_lookup("{$cpzone}_allowed_up", "{$ip}/{$sn}"); + + pfSense_ipfw_table("{$cpzone}_allowed_up", IP_FW_TABLE_XDEL, "{$ip}/{$sn}"); + pfSense_ipfw_table("{$cpzone}_allowed_down", IP_FW_TABLE_XDEL, "{$ip}/{$sn}"); - pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XDEL, 3, $ip, $sn); - pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XDEL, 4, $ip, $sn); + if (is_array($rule) && !empty($rule['pipe'])) { + captiveportal_free_dn_ruleno($rule['pipe']); + pfSense_ipfw_pipe("pipe delete {$rule['pipe']}"); + pfSense_ipfw_pipe("pipe delete " . ($rule['pipe']+1)); + } } } diff --git a/src/usr/local/www/services_captiveportal_hostname_edit.php b/src/usr/local/www/services_captiveportal_hostname_edit.php index 86712d6..3149ac2 100644 --- a/src/usr/local/www/services_captiveportal_hostname_edit.php +++ b/src/usr/local/www/services_captiveportal_hostname_edit.php @@ -3,7 +3,7 @@ * services_captiveportal_hostname_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -47,7 +47,7 @@ $cpzone = $_GET['zone']; if (isset($_POST['zone'])) { $cpzone = $_POST['zone']; } -$cpzone = strtolower($cpzone); +$cpzone = strtolower(htmlspecialchars($cpzone)); $cpzoneid = $config['captiveportal'][$cpzone]['zoneid']; @@ -142,7 +142,7 @@ if ($_POST) { $rules = captiveportal_allowedhostname_configure(); @file_put_contents("{$g['tmp_path']}/hostname_rules", $rules); - mwexec("/sbin/ipfw -x {$cpzoneid} {$g['tmp_path']}/hostname_rules", true); + mwexec("/sbin/ipfw {$g['tmp_path']}/hostname_rules", true); unset($rules); header("Location: services_captiveportal_hostname.php?zone={$cpzone}"); diff --git a/src/usr/local/www/services_captiveportal_ip.php b/src/usr/local/www/services_captiveportal_ip.php index bbf08c5..648c629 100644 --- a/src/usr/local/www/services_captiveportal_ip.php +++ b/src/usr/local/www/services_captiveportal_ip.php @@ -3,7 +3,7 @@ * services_captiveportal_ip.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2004 Dinesh Nair <dinesh@alphaque.com> * All rights reserved. * @@ -43,7 +43,7 @@ $cpzone = $_GET['zone']; if (isset($_POST['zone'])) { $cpzone = $_POST['zone']; } -$cpzone = strtolower($cpzone); +$cpzone = strtolower(htmlspecialchars($cpzone)); if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) { header("Location: services_captiveportal_zones.php"); @@ -71,14 +71,15 @@ if ($_GET['act'] == "del" && !empty($cpzone) && isset($cpzoneid)) { if (isset($config['captiveportal'][$cpzone]['enable'])) { $mask = (!empty($ipent['sn'])) ? $ipent['sn'] : 32; - $ipfw = pfSense_ipfw_getTablestats($cpzoneid, IP_FW_TABLE_XLISTENTRY, 3, $ipent['ip']); - pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XDEL, 3, $ipent['ip'], $mask); - pfSense_ipfw_Tableaction($cpzoneid, IP_FW_TABLE_XDEL, 4, $ipent['ip'], $mask); + $rule = pfSense_ipfw_table_lookup("{$cpzone}_allowed_up", "{$ipent['ip']}/{$mask}"); - if (is_array($ipfw)) { - captiveportal_free_dn_ruleno($ipfw['dnpipe']); - pfSense_pipe_action("pipe delete {$ipfw['dnpipe']}"); - pfSense_pipe_action("pipe delete " . ($ipfw['dnpipe']+1)); + pfSense_ipfw_table("{$cpzone}_allowed_up", IP_FW_TABLE_XDEL, "{$ipent['ip']}/{$mask}"); + pfSense_ipfw_table("{$cpzone}_allowed_down", IP_FW_TABLE_XDEL, "{$ipent['ip']}/{$mask}"); + + if (is_array($rule) && !empty($rule['pipe'])) { + captiveportal_free_dn_ruleno($rule['pipe']); + pfSense_ipfw_pipe("pipe delete {$rule['pipe']}"); + pfSense_ipfw_pipe("pipe delete " . ($rule['pipe']+1)); } } diff --git a/src/usr/local/www/services_captiveportal_ip_edit.php b/src/usr/local/www/services_captiveportal_ip_edit.php index 91a7713..420faae 100644 --- a/src/usr/local/www/services_captiveportal_ip_edit.php +++ b/src/usr/local/www/services_captiveportal_ip_edit.php @@ -3,7 +3,7 @@ * services_captiveportal_ip_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2004 Dinesh Nair <dinesh@alphaque.com> * All rights reserved. * @@ -51,7 +51,7 @@ $cpzone = $_GET['zone']; if (isset($_POST['zone'])) { $cpzone = $_POST['zone']; } -$cpzone = strtolower($cpzone); +$cpzone = strtolower(htmlspecialchars($cpzone)); if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) { header("Location: services_captiveportal_zones.php"); @@ -167,25 +167,28 @@ if ($_POST) { if (isset($a_cp[$cpzone]['enable']) && is_module_loaded("ipfw.ko")) { $rules = ""; $cpzoneid = $a_cp[$cpzone]['zoneid']; - unset($ipfw); + + unset($rule); if (isset($oldip) && isset($oldmask)) { - $ipfw = pfSense_ipfw_getTablestats($cpzoneid, IP_FW_TABLE_XLISTENTRY, 3, $oldip); - $rules .= "table 3 delete {$oldip}/{$oldmask}\n"; - $rules .= "table 4 delete {$oldip}/{$oldmask}\n"; - if (is_array($ipfw)) { - $rules .= "pipe delete {$ipfw['dnpipe']}\n"; - $rules .= "pipe delete " . ($ipfw['dnpipe']+1 . "\n"); + $rule = pfSense_ipfw_table_lookup("{$cpzone}_allowed_up", "{$oldip}/{$oldmask}"); + + $rules .= "table {$cpzone}_allowed_up delete {$oldip}/{$oldmask}\n"; + $rules .= "table {$cpzone}_allowed_down delete {$oldip}/{$oldmask}\n"; + + if (is_array($rule) && !empty($rule['pipe'])) { + $rules .= "pipe delete {$rule['pipe']}\n"; + $rules .= "pipe delete " . ($rule['pipe']+1 . "\n"); } } $rules .= captiveportal_allowedip_configure_entry($ip); - if (is_array($ipfw)) { - captiveportal_free_dn_ruleno($ipfw['dnpipe']); + if (is_array($rule) && !empty($rule['pipe'])) { + captiveportal_free_dn_ruleno($rule['pipe']); } $uniqid = uniqid("{$cpzone}_allowed"); @file_put_contents("{$g['tmp_path']}/{$uniqid}_tmp", $rules); - mwexec("/sbin/ipfw -x {$cpzoneid} -q {$g['tmp_path']}/{$uniqid}_tmp"); + mwexec("/sbin/ipfw -q {$g['tmp_path']}/{$uniqid}_tmp"); @unlink("{$g['tmp_path']}/{$uniqid}_tmp"); } diff --git a/src/usr/local/www/services_captiveportal_mac.php b/src/usr/local/www/services_captiveportal_mac.php index 366e949..acfff96 100644 --- a/src/usr/local/www/services_captiveportal_mac.php +++ b/src/usr/local/www/services_captiveportal_mac.php @@ -3,7 +3,7 @@ * services_captiveportal_mac.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2004 Dinesh Nair <dinesh@alphaque.com> * All rights reserved. * @@ -44,7 +44,7 @@ $cpzone = $_GET['zone']; if (isset($_POST['zone'])) { $cpzone = $_POST['zone']; } -$cpzone = strtolower($cpzone); +$cpzone = strtolower(htmlspecialchars($cpzone)); if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) { header("Location: services_captiveportal_zones.php"); @@ -73,7 +73,7 @@ if ($_POST) { $rules = captiveportal_passthrumac_configure(); if (!empty($rules)) { @file_put_contents("{$g['tmp_path']}/passthrumac_gui", $rules); - mwexec("/sbin/ipfw -x {$cpzoneid} {$g['tmp_path']}/passthrumac_gui"); + mwexec("/sbin/ipfw {$g['tmp_path']}/passthrumac_gui"); @unlink("{$g['tmp_path']}/passthrumac_gui"); } $savemsg = get_std_save_message($retval); @@ -120,7 +120,7 @@ if ($_POST) { $rules = captiveportal_passthrumac_delete_entry($a_passthrumacs[$idx]); $uniqid = uniqid("{$cpzone}_mac"); file_put_contents("{$g['tmp_path']}/{$uniqid}_tmp", $rules); - mwexec("/sbin/ipfw -x {$cpzoneid} -q {$g['tmp_path']}/{$uniqid}_tmp"); + mwexec("/sbin/ipfw -q {$g['tmp_path']}/{$uniqid}_tmp"); @unlink("{$g['tmp_path']}/{$uniqid}_tmp"); unset($a_passthrumacs[$idx]); write_config(); @@ -141,7 +141,7 @@ if ($_GET['act'] == "del") { $rules = captiveportal_passthrumac_delete_entry($a_passthrumacs[$_GET['id']]); $uniqid = uniqid("{$cpzone}_mac"); file_put_contents("{$g['tmp_path']}/{$uniqid}_tmp", $rules); - mwexec("/sbin/ipfw -x {$cpzoneid} -q {$g['tmp_path']}/{$uniqid}_tmp"); + mwexec("/sbin/ipfw -q {$g['tmp_path']}/{$uniqid}_tmp"); @unlink("{$g['tmp_path']}/{$uniqid}_tmp"); unset($a_passthrumacs[$_GET['id']]); write_config(); @@ -170,7 +170,7 @@ $tab_array[] = array(gettext("File Manager"), false, "services_captiveportal_fil display_top_tabs($tab_array, true); ?> <div class="table-responsive"> - <table class="table table-hover table-striped table-condensed table-rowdblclickedit"> + <table class="table table-hover table-striped table-condensed sortable-theme-bootstrap table-rowdblclickedit" data-sortable> <thead> <tr> <th><?=gettext('Action')?></th> diff --git a/src/usr/local/www/services_captiveportal_mac_edit.php b/src/usr/local/www/services_captiveportal_mac_edit.php index e3da8c6..91d01e0 100644 --- a/src/usr/local/www/services_captiveportal_mac_edit.php +++ b/src/usr/local/www/services_captiveportal_mac_edit.php @@ -3,7 +3,7 @@ * services_captiveportal_mac_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2004 Dinesh Nair <dinesh@alphaque.com> * All rights reserved. * @@ -54,7 +54,7 @@ $cpzone = $_GET['zone']; if (isset($_POST['zone'])) { $cpzone = $_POST['zone']; } -$cpzone = strtolower($cpzone); +$cpzone = strtolower(htmlspecialchars($cpzone)); if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) { header("Location: services_captiveportal_zones.php"); @@ -172,7 +172,7 @@ if ($_POST) { $rules .= captiveportal_passthrumac_configure_entry($mac); $uniqid = uniqid("{$cpzone}_macedit"); file_put_contents("{$g['tmp_path']}/{$uniqid}_tmp", $rules); - mwexec("/sbin/ipfw -x {$cpzoneid} -q {$g['tmp_path']}/{$uniqid}_tmp"); + mwexec("/sbin/ipfw -q {$g['tmp_path']}/{$uniqid}_tmp"); @unlink("{$g['tmp_path']}/{$uniqid}_tmp"); unset($cpzoneid); } diff --git a/src/usr/local/www/services_captiveportal_vouchers.php b/src/usr/local/www/services_captiveportal_vouchers.php index b6cf157..4ce7982 100644 --- a/src/usr/local/www/services_captiveportal_vouchers.php +++ b/src/usr/local/www/services_captiveportal_vouchers.php @@ -3,7 +3,7 @@ * services_captiveportal_vouchers.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2007 Marcel Wiget <mwiget@mac.com> * All rights reserved. * @@ -43,7 +43,7 @@ $cpzone = $_GET['zone']; if (isset($_POST['zone'])) { $cpzone = $_POST['zone']; } -$cpzone = strtolower($cpzone); +$cpzone = strtolower(htmlspecialchars($cpzone)); if ($_REQUEST['generatekey']) { exec("/usr/bin/openssl genrsa 64 > /tmp/key64.private"); @@ -290,65 +290,28 @@ if ($_POST) { } if ($newvoucher['vouchersyncpass'] && $newvoucher['vouchersyncusername'] && $newvoucher['vouchersyncport'] && $newvoucher['vouchersyncdbip']) { - // Synchronize the voucher DB from the master node - require_once("XML/RPC2/Client.php"); - - $protocol = "http"; - if (is_array($config['system']) && is_array($config['system']['webgui']) && !empty($config['system']['webgui']['protocol']) && - $config['system']['webgui']['protocol'] == "https") { - $protocol = "https"; - } - if ($protocol == "https" || $newvoucher['vouchersyncport'] == "443") { - $url = "https://{$newvoucher['vouchersyncdbip']}"; - } else { - $url = "http://{$newvoucher['vouchersyncdbip']}"; - } - $url .= ":{$newvoucher['vouchersyncport']}/xmlrpc.php"; + // Synchronize the voucher DB from the master node $execcmd = <<<EOF + global \$config; \$toreturn = array(); \$toreturn['voucher'] = \$config['voucher']['$cpzone']; unset(\$toreturn['vouchersyncport'], \$toreturn['vouchersyncpass'], \$toreturn['vouchersyncusername'], \$toreturn['vouchersyncdbip']); EOF; - - $options = array( - 'prefix' => 'pfsense.', - 'sslverify' => false, - 'connectionTimeout' => 240 - ); - - log_error(sprintf(gettext("voucher XMLRPC sync data %s"), $url)); - $cli = XML_RPC2_Client::create($url, $options); - if (!is_object($cli)) { - $error = sprintf(gettext("A communications error occurred while attempting CaptivePortalVoucherSync XMLRPC sync with %s (pfsense.exec_php)."), $url); - log_error($error); - file_notice("sync_settings", $error, "Settings Sync", ""); - $input_errors[] = $error; - } else { - try { - $resp = $cli->exec_php($newvoucher['vouchersyncusername'], $newvoucher['vouchersyncpass'], $execcmd); - } catch (XML_RPC2_FaultException $e) { - // The XMLRPC server returns a XMLRPC error - $error = 'Exception calling XMLRPC method exec_php #' . $e->getFaultCode() . ' : ' . $e->getFaultString(); - log_error($error); - file_notice("CaptivePortalVoucherSync", $error, "Communications error occurred", ""); - $input_errors[] = $error; - } catch (Exception $e) { - // Other errors (HTTP or networking problems...) - $error = 'Exception calling XMLRPC method exec_php #' . $e->getMessage(); - log_error($error); - file_notice("CaptivePortalVoucherSync", $error, gettext("Error code received"), ""); - $input_errors[] = $error; - } + require_once("xmlrpc_client.inc"); + $rpc_client = new pfsense_xmlrpc_client(); + $rpc_client->setConnectionData( + $newvoucher['vouchersyncdbip'], $newvoucher['vouchersyncport'], + $newvoucher['vouchersyncusername'], $newvoucher['vouchersyncpass']); + $rpc_client->set_noticefile("CaptivePortalVoucherSync"); + $resp = $rpc_client->xmlrpc_exec_php($execcmd); + if ($resp == null) { + $input_errors[] = $rpc_client->get_error(); } if (!$input_errors) { - if (!is_array($resp)) { - if ($resp == "Authentication failed") { - $input_errors[] = gettext("Could not synchronize the voucher database: Authentication Failed."); - } - } else { + if (is_array($resp)) { log_error(sprintf(gettext("The Captive Portal voucher database has been synchronized with %s (pfsense.exec_php)."), $url)); // If we received back the voucher roll and other information then store it. if ($resp['voucher']['roll']) { diff --git a/src/usr/local/www/services_captiveportal_vouchers_edit.php b/src/usr/local/www/services_captiveportal_vouchers_edit.php index 8a69439..3912e74 100644 --- a/src/usr/local/www/services_captiveportal_vouchers_edit.php +++ b/src/usr/local/www/services_captiveportal_vouchers_edit.php @@ -3,7 +3,7 @@ * services_captiveportal_vouchers_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2007 Marcel Wiget <mwiget@mac.com> * All rights reserved. * @@ -38,7 +38,7 @@ $cpzone = $_GET['zone']; if (isset($_POST['zone'])) { $cpzone = $_POST['zone']; } -$cpzone = strtolower($cpzone); +$cpzone = strtolower(htmlspecialchars($cpzone)); if (empty($cpzone) || empty($config['captiveportal'][$cpzone])) { header("Location: services_captiveportal_zones.php"); diff --git a/src/usr/local/www/services_captiveportal_zones.php b/src/usr/local/www/services_captiveportal_zones.php index 64b70ab..2a9fc67 100644 --- a/src/usr/local/www/services_captiveportal_zones.php +++ b/src/usr/local/www/services_captiveportal_zones.php @@ -3,7 +3,7 @@ * services_captiveportal_zones.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -41,7 +41,7 @@ if (!is_array($config['captiveportal'])) { $a_cp = &$config['captiveportal']; if ($_GET['act'] == "del" && !empty($_GET['zone'])) { - $cpzone = htmlspecialchars($_GET['zone']); + $cpzone = strtolower(htmlspecialchars($_GET['zone'])); if ($a_cp[$cpzone]) { $cpzoneid = $a_cp[$cpzone]['zoneid']; unset($a_cp[$cpzone]['enable']); diff --git a/src/usr/local/www/services_captiveportal_zones_edit.php b/src/usr/local/www/services_captiveportal_zones_edit.php index ef4df0b..6e9ae88 100644 --- a/src/usr/local/www/services_captiveportal_zones_edit.php +++ b/src/usr/local/www/services_captiveportal_zones_edit.php @@ -3,7 +3,7 @@ * services_captiveportal_zones_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -62,7 +62,7 @@ if ($_POST) { } if (!$input_errors) { - $cpzone = strtolower($_POST['zone']); + $cpzone = strtolower(htmlspecialchars($_POST['zone'])); $a_cp[$cpzone] = array(); $a_cp[$cpzone]['zone'] = str_replace(" ", "", $_POST['zone']); $a_cp[$cpzone]['descr'] = $_POST['descr']; diff --git a/src/usr/local/www/services_checkip.php b/src/usr/local/www/services_checkip.php index cf740c2..b59d3d1 100644 --- a/src/usr/local/www/services_checkip.php +++ b/src/usr/local/www/services_checkip.php @@ -3,7 +3,7 @@ * services_checkip.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -156,9 +156,12 @@ endforeach; ?> </a> </nav> -<?php -print_info_box(gettext('The first (highest in list) enabled check ip service will be used to ' . - 'check IP addresses for Dynamic DNS services, and ' . - 'RFC 2136 entries that have the "Use public IP" option enabled.')); +<div class="infoblock"> + <?php print_info_box(gettext( + 'The first (highest in list) enabled check ip service will be used to ' . + 'check IP addresses for Dynamic DNS services, and ' . + 'RFC 2136 entries that have the "Use public IP" option enabled.' + ), 'info', false); ?> +</div> -include("foot.inc"); +<?php include("foot.inc"); diff --git a/src/usr/local/www/services_checkip_edit.php b/src/usr/local/www/services_checkip_edit.php index 99ba7a3..932366e 100644 --- a/src/usr/local/www/services_checkip_edit.php +++ b/src/usr/local/www/services_checkip_edit.php @@ -3,7 +3,7 @@ * services_checkip_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/services_dhcp.php b/src/usr/local/www/services_dhcp.php index a9451b0..c9c275a 100644 --- a/src/usr/local/www/services_dhcp.php +++ b/src/usr/local/www/services_dhcp.php @@ -3,7 +3,7 @@ * services_dhcp.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -175,6 +175,7 @@ if (is_array($dhcpdconf)) { $pconfig['ddnsdomainkeyname'] = $dhcpdconf['ddnsdomainkeyname']; $pconfig['ddnsdomainkey'] = $dhcpdconf['ddnsdomainkey']; $pconfig['ddnsupdate'] = isset($dhcpdconf['ddnsupdate']); + $pconfig['ddnsforcehostname'] = isset($dhcpdconf['ddnsforcehostname']); $pconfig['mac_allow'] = $dhcpdconf['mac_allow']; $pconfig['mac_deny'] = $dhcpdconf['mac_deny']; list($pconfig['ntp1'], $pconfig['ntp2']) = $dhcpdconf['ntpserver']; @@ -541,6 +542,7 @@ if (isset($_POST['save'])) { $dhcpdconf['ddnsdomainkeyname'] = $_POST['ddnsdomainkeyname']; $dhcpdconf['ddnsdomainkey'] = $_POST['ddnsdomainkey']; $dhcpdconf['ddnsupdate'] = ($_POST['ddnsupdate']) ? true : false; + $dhcpdconf['ddnsforcehostname'] = ($_POST['ddnsforcehostname']) ? true : false; $dhcpdconf['mac_allow'] = $_POST['mac_allow']; $dhcpdconf['mac_deny'] = $_POST['mac_deny']; @@ -632,6 +634,10 @@ if ($act == "delpool") { if ($act == "del") { if ($a_maps[$_GET['id']]) { + /* Remove static ARP entry, if necessary */ + if (isset($a_maps[$_GET['id']]['arp_table_static_entry'])) { + mwexec("/usr/sbin/arp -d " . escapeshellarg($a_maps[$_GET['id']]['ipaddr'])); + } unset($a_maps[$_GET['id']]); write_config(); if (isset($config['dhcpd'][$if]['enable'])) { @@ -840,13 +846,15 @@ $group = new Form_Group('Range'); $group->add(new Form_IpAddress( 'range_from', null, - $pconfig['range_from'] + $pconfig['range_from'], + 'V4' ))->setHelp('From'); $group->add(new Form_IpAddress( 'range_to', null, - $pconfig['range_to'] + $pconfig['range_to'], + 'V4' ))->setHelp('To'); $section->add($group); @@ -884,21 +892,24 @@ $section = new Form_Section('Servers'); $section->addInput(new Form_IpAddress( 'wins1', 'WINS servers', - $pconfig['wins1'] -))->setPattern('[.a-zA-Z0-9_]+')->setAttribute('placeholder', 'WINS Server 1'); + $pconfig['wins1'], + 'V4' +))->setAttribute('placeholder', 'WINS Server 1'); $section->addInput(new Form_IpAddress( 'wins2', null, - $pconfig['wins2'] -))->setPattern('[.a-zA-Z0-9_]+')->setAttribute('placeholder', 'WINS Server 2'); + $pconfig['wins2'], + 'V4' +))->setAttribute('placeholder', 'WINS Server 2'); for ($idx=1; $idx<=4; $idx++) { $section->addInput(new Form_IpAddress( 'dns' . $idx, ($idx == 1) ? 'DNS servers':null, - $pconfig['dns' . $idx] - ))->setPattern('[.a-zA-Z0-9_]+')->setAttribute('placeholder', 'DNS Server ' . $idx)->setHelp(($idx == 4) ? 'Leave blank to use the system default DNS servers: this interface\'s IP if DNS Forwarder or Resolver is enabled, otherwise the servers configured on the System / General Setup page.':''); + $pconfig['dns' . $idx], + 'V4' + ))->setAttribute('placeholder', 'DNS Server ' . $idx)->setHelp(($idx == 4) ? 'Leave blank to use the system default DNS servers: this interface\'s IP if DNS Forwarder or Resolver is enabled, otherwise the servers configured on the System / General Setup page.':''); } $form->add($section); @@ -908,7 +919,8 @@ $section = new Form_Section('Other Options'); $section->addInput(new Form_IpAddress( 'gateway', 'Gateway', - $pconfig['gateway'] + $pconfig['gateway'], + 'V4' ))->setPattern('[.a-zA-Z0-9_]+') ->setHelp('The default is to use the IP on this interface of the firewall as the gateway. Specify an alternate gateway here if this is not the correct gateway for the network. Type "none" for no gateway assignment.'); @@ -944,7 +956,8 @@ if (!is_numeric($pool) && !($act == "newpool")) { $section->addInput(new Form_IpAddress( 'failover_peerip', 'Failover peer IP', - $pconfig['failover_peerip'] + $pconfig['failover_peerip'], + 'V4' ))->setHelp('Leave blank to disable. Enter the interface IP address of the other machine. Machines must be using CARP. ' . 'Interface\'s advskew determines whether the DHCPd process is Primary or Secondary. Ensure one machine\'s advskew < 20 (and the other is > 20).'); } @@ -1002,10 +1015,18 @@ $section->addInput(new Form_Input( ))->setHelp('Leave blank to disable dynamic DNS registration.' . '<br />' . 'Enter the dynamic DNS domain which will be used to register client names in the DNS server.'); +$section->addInput(new Form_Checkbox( + 'ddnsforcehostname', + 'DDNS Hostnames', + 'Force dynamic DNS hostname to be the same as configured hostname for Static Mappings', + $pconfig['ddnsforcehostname'] +))->setHelp('Default registers host name option supplied by DHCP client.'); + $section->addInput(new Form_IpAddress( 'ddnsdomainprimary', 'Primary DDNS address', - $pconfig['ddnsdomainprimary'] + $pconfig['ddnsdomainprimary'], + 'V4' ))->setHelp('Primary domain name server IP address for the dynamic domain name.'); $section->addInput(new Form_Input( @@ -1069,14 +1090,16 @@ $section->addInput(new Form_StaticText( $section->addInput(new Form_IpAddress( 'ntp1', 'NTP Server 1', - $pconfig['ntp1'] -))->setPattern('[.a-zA-Z0-9_]+'); + $pconfig['ntp1'], + 'V4' +))->setPattern('[.a-zA-Z0-9-]+'); $section->addInput(new Form_IpAddress( 'ntp2', 'NTP Server 2', - $pconfig['ntp2'] -))->setPattern('[.a-zA-Z0-9_]+'); + $pconfig['ntp2'], + 'V4' +))->setPattern('[.a-zA-Z0-9-]+'); // Advanced TFTP $btnadv = new Form_Button( @@ -1146,7 +1169,8 @@ $section->addInput(new Form_Checkbox( $section->addInput(new Form_IpAddress( 'nextserver', 'Next Server', - $pconfig['nextserver'] + $pconfig['nextserver'], + 'V4' ))->setHelp('Enter the IP address of the next server'); $section->addInput(new Form_Input( @@ -1381,7 +1405,7 @@ events.push(function() { // On page load decide the initial state based on the data. if (ispageload) { <?php - if (!$pconfig['ddnsupdate'] && empty($pconfig['ddnsdomain']) && empty($pconfig['ddnsdomainprimary']) && + if (!$pconfig['ddnsupdate'] && !$pconfig['ddnsforcehostname'] && empty($pconfig['ddnsdomain']) && empty($pconfig['ddnsdomainprimary']) && empty($pconfig['ddnsdomainkeyname']) && empty($pconfig['ddnsdomainkey'])) { $showadv = false; } else { @@ -1396,6 +1420,7 @@ events.push(function() { hideCheckbox('ddnsupdate', !showadvdns); hideInput('ddnsdomain', !showadvdns); + hideCheckbox('ddnsforcehostname', !showadvdns); hideInput('ddnsdomainprimary', !showadvdns); hideInput('ddnsdomainkeyname', !showadvdns); hideInput('ddnsdomainkey', !showadvdns); diff --git a/src/usr/local/www/services_dhcp_edit.php b/src/usr/local/www/services_dhcp_edit.php index 53dd933..c332159 100644 --- a/src/usr/local/www/services_dhcp_edit.php +++ b/src/usr/local/www/services_dhcp_edit.php @@ -3,7 +3,7 @@ * services_dhcp_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -110,6 +110,7 @@ if (isset($id) && $a_maps[$id]) { $pconfig['ddnsdomainkeyname'] = $a_maps[$id]['ddnsdomainkeyname']; $pconfig['ddnsdomainkey'] = $a_maps[$id]['ddnsdomainkey']; $pconfig['ddnsupdate'] = isset($a_maps[$id]['ddnsupdate']); + $pconfig['ddnsforcehostname'] = isset($a_maps[$id]['ddnsforcehostname']); list($pconfig['ntp1'], $pconfig['ntp2']) = $a_maps[$id]['ntpserver']; $pconfig['tftp'] = $a_maps[$id]['tftp']; } else { @@ -136,6 +137,7 @@ if (isset($id) && $a_maps[$id]) { $pconfig['ddnsdomainkeyname'] = $_GET['ddnsdomainkeyname']; $pconfig['ddnsdomainkey'] = $_GET['ddnsdomainkey']; $pconfig['ddnsupdate'] = isset($_GET['ddnsupdate']); + $pconfig['ddnsforcehostname'] = isset($_GET['ddnsforcehostname']); $pconfig['ntp1'] = $_GET['ntp1']; $pconfig['ntp2'] = $_GET['ntp2']; $pconfig['tftp'] = $_GET['tftp']; @@ -173,8 +175,8 @@ if ($_POST) { } } - if (($_POST['ipaddr'] && !is_ipaddr($_POST['ipaddr']))) { - $input_errors[] = gettext("A valid IP address must be specified."); + if (($_POST['ipaddr'] && !is_ipaddrv4($_POST['ipaddr']))) { + $input_errors[] = gettext("A valid IPv4 address must be specified."); } if (($_POST['mac'] && !is_macaddr($_POST['mac']))) { @@ -232,10 +234,10 @@ if ($_POST) { } if (($_POST['gateway'] && !is_ipaddrv4($_POST['gateway']))) { - $input_errors[] = gettext("A valid IP address must be specified for the gateway."); + $input_errors[] = gettext("A valid IPv4 address must be specified for the gateway."); } if (($_POST['wins1'] && !is_ipaddrv4($_POST['wins1'])) || ($_POST['wins2'] && !is_ipaddrv4($_POST['wins2']))) { - $input_errors[] = gettext("A valid IP address must be specified for the primary/secondary WINS servers."); + $input_errors[] = gettext("A valid IPv4 address must be specified for the primary/secondary WINS servers."); } $parent_ip = get_interface_ip($POST['if']); @@ -249,7 +251,7 @@ if ($_POST) { ($_POST['dns2'] && !is_ipaddrv4($_POST['dns2'])) || ($_POST['dns3'] && !is_ipaddrv4($_POST['dns3'])) || ($_POST['dns4'] && !is_ipaddrv4($_POST['dns4']))) { - $input_errors[] = gettext("A valid IP address must be specified for each of the DNS servers."); + $input_errors[] = gettext("A valid IPV4 address must be specified for each of the DNS servers."); } if ($_POST['deftime'] && (!is_numeric($_POST['deftime']) || ($_POST['deftime'] < 60))) { @@ -262,7 +264,7 @@ if ($_POST) { $input_errors[] = gettext("A valid domain name must be specified for the dynamic DNS registration."); } if (($_POST['ddnsdomain'] && !is_ipaddrv4($_POST['ddnsdomainprimary']))) { - $input_errors[] = gettext("A valid primary domain name server IP address must be specified for the dynamic domain name."); + $input_errors[] = gettext("A valid primary domain name server IPv4 address must be specified for the dynamic domain name."); } if (($_POST['ddnsdomainkey'] && !$_POST['ddnsdomainkeyname']) || ($_POST['ddnsdomainkeyname'] && !$_POST['ddnsdomainkey'])) { @@ -279,13 +281,19 @@ if ($_POST) { } if (($_POST['ntp1'] && !is_ipaddrv4($_POST['ntp1'])) || ($_POST['ntp2'] && !is_ipaddrv4($_POST['ntp2']))) { - $input_errors[] = gettext("A valid IP address must be specified for the primary/secondary NTP servers."); + $input_errors[] = gettext("A valid IPv4 address must be specified for the primary/secondary NTP servers."); } if ($_POST['tftp'] && !is_ipaddrv4($_POST['tftp']) && !is_domain($_POST['tftp']) && !filter_var($_POST['tftp'], FILTER_VALIDATE_URL)) { - $input_errors[] = gettext("A valid IP address, hostname or URL must be specified for the TFTP server."); + $input_errors[] = gettext("A valid IPv4 address, hostname or URL must be specified for the TFTP server."); } if (($_POST['nextserver'] && !is_ipaddrv4($_POST['nextserver']))) { - $input_errors[] = gettext("A valid IP address must be specified for the network boot server."); + $input_errors[] = gettext("A valid IPv4 address must be specified for the network boot server."); + } + if (isset($_POST['arp_table_static_entry']) && empty($_POST['mac'])) { + $input_errors[] = gettext("A valid MAC address must be specified for use with static ARP."); + } + if (isset($_POST['arp_table_static_entry']) && empty($_POST['ipaddr'])) { + $input_errors[] = gettext("A valid IPv4 address must be specified for use with static ARP."); } if (!$input_errors) { @@ -331,6 +339,7 @@ if ($_POST) { $mapent['ddnsdomainkeyname'] = $_POST['ddnsdomainkeyname']; $mapent['ddnsdomainkey'] = $_POST['ddnsdomainkey']; $mapent['ddnsupdate'] = ($_POST['ddnsupdate']) ? true : false; + $mapent['ddnsforcehostname'] = ($_POST['ddnsforcehostname']) ? true : false; unset($mapent['ntpserver']); if ($_POST['ntp1']) { @@ -362,6 +371,13 @@ if ($_POST) { } } + /* Configure static ARP entry, or remove ARP entry if this host is dynamic. See https://redmine.pfsense.org/issues/6821 */ + if ($mapent['arp_table_static_entry']) { + mwexec("/usr/sbin/arp -S " . escapeshellarg($mapent['ipaddr']) . " " . escapeshellarg($mapent['mac'])); + } else { + mwexec("/usr/sbin/arp -d " . escapeshellarg($mapent['ipaddr'])); + } + header("Location: services_dhcp.php?if={$if}"); exit; } @@ -424,7 +440,8 @@ $section->addInput(new Form_Input( $section->addInput(new Form_IpAddress( 'ipaddr', 'IP Address', - $pconfig['ipaddr'] + $pconfig['ipaddr'], + 'V4' ))->setHelp('If an IPv4 address is entered, the address must be outside of the pool.' . '<br />' . 'If no IPv4 address is given, one will be dynamically allocated from the pool.'); @@ -578,6 +595,13 @@ $section->addInput(new Form_Checkbox( $pconfig['ddnsupdate'] )); +$section->addInput(new Form_Checkbox( + 'ddnsforcehostname', + 'DDNS Hostname', + 'Make dynamic DNS registered hostname the same as Hostname above.', + $pconfig['ddnsforcehostname'] +)); + $section->addInput(new Form_Input( 'ddnsdomain', 'DDNS Domain', @@ -588,7 +612,8 @@ $section->addInput(new Form_Input( $section->addInput(new Form_IpAddress( 'ddnsdomainprimary', 'DDNS Server IP', - $pconfig['ddnsdomainprimary'] + $pconfig['ddnsdomainprimary'], + 'V4' ))->setHelp('Enter the primary domain name server IP address for the dynamic domain name.'); $section->addInput(new Form_Input( @@ -678,7 +703,7 @@ events.push(function() { // On page load decide the initial state based on the data. if (ispageload) { <?php - if (!$pconfig['ddnsupdate'] && empty($pconfig['ddnsdomain']) && empty($pconfig['ddnsdomainprimary']) && + if (!$pconfig['ddnsupdate'] && !$pconfig['ddnsforcehostname'] && empty($pconfig['ddnsdomain']) && empty($pconfig['ddnsdomainprimary']) && empty($pconfig['ddnsdomainkeyname']) && empty($pconfig['ddnsdomainkey'])) { $showadv = false; } else { @@ -692,6 +717,7 @@ events.push(function() { } hideCheckbox('ddnsupdate', !showadvdns); + hideCheckbox('ddnsforcehostname', !showadvdns); hideInput('ddnsdomain', !showadvdns); hideInput('ddnsdomainprimary', !showadvdns); hideInput('ddnsdomainkeyname', !showadvdns); diff --git a/src/usr/local/www/services_dhcp_relay.php b/src/usr/local/www/services_dhcp_relay.php index 949fe3c..fa1018c 100644 --- a/src/usr/local/www/services_dhcp_relay.php +++ b/src/usr/local/www/services_dhcp_relay.php @@ -3,7 +3,7 @@ * services_dhcp_relay.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2003-2004 Justin Ellison <justin@techadvise.com> * All rights reserved. * diff --git a/src/usr/local/www/services_dhcpv6.php b/src/usr/local/www/services_dhcpv6.php index 7bcc846..14965ef 100644 --- a/src/usr/local/www/services_dhcpv6.php +++ b/src/usr/local/www/services_dhcpv6.php @@ -3,7 +3,7 @@ * services_dhcpv6.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Seth Mos <seth.mos@dds.nl> * All rights reserved. * @@ -75,11 +75,6 @@ if (!$g['services_dhcp_server_enable']) { exit; } -/* Fix failover DHCP problem - * http://article.gmane.org/gmane.comp.security.firewalls.pfsense.support/18749 - */ -ini_set("memory_limit", "64M"); - $if = $_GET['if']; if ($_POST['if']) { $if = $_POST['if']; @@ -139,6 +134,7 @@ if (is_array($config['dhcpdv6'][$if])) { $pconfig['ddnsdomainkeyname'] = $config['dhcpdv6'][$if]['ddnsdomainkeyname']; $pconfig['ddnsdomainkey'] = $config['dhcpdv6'][$if]['ddnsdomainkey']; $pconfig['ddnsupdate'] = isset($config['dhcpdv6'][$if]['ddnsupdate']); + $pconfig['ddnsforcehostname'] = isset($config['dhcpdv6'][$if]['ddnsforcehostname']); $pconfig['ddnsreverse'] = isset($config['dhcpdv6'][$if]['ddnsreverse']); $pconfig['ddnsclientupdates'] = $config['dhcpdv6'][$if]['ddnsclientupdates']; list($pconfig['ntp1'], $pconfig['ntp2']) = $config['dhcpdv6'][$if]['ntpserver']; @@ -249,24 +245,30 @@ if (isset($_POST['apply'])) { } } + $range_from_to_ok = true; + if ($_POST['range_from']) { if (!is_ipaddrv6($_POST['range_from'])) { $input_errors[] = gettext("A valid range must be specified."); + $range_from_to_ok = false; } elseif ($config['interfaces'][$if]['ipaddrv6'] == 'track6' && !Net_IPv6::isInNetmask($_POST['range_from'], '::', $ifcfgsn)) { $input_errors[] = sprintf(gettext( "The prefix (upper %s bits) must be zero. Use the form %s"), $ifcfgsn, $str_help_mask); + $range_from_to_ok = false; } } if ($_POST['range_to']) { if (!is_ipaddrv6($_POST['range_to'])) { $input_errors[] = gettext("A valid range must be specified."); + $range_from_to_ok = false; } elseif ($config['interfaces'][$if]['ipaddrv6'] == 'track6' && !Net_IPv6::isInNetmask($_POST['range_to'], '::', $ifcfgsn)) { $input_errors[] = sprintf(gettext( "The prefix (upper %s bits) must be zero. Use the form %s"), $ifcfgsn, $str_help_mask); + $range_from_to_ok = false; } } if (($_POST['gateway'] && !is_ipaddrv6($_POST['gateway']))) { @@ -319,7 +321,7 @@ if (isset($_POST['apply'])) { } // Disallow a range that includes the virtualip - if (is_array($config['virtualip']['vip'])) { + if ($range_from_to_ok && is_array($config['virtualip']['vip'])) { foreach ($config['virtualip']['vip'] as $vip) { if ($vip['interface'] == $if) { if ($vip['subnetv6'] && is_inrange_v6($vip['subnetv6'], $_POST['range_from'], $_POST['range_to'])) { @@ -424,6 +426,7 @@ if (isset($_POST['apply'])) { $config['dhcpdv6'][$if]['ddnsdomainkeyname'] = $_POST['ddnsdomainkeyname']; $config['dhcpdv6'][$if]['ddnsdomainkey'] = $_POST['ddnsdomainkey']; $config['dhcpdv6'][$if]['ddnsupdate'] = ($_POST['ddnsupdate']) ? true : false; + $config['dhcpdv6'][$if]['ddnsforcehostname'] = ($_POST['ddnsforcehostname']) ? true : false; $config['dhcpdv6'][$if]['ddnsreverse'] = ($_POST['ddnsreverse']) ? true : false; $config['dhcpdv6'][$if]['ddnsclientupdates'] = $_POST['ddnsclientupdates']; @@ -750,11 +753,19 @@ $section->addInput(new Form_Input( $pconfig['ddnsdomain'] ))->setHelp('Leave blank to disable dynamic DNS registration. Enter the dynamic DNS domain which will be used to register client names in the DNS server.'); +$section->addInput(new Form_Checkbox( + 'ddnsforcehostname', + 'DDNS Hostnames', + 'Force dynamic DNS hostname to be the same as configured hostname for Static Mappings', + $pconfig['ddnsforcehostname'] +))->setHelp('Default registers host name option supplied by DHCP client.'); + $section->addInput(new Form_IpAddress( 'ddnsdomainprimary', 'DDNS Server IP', - $pconfig['ddnsdomainprimary'] -))->setHelp('Enter the primary domain name server IP address for the dynamic domain name.'); + $pconfig['ddnsdomainprimary'], + 'V4' +))->setHelp('Enter the primary domain name server IPv4 address for the dynamic domain name.'); $section->addInput(new Form_Input( 'ddnsdomainkeyname', @@ -1043,6 +1054,7 @@ events.push(function() { if (ispageload) { <?php if (!$pconfig['ddnsupdate'] && + !$pconfig['ddnsforcehostname'] && empty($pconfig['ddnsdomain']) && empty($pconfig['ddnsdomainprimary']) && empty($pconfig['ddnsdomainkeyname']) && @@ -1062,6 +1074,7 @@ events.push(function() { hideCheckbox('ddnsupdate', !showadvdns); hideInput('ddnsdomain', !showadvdns); + hideCheckbox('ddnsforcehostname', !showadvdns); hideInput('ddnsdomainprimary', !showadvdns); hideInput('ddnsdomainkeyname', !showadvdns); hideInput('ddnsdomainkey', !showadvdns); diff --git a/src/usr/local/www/services_dhcpv6_edit.php b/src/usr/local/www/services_dhcpv6_edit.php index 8dde1f9..3882e0f 100644 --- a/src/usr/local/www/services_dhcpv6_edit.php +++ b/src/usr/local/www/services_dhcpv6_edit.php @@ -3,7 +3,7 @@ * services_dhcpv6_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Seth Mos <seth.mos@dds.nl> * All rights reserved. * diff --git a/src/usr/local/www/services_dhcpv6_relay.php b/src/usr/local/www/services_dhcpv6_relay.php index cfeef93..a80b529 100644 --- a/src/usr/local/www/services_dhcpv6_relay.php +++ b/src/usr/local/www/services_dhcpv6_relay.php @@ -3,7 +3,7 @@ * services_dhcpv6_relay.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2003-2004 Justin Ellison <justin@techadvise.com> * Copyright (c) 2010 Seth Mos * All rights reserved. diff --git a/src/usr/local/www/services_dnsmasq.php b/src/usr/local/www/services_dnsmasq.php index 8f82bfa..fb74e7b 100644 --- a/src/usr/local/www/services_dnsmasq.php +++ b/src/usr/local/www/services_dnsmasq.php @@ -3,7 +3,7 @@ * services_dnsmasq.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2003-2004 Bob Zoller <bob@kludgebox.com> * All rights reserved. * @@ -37,6 +37,36 @@ require_once("filter.inc"); require_once("shaper.inc"); require_once("system.inc"); +// Sort host entries for display in alphabetical order +function hostcmp($a, $b) { + return strcasecmp($a['host'], $b['host']); +} + +function hosts_sort() { + global $a_hosts; + + if (!is_array($a_hosts)) { + return; + } + + usort($a_hosts, "hostcmp"); +} + +// Sort domain entries for display in alphabetical order +function domaincmp($a, $b) { + return strcasecmp($a['domain'], $b['domain']); +} + +function domains_sort() { + global $a_domainOverrides; + + if (!is_array($a_domainOverrides)) { + return; + } + + usort($a_domainOverrides, "domaincmp"); +} + $pconfig['enable'] = isset($config['dnsmasq']['enable']); $pconfig['regdhcp'] = isset($config['dnsmasq']['regdhcp']); $pconfig['regdhcpstatic'] = isset($config['dnsmasq']['regdhcpstatic']); @@ -46,8 +76,8 @@ $pconfig['domain_needed'] = isset($config['dnsmasq']['domain_needed']); $pconfig['no_private_reverse'] = isset($config['dnsmasq']['no_private_reverse']); $pconfig['port'] = $config['dnsmasq']['port']; $pconfig['custom_options'] = $config['dnsmasq']['custom_options']; - $pconfig['strictbind'] = isset($config['dnsmasq']['strictbind']); + if (!empty($config['dnsmasq']['interface'])) { $pconfig['interface'] = explode(",", $config['dnsmasq']['interface']); } else { @@ -63,8 +93,23 @@ if (!is_array($config['dnsmasq']['domainoverrides'])) { } $a_hosts = &$config['dnsmasq']['hosts']; + +// Add a temporary index so we don't lose the order after sorting +for ($idx=0; $idx<count($a_hosts); $idx++) { + $a_hosts[$idx]['idx'] = $idx; +} + +hosts_sort(); + $a_domainOverrides = &$config['dnsmasq']['domainoverrides']; +// Add a temporary index so we don't lose the order after sorting +for ($idx=0; $idx<count($a_domainOverrides); $idx++) { + $a_domainOverrides[$idx]['idx'] = $idx; +} + +domains_sort(); + if ($_POST) { if ($_POST['apply']) { $retval = 0; @@ -341,8 +386,8 @@ foreach ($a_hosts as $i => $hostent): <?=htmlspecialchars($hostent['descr'])?> </td> <td> - <a class="fa fa-pencil" title="<?=gettext('Edit host override')?>" href="services_dnsmasq_edit.php?id=<?=$i?>"></a> - <a class="fa fa-trash" title="<?=gettext('Delete host override')?>" href="services_dnsmasq.php?type=host&act=del&id=<?=$i?>"></a> + <a class="fa fa-pencil" title="<?=gettext('Edit host override')?>" href="services_dnsmasq_edit.php?id=<?=$hostent['idx']?>"></a> + <a class="fa fa-trash" title="<?=gettext('Delete host override')?>" href="services_dnsmasq.php?type=host&act=del&id=<?=$hostent['idx']?>"></a> </td> </tr> @@ -413,8 +458,8 @@ foreach ($a_domainOverrides as $i => $doment): <?=htmlspecialchars($doment['descr'])?> </td> <td> - <a class="fa fa-pencil" title="<?=gettext('Edit domain override')?>" href="services_dnsmasq_domainoverride_edit.php?id=<?=$i?>"></a> - <a class="fa fa-trash" title="<?=gettext('Delete domain override')?>" href="services_dnsmasq.php?act=del&type=doverride&id=<?=$i?>"></a> + <a class="fa fa-pencil" title="<?=gettext('Edit domain override')?>" href="services_dnsmasq_domainoverride_edit.php?id=<?=$doment['idx']?>"></a> + <a class="fa fa-trash" title="<?=gettext('Delete domain override')?>" href="services_dnsmasq.php?act=del&type=doverride&id=<?=$doment['idx']?>"></a> </td> </tr> <?php diff --git a/src/usr/local/www/services_dnsmasq_domainoverride_edit.php b/src/usr/local/www/services_dnsmasq_domainoverride_edit.php index 4fbb82e..7512e25 100644 --- a/src/usr/local/www/services_dnsmasq_domainoverride_edit.php +++ b/src/usr/local/www/services_dnsmasq_domainoverride_edit.php @@ -3,7 +3,7 @@ * services_dnsmasq_domainoverride_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2003-2004 Bob Zoller <bob@kludgebox.com> * All rights reserved. * diff --git a/src/usr/local/www/services_dnsmasq_edit.php b/src/usr/local/www/services_dnsmasq_edit.php index ea559fe..1d7062a 100644 --- a/src/usr/local/www/services_dnsmasq_edit.php +++ b/src/usr/local/www/services_dnsmasq_edit.php @@ -3,7 +3,7 @@ * services_dnsmasq_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2003-2004 Bob Zoller <bob@kludgebox.com> * All rights reserved. * @@ -31,20 +31,6 @@ ##|*MATCH=services_dnsmasq_edit.php* ##|-PRIV -function hostcmp($a, $b) { - return strcasecmp($a['host'], $b['host']); -} - -function hosts_sort() { - global $g, $config; - - if (!is_array($config['dnsmasq']['hosts'])) { - return; - } - - usort($config['dnsmasq']['hosts'], "hostcmp"); -} - require_once("guiconfig.inc"); if (!is_array($config['dnsmasq']['hosts'])) { @@ -139,6 +125,7 @@ if ($_POST) { } } } + /* check for overlaps */ foreach ($a_hosts as $hostent) { if (isset($id) && ($a_hosts[$id]) && ($a_hosts[$id] === $hostent)) { @@ -167,7 +154,6 @@ if ($_POST) { } else { $a_hosts[] = $hostent; } - hosts_sort(); mark_subsystem_dirty('hosts'); diff --git a/src/usr/local/www/services_dyndns.php b/src/usr/local/www/services_dyndns.php index 9284c3c..a8f17f2 100644 --- a/src/usr/local/www/services_dyndns.php +++ b/src/usr/local/www/services_dyndns.php @@ -3,7 +3,7 @@ * services_dyndns.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -33,10 +33,11 @@ if (!is_array($config['dyndnses']['dyndns'])) { } $a_dyndns = &$config['dyndnses']['dyndns']; +global $dyndns_split_domain_types; if ($_GET['act'] == "del") { $conf = $a_dyndns[$_GET['id']]; - if ($conf['type'] == "namecheap") { + if (in_array($conf['type'], $dyndns_split_domain_types)) { $hostname = $conf['host'] . "." . $conf['domainname']; } else { $hostname = $conf['host']; @@ -96,7 +97,7 @@ display_top_tabs($tab_array); <?php $i = 0; foreach ($a_dyndns as $dyndns): - if ($dyndns['type'] == "namecheap") { + if (in_array($dyndns['type'], $dyndns_split_domain_types)) { $hostname = $dyndns['host'] . "." . $dyndns['domainname']; } else { $hostname = $dyndns['host']; diff --git a/src/usr/local/www/services_dyndns_edit.php b/src/usr/local/www/services_dyndns_edit.php index 060d624..55860f0 100644 --- a/src/usr/local/www/services_dyndns_edit.php +++ b/src/usr/local/www/services_dyndns_edit.php @@ -3,7 +3,7 @@ * services_dyndns_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -76,6 +76,7 @@ if (isset($id) && isset($a_dyndns[$id])) { } if ($_POST) { + global $dyndns_split_domain_types; unset($input_errors); $pconfig = $_POST; @@ -96,7 +97,7 @@ if ($_POST) { $reqdfieldsn[] = gettext("Password"); $reqdfields[] = "username"; $reqdfieldsn[] = gettext("Username"); - if ($pconfig['type'] == "namecheap") { + if (in_array($pconfig['type'], $dyndns_split_domain_types)) { $reqdfields[] = "domainname"; $reqdfieldsn[] = gettext("Domain name"); } @@ -149,7 +150,7 @@ if ($_POST) { $dyndns['type'] = $_POST['type']; $dyndns['username'] = $_POST['username']; if ($_POST['passwordfld'] != DMYPWD) { - $dyndns['password'] = $_POST['passwordfld']; + $dyndns['password'] = base64_encode($_POST['passwordfld']); } else { $dyndns['password'] = $a_dyndns[$id]['password'];; } @@ -302,7 +303,7 @@ $group->setHelp('Enter the complete fully qualified domain name. Example: myhost 'he.net tunnelbroker: Enter the tunnel ID.' . '<br />' . 'GleSYS: Enter the record ID.' . '<br />' . 'DNSimple: Enter only the domain name.' . '<br />' . - 'Namecheap: Enter the hostname and the domain separately, with the domain being the domain or subdomain zone being handled by Namecheap.'); + 'Namecheap, Cloudflare, GratisDNS: Enter the hostname and the domain separately, with the domain being the domain or subdomain zone being handled by the provider.'); $section->add($group); @@ -459,6 +460,9 @@ events.push(function() { hideInput('ttl', false); break; case "namecheap": + case "cloudflare-v6": + case "cloudflare": + case "gratisdns": hideGroupInput('domainname', false); hideInput('resultmatch', true); hideInput('updateurl', true); diff --git a/src/usr/local/www/services_igmpproxy.php b/src/usr/local/www/services_igmpproxy.php index 7a8db1d..f3b8775 100644 --- a/src/usr/local/www/services_igmpproxy.php +++ b/src/usr/local/www/services_igmpproxy.php @@ -3,7 +3,7 @@ * services_igmpproxy.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/services_igmpproxy_edit.php b/src/usr/local/www/services_igmpproxy_edit.php index c862424..9c7d495 100644 --- a/src/usr/local/www/services_igmpproxy_edit.php +++ b/src/usr/local/www/services_igmpproxy_edit.php @@ -3,7 +3,7 @@ * services_igmpproxy_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -224,7 +224,7 @@ foreach ($item as $ww) { null, $address, ['placeholder' => 'Address'] - ))->sethelp($tracker == $rows ? 'Network/CIDR':null)->addMask('address_subnet' . $tracker, $address_subnet)->setWidth(4)->setPattern('[a-zA-Z0-9\_\.\:]+'); + ))->sethelp($tracker == $rows ? 'Network/CIDR':null)->addMask('address_subnet' . $tracker, $address_subnet)->setWidth(4)->setPattern('[a-zA-Z0-9_.:]+'); $group->add(new Form_Button( 'deleterow' . $counter, diff --git a/src/usr/local/www/services_ntpd.php b/src/usr/local/www/services_ntpd.php index c25d1b0..8f170bf 100644 --- a/src/usr/local/www/services_ntpd.php +++ b/src/usr/local/www/services_ntpd.php @@ -3,7 +3,7 @@ * services_ntpd.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2013 Dagorlad * All rights reserved. * @@ -68,6 +68,7 @@ if ($_POST) { unset($config['ntpd']['prefer']); unset($config['ntpd']['noselect']); + unset($config['ntpd']['ispool']); $timeservers = ''; for ($i = 0; $i < NUMTIMESERVERS; $i++) { @@ -80,6 +81,9 @@ if ($_POST) { if (!empty($_POST["servselect{$i}"])) { $config['ntpd']['noselect'] .= "{$tserver} "; } + if (!empty($_POST["servispool{$i}"])) { + $config['ntpd']['ispool'] .= "{$tserver} "; + } } } if (trim($timeservers) == "") { @@ -218,6 +222,7 @@ $section->addInput(new Form_Select( $timeservers = explode(' ', $config['system']['timeservers']); $maxrows = max(count($timeservers), 1); +$auto_pool_suffix = "pool.ntp.org"; for ($counter=0; $counter < $maxrows; $counter++) { $group = new Form_Group($counter == 0 ? 'Time Servers':''); $group->addClass('repeatable'); @@ -244,6 +249,14 @@ for ($counter=0; $counter < $maxrows; $counter++) { isset($config['ntpd']['noselect']) && isset($timeservers[$counter]) && substr_count($config['ntpd']['noselect'], $timeservers[$counter]) ))->sethelp('No Select'); + $group->add(new Form_Checkbox( + 'servispool' . $counter, + null, + null, + (substr_compare($timeservers[$counter], $auto_pool_suffix, strlen($timeservers[$counter]) - strlen($auto_pool_suffix), strlen($auto_pool_suffix)) === 0) + || (isset($config['ntpd']['ispool']) && isset($timeservers[$counter]) && substr_count($config['ntpd']['ispool'], $timeservers[$counter])) + ))->sethelp('Is a Pool'); + $group->add(new Form_Button( 'deleterow' . $counter, 'Delete', @@ -264,9 +277,10 @@ $section->addInput(new Form_Button( $section->addInput(new Form_StaticText( null, $btnaddrow -))->setHelp('For best results three to five servers should be configured here.' . '<br />' . - 'The prefer option indicates that NTP should favor the use of this server more than all others.' . '<br />' . - 'The no select option indicates that NTP should not use this server for time, but stats for this server will be collected and displayed.'); +))->setHelp('For best results three to five servers should be configured here, or at least one pool.' . '<br />' . + 'The <b>Prefer</b> option indicates that NTP should favor the use of this server more than all others.' . '<br />' . + 'The <b>No Select</b> option indicates that NTP should not use this server for time, but stats for this server will be collected and displayed.' . '<br />' . + 'The <b>Is a Pool</b> option indicates this entry is a pool of NTP servers and not a single address. This is assumed for *.pool.ntp.org.'); $section->addInput(new Form_Input( 'ntporphan', diff --git a/src/usr/local/www/services_ntpd_acls.php b/src/usr/local/www/services_ntpd_acls.php index 1c3fb7f..a69a2a1 100644 --- a/src/usr/local/www/services_ntpd_acls.php +++ b/src/usr/local/www/services_ntpd_acls.php @@ -3,7 +3,7 @@ * services_ntpd_acls.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2013 Dagorlad * All rights reserved. * diff --git a/src/usr/local/www/services_ntpd_gps.php b/src/usr/local/www/services_ntpd_gps.php index 4cda5b5..971d57e 100644 --- a/src/usr/local/www/services_ntpd_gps.php +++ b/src/usr/local/www/services_ntpd_gps.php @@ -3,7 +3,7 @@ * services_ntpd_gps.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2013 Dagorlad * All rights reserved. * diff --git a/src/usr/local/www/services_ntpd_pps.php b/src/usr/local/www/services_ntpd_pps.php index c70e676..da987f7 100644 --- a/src/usr/local/www/services_ntpd_pps.php +++ b/src/usr/local/www/services_ntpd_pps.php @@ -3,7 +3,7 @@ * services_ntpd_pps.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2013 Dagorlad * All rights reserved. * diff --git a/src/usr/local/www/services_pppoe.php b/src/usr/local/www/services_pppoe.php index 5aa0874..a8b0f03 100644 --- a/src/usr/local/www/services_pppoe.php +++ b/src/usr/local/www/services_pppoe.php @@ -3,7 +3,7 @@ * services_pppoe.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/services_pppoe_edit.php b/src/usr/local/www/services_pppoe_edit.php index afcf478..633af97 100644 --- a/src/usr/local/www/services_pppoe_edit.php +++ b/src/usr/local/www/services_pppoe_edit.php @@ -3,7 +3,7 @@ * services_pppoe_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/services_rfc2136.php b/src/usr/local/www/services_rfc2136.php index 7d009bf..c7ef152 100644 --- a/src/usr/local/www/services_rfc2136.php +++ b/src/usr/local/www/services_rfc2136.php @@ -3,7 +3,7 @@ * services_rfc2136.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/services_rfc2136_edit.php b/src/usr/local/www/services_rfc2136_edit.php index 9153949..41a7c5b 100644 --- a/src/usr/local/www/services_rfc2136_edit.php +++ b/src/usr/local/www/services_rfc2136_edit.php @@ -3,7 +3,7 @@ * services_rfc2136_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/services_router_advertisements.php b/src/usr/local/www/services_router_advertisements.php index e2df3e4..c805876 100644 --- a/src/usr/local/www/services_router_advertisements.php +++ b/src/usr/local/www/services_router_advertisements.php @@ -3,7 +3,7 @@ * services_router_advertisements.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Seth Mos <seth.mos@dds.nl> * All rights reserved. * @@ -38,11 +38,6 @@ if (!$g['services_dhcp_server_enable']) { exit; } -/* Fix failover DHCP problem - * http://article.gmane.org/gmane.comp.security.firewalls.pfsense.support/18749 - */ -ini_set("memory_limit", "64M"); - $if = $_GET['if']; if ($_POST['if']) { $if = $_POST['if']; @@ -436,7 +431,7 @@ for ($idx=1; $idx<=3; $idx++) { 'radns' . $idx, 'Server ' . $idx, $pconfig['radns' . $idx] - ))->setPattern('[a-zA-Z0-9\_\.\:]+')->setHelp(($idx < 3) ? '':'Leave blank to use the system default DNS servers - this interface\'s IP if DNS Forwarder or Resolver is enabled, otherwise the servers configured on the General page'); + ))->setPattern('[a-zA-Z0-9_.:]+')->setHelp(($idx < 3) ? '':'Leave blank to use the system default DNS servers - this interface\'s IP if DNS Forwarder or Resolver is enabled, otherwise the servers configured on the General page'); } $section->addInput(new Form_Input( diff --git a/src/usr/local/www/services_snmp.php b/src/usr/local/www/services_snmp.php index 69c770d..66caf4f 100644 --- a/src/usr/local/www/services_snmp.php +++ b/src/usr/local/www/services_snmp.php @@ -3,7 +3,7 @@ * services_snmp.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -71,7 +71,11 @@ $pconfig['hostres'] = isset($config['snmpd']['modules']['hostres']); $pconfig['bridge'] = isset($config['snmpd']['modules']['bridge']); $pconfig['ucd'] = isset($config['snmpd']['modules']['ucd']); $pconfig['regex'] = isset($config['snmpd']['modules']['regex']); -$pconfig['bindip'] = $config['snmpd']['bindip']; +if (empty($config['snmpd']['bindip'])) { + $pconfig['bindip'] = array(); +} else { + $pconfig['bindip'] = explode(",", $config['snmpd']['bindip']); +} if ($_POST) { @@ -151,7 +155,9 @@ if ($_POST) { $config['snmpd']['modules']['bridge'] = $_POST['bridge'] ? true : false; $config['snmpd']['modules']['ucd'] = $_POST['ucd'] ? true : false; $config['snmpd']['modules']['regex'] = $_POST['regex'] ? true : false; - $config['snmpd']['bindip'] = $_POST['bindip']; + if (is_array($_POST['bindip']) && !empty($_POST['bindip'])) { + $config['snmpd']['bindip'] = implode(",", $_POST['bindip']); + } write_config(); @@ -161,17 +167,28 @@ if ($_POST) { } } -function build_iplist() { - $listenips = get_possible_listen_ips(); - $iplist = array(); - $iplist[''] = 'All'; +function build_if_list($selectedifs) { + $interface_addresses = get_possible_listen_ips(true); + $iflist = array('options' => array(), 'selected' => array()); + + $iflist['options']['all'] = gettext("All"); + if (empty($selectedifs) || empty($selectedifs[0]) || in_array("all", $selectedifs)) { + array_push($iflist['selected'], "all"); + } + + foreach ($interface_addresses as $laddr => $ldescr) { + if (is_ipaddr(get_interface_ip($laddr))) { + $iflist['options'][$laddr] = htmlspecialchars($ldescr); + } - foreach ($listenips as $lip => $ldescr) { - $iplist[$lip] = $ldescr; + if ($selectedifs && in_array($laddr, $selectedifs)) { + array_push($iflist['selected'], $laddr); + } } - unset($listenips); - return($iplist); + unset($interface_addresses); + + return($iflist); } $pgtitle = array(gettext("Services"), gettext("SNMP")); @@ -325,11 +342,14 @@ $form->add($section); $section = new Form_Section('Interface Binding'); +$iflist = build_if_list($pconfig['bindip']); + $section->addInput(new Form_Select( 'bindip', - 'Bind Interface', - $pconfig['bindip'], - build_iplist() + 'Bind Interfaces', + $iflist['selected'], + $iflist['options'], + true )); $form->add($section); diff --git a/src/usr/local/www/services_unbound.php b/src/usr/local/www/services_unbound.php index 37f5c91..b79548c 100644 --- a/src/usr/local/www/services_unbound.php +++ b/src/usr/local/www/services_unbound.php @@ -3,7 +3,7 @@ * services_unbound.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2014 Warren Baker (warren@pfsense.org) * All rights reserved. * @@ -285,7 +285,7 @@ $section->addInput(new Form_Select( $activeiflist['selected'], $activeiflist['options'], true -))->addClass('general')->setHelp('Interface IPs used by the DNS Resolver for responding to queries from clients. If an interface has both IPv4 and IPv6 IPs, both are used. Queries to other interface IPs not selected below are discarded. ' . +))->addClass('general', 'resizable')->setHelp('Interface IPs used by the DNS Resolver for responding to queries from clients. If an interface has both IPv4 and IPv6 IPs, both are used. Queries to other interface IPs not selected below are discarded. ' . 'The default behavior is to respond to queries on every available IPv4 and IPv6 address.'); $outiflist = build_if_list($pconfig['outgoing_interface']); @@ -296,7 +296,7 @@ $section->addInput(new Form_Select( $outiflist['selected'], $outiflist['options'], true -))->addClass('general')->setHelp('Utilize different network interface(s) that the DNS Resolver will use to send queries to authoritative servers and receive their replies. By default all interfaces are used.'); +))->addClass('general', 'resizable')->setHelp('Utilize different network interface(s) that the DNS Resolver will use to send queries to authoritative servers and receive their replies. By default all interfaces are used.'); $section->addInput(new Form_Select( 'system_domain_local_zone_type', diff --git a/src/usr/local/www/services_unbound_acls.php b/src/usr/local/www/services_unbound_acls.php index fdaf0b2..bec6357 100644 --- a/src/usr/local/www/services_unbound_acls.php +++ b/src/usr/local/www/services_unbound_acls.php @@ -3,7 +3,7 @@ * services_unbound_acls.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2014 Warren Baker (warren@pfsense.org) * All rights reserved. * diff --git a/src/usr/local/www/services_unbound_advanced.php b/src/usr/local/www/services_unbound_advanced.php index bed84f3..14bb376 100644 --- a/src/usr/local/www/services_unbound_advanced.php +++ b/src/usr/local/www/services_unbound_advanced.php @@ -3,7 +3,7 @@ * services_unbound_advanced.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2014 Warren Baker (warren@pfsense.org) * All rights reserved. * diff --git a/src/usr/local/www/services_unbound_domainoverride_edit.php b/src/usr/local/www/services_unbound_domainoverride_edit.php index 55274d4..f204684 100644 --- a/src/usr/local/www/services_unbound_domainoverride_edit.php +++ b/src/usr/local/www/services_unbound_domainoverride_edit.php @@ -3,7 +3,7 @@ * services_unbound_domainoverride_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2014 Warren Baker (warren@decoy.co.za) * Copyright (c) 2003-2005 Bob Zoller <bob@kludgebox.com> * All rights reserved. @@ -133,7 +133,7 @@ $section->addInput(new Form_IpAddress( 'IP Address', $pconfig['ip'] ))->setHelp('IP address of the authoritative DNS server for this domain. e.g.: 192.168.100.100' . '<br />' . - 'To use a non-default port for communication, append an \'@\' with the port number.')->setPattern('[a-zA-Z0-9\@\.\:]+'); + 'To use a non-default port for communication, append an \'@\' with the port number.')->setPattern('[a-zA-Z0-9@.:]+'); $section->addInput(new Form_Input( 'descr', diff --git a/src/usr/local/www/services_unbound_host_edit.php b/src/usr/local/www/services_unbound_host_edit.php index 2b16380..93e01fe 100644 --- a/src/usr/local/www/services_unbound_host_edit.php +++ b/src/usr/local/www/services_unbound_host_edit.php @@ -3,7 +3,7 @@ * services_unbound_host_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2014 Warren Baker (warren@decoy.co.za) * Copyright (c) 2003-2005 Bob Zoller <bob@kludgebox.com> * All rights reserved. diff --git a/src/usr/local/www/services_wol.php b/src/usr/local/www/services_wol.php index 23832c0..7aefd0b 100644 --- a/src/usr/local/www/services_wol.php +++ b/src/usr/local/www/services_wol.php @@ -3,7 +3,7 @@ * services_wol.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/services_wol_edit.php b/src/usr/local/www/services_wol_edit.php index 0616a0d..bce57fc 100644 --- a/src/usr/local/www/services_wol_edit.php +++ b/src/usr/local/www/services_wol_edit.php @@ -3,7 +3,7 @@ * services_wol_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/shortcuts.inc b/src/usr/local/www/shortcuts.inc index 291eeb9..6f668bd 100644 --- a/src/usr/local/www/shortcuts.inc +++ b/src/usr/local/www/shortcuts.inc @@ -3,7 +3,7 @@ * shortcuts.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -247,10 +247,6 @@ $shortcuts['ntp']['log'] = "status_logs.php?logfile=ntpd"; $shortcuts['ntp']['status'] = "status_ntpd.php"; $shortcuts['ntp']['service'] = "ntpd"; -$shortcuts['pptps'] = array(); -$shortcuts['pptps']['main'] = "vpn_pptp.php"; -$shortcuts['pptps']['log'] = "status_logs_vpn.php"; - $shortcuts['pppoes'] = array(); $shortcuts['pppoes']['main'] = "services_pppoe.php"; $shortcuts['pppoes']['log'] = "status_logs_vpn.php?vpntype=poes"; diff --git a/src/usr/local/www/shortcuts/pkg_upnp.inc b/src/usr/local/www/shortcuts/pkg_upnp.inc index 909bc04..16f286d 100644 --- a/src/usr/local/www/shortcuts/pkg_upnp.inc +++ b/src/usr/local/www/shortcuts/pkg_upnp.inc @@ -3,7 +3,7 @@ * pkg_upnp.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/stats.php b/src/usr/local/www/stats.php index 117f930..bccb98c 100644 --- a/src/usr/local/www/stats.php +++ b/src/usr/local/www/stats.php @@ -3,7 +3,7 @@ * stats.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/status.php b/src/usr/local/www/status.php index a4a8c20..da2c762 100644 --- a/src/usr/local/www/status.php +++ b/src/usr/local/www/status.php @@ -3,7 +3,7 @@ * status.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://neon1.net/m0n0wall) @@ -165,7 +165,7 @@ defCmdT("System Uptime", "/usr/bin/uptime"); defCmdT("Interfaces", "/sbin/ifconfig -a"); defCmdT("Interface Statistics", "/usr/bin/netstat -nWi"); defCmdT("Top Process Info", "/usr/bin/top | /usr/bin/head -n5"); -defCmdT("Processes", "/bin/ps xauww"); +defCmdT("Processes", "/bin/ps xauwwd"); defCmdT("Mounted Filesystems", "/sbin/mount"); defCmdT("Free Disk Space", "/bin/df -hi"); defCmdT("Routing tables", "/usr/bin/netstat -nWr"); @@ -185,7 +185,7 @@ defCmdT("pf Info", "/sbin/pfctl -si"); defCmdT("pf Show All", "/sbin/pfctl -sa"); defCmdT("pf Queues", "/sbin/pfctl -s queue -v"); defCmdT("pf OSFP", "/sbin/pfctl -s osfp"); -defCmdT("pfsync Stats", "/usr/bin/netstat -s -ppfsync"); +defCmdT("Network Protocol Statistics", "/usr/bin/netstat -s"); defCmdT("pftop Default", "/usr/local/sbin/pftop -a -b"); defCmdT("pftop Long", "/usr/local/sbin/pftop -w 150 -a -b -v long"); defCmdT("pftop Queue", "/usr/local/sbin/pftop -w 150 -a -b -v queue"); diff --git a/src/usr/local/www/status_captiveportal.php b/src/usr/local/www/status_captiveportal.php index 02de882..bf9b81b 100644 --- a/src/usr/local/www/status_captiveportal.php +++ b/src/usr/local/www/status_captiveportal.php @@ -3,7 +3,7 @@ * status_captiveportal.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -61,7 +61,7 @@ if (isset($cpzone) && !empty($cpzone) && isset($a_cp[$cpzone]['zoneid'])) { } if ($_GET['act'] == "del" && !empty($cpzone) && isset($cpzoneid) && isset($_GET['id'])) { - captiveportal_disconnect_client($_GET['id']); + captiveportal_disconnect_client($_GET['id'], 6); header("Location: status_captiveportal.php?zone={$cpzone}"); exit; } diff --git a/src/usr/local/www/status_captiveportal_expire.php b/src/usr/local/www/status_captiveportal_expire.php index 1b6ccdf..d1e1292 100644 --- a/src/usr/local/www/status_captiveportal_expire.php +++ b/src/usr/local/www/status_captiveportal_expire.php @@ -3,7 +3,7 @@ * status_captiveportal_expire.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2007 Marcel Wiget <mwiget@mac.com> * All rights reserved. * diff --git a/src/usr/local/www/status_captiveportal_test.php b/src/usr/local/www/status_captiveportal_test.php index a353844..13363af 100644 --- a/src/usr/local/www/status_captiveportal_test.php +++ b/src/usr/local/www/status_captiveportal_test.php @@ -3,7 +3,7 @@ * status_captiveportal_test.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2007 Marcel Wiget <mwiget@mac.com> * All rights reserved. * diff --git a/src/usr/local/www/status_captiveportal_voucher_rolls.php b/src/usr/local/www/status_captiveportal_voucher_rolls.php index a27a05f..4f3e7a8 100644 --- a/src/usr/local/www/status_captiveportal_voucher_rolls.php +++ b/src/usr/local/www/status_captiveportal_voucher_rolls.php @@ -3,7 +3,7 @@ * status_captiveportal_voucher_rolls.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2007 Marcel Wiget <mwiget@mac.com> * All rights reserved. * diff --git a/src/usr/local/www/status_captiveportal_vouchers.php b/src/usr/local/www/status_captiveportal_vouchers.php index e77c2d5..63b39d1 100644 --- a/src/usr/local/www/status_captiveportal_vouchers.php +++ b/src/usr/local/www/status_captiveportal_vouchers.php @@ -3,7 +3,7 @@ * status_captiveportal_vouchers.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2007 Marcel Wiget <mwiget@mac.com> * All rights reserved. * diff --git a/src/usr/local/www/status_carp.php b/src/usr/local/www/status_carp.php index 8b0311f..eb5070d 100644 --- a/src/usr/local/www/status_carp.php +++ b/src/usr/local/www/status_carp.php @@ -3,7 +3,7 @@ * status_carp.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/status_dhcp_leases.php b/src/usr/local/www/status_dhcp_leases.php index dff4804..3f148a9 100644 --- a/src/usr/local/www/status_dhcp_leases.php +++ b/src/usr/local/www/status_dhcp_leases.php @@ -3,7 +3,7 @@ * status_dhcp_leases.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/status_dhcpv6_leases.php b/src/usr/local/www/status_dhcpv6_leases.php index 6fa390d..1357b9f 100644 --- a/src/usr/local/www/status_dhcpv6_leases.php +++ b/src/usr/local/www/status_dhcpv6_leases.php @@ -3,7 +3,7 @@ * status_dhcpv6_leases.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2011 Seth Mos * All rights reserved. * @@ -159,8 +159,15 @@ $cleanpattern = "'/^ia-.. /, /^}/ !d; s,;$,,; s, *, ,g'"; /* Join each block in single line */ $splitpattern = "'{printf $0}; $0 ~ /^\}/ {printf \"\\n\"}'"; -/* stuff the leases file in a proper format into a array by line */ -exec("{$sed} {$cleanpattern} {$leasesfile} | {$awk} {$splitpattern}", $leases_content); +if (is_file($leasesfile)) { + /* stuff the leases file in a proper format into an array by line */ + exec("{$sed} {$cleanpattern} {$leasesfile} | {$awk} {$splitpattern}", $leases_content); + $leasesfile_found = true; +} else { + $leases_content = array(); + $leasesfile_found = false; +} + $leases_count = count($leases_content); exec("/usr/sbin/ndp -an", $rawdata); $ndpdata = array(); @@ -415,7 +422,7 @@ if (count($pools) > 0) { /* only print pool status when we have one */ } -if (empty($leases)) { +if (!$leasesfile_found) { print_info_box(gettext("No leases file found. Is the DHCPv6 server active?"), 'warning', false); } diff --git a/src/usr/local/www/status_filter_reload.php b/src/usr/local/www/status_filter_reload.php index dd7c3ec..edc3ec4 100644 --- a/src/usr/local/www/status_filter_reload.php +++ b/src/usr/local/www/status_filter_reload.php @@ -3,7 +3,7 @@ * status_filter_reload.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -55,7 +55,6 @@ if ($_POST['syncfilter']) { include("head.inc"); ?> - <div class="panel panel-default"> <div class="panel-heading"><h2 class="panel-title"><?=gettext("Filter Reload");?></h2></div> <div class="panel-body"> @@ -69,19 +68,19 @@ if ($config['hasync'] && $config['hasync']["synchronizetoip"] != ""): ?> endif; ?> </form> - <br /> - - <div id="status" class="panel panel-default"> - <?=$status; ?> - </div> - - <div id="doneurl"> + <div id="doneurl"></div> + <br /> + <div class="panel panel-default"> + <div class="panel-heading"><h2 class="panel-title"><?=gettext("Reload status")?></h2></div> + <div class="panel-body" id="status"> + </div> </div> - <br/> +<?php if (!$_GET['user']) { ?> <div id="reloadinfo"><?=gettext("This page will automatically refresh every 3 seconds until the filter is done reloading."); ?></div> +<?php } ?> </div> </div> @@ -98,23 +97,21 @@ function update_data(obj) { var result_text = obj.content; var result_text_split = result_text.split("|"); result_text = result_text_split[1]; - result_text = result_text.replace("\n", ""); - result_text = result_text.replace("\r", ""); + if (result_text) { - $('#status').html(result_text + '...'); + $('#status').html('<pre>' + result_text + '</pre>'); } else { - $('#status').html('<?=gettext("Obtaining filter status...");?>'); + $('#status').html('<pre>' + '<?=gettext("Obtaining filter status...");?>' + '</pre>'); } - if (result_text == "Initializing") { - $('#status').html('<?=gettext("Initializing...");?>'); - } else if (result_text == "Done") { - $('#status').effect('highlight'); - $('#status').html('<?=gettext("Done. The filter rules have been reloaded.");?>'); + + if (result_text.endsWith("Done\n")) { $('#reloadinfo').css("visibility", "hidden"); $('#doneurl').css("visibility", "visible"); $('#doneurl').html("<p><a href='status_queues.php'><?=gettext("Queue Status");?><\/a><\/p>"); + $('#reloadinfo').html(""); + } else { + window.setTimeout('update_status_thread()', 1500); } - window.setTimeout('update_status_thread()', 2500); } //]]> </script> @@ -163,12 +160,15 @@ if (typeof getURL == 'undefined') { contentType : http_request.getResponseHeader("Content-Type") } ); } } + http_request.open('GET', url, true); http_request.send(null); } } -window.setTimeout('update_status_thread()', 2500); +if ("<?=$_GET['user']?>" != "true") { + window.setTimeout('update_status_thread()', 1500); + } //]]> </script> diff --git a/src/usr/local/www/status_gateway_groups.php b/src/usr/local/www/status_gateway_groups.php index 17c7522..d1989b2 100644 --- a/src/usr/local/www/status_gateway_groups.php +++ b/src/usr/local/www/status_gateway_groups.php @@ -3,7 +3,7 @@ * status_gateway_groups.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Seth Mos <seth.mos@dds.nl> * All rights reserved. * diff --git a/src/usr/local/www/status_gateways.php b/src/usr/local/www/status_gateways.php index 4663ad0..ab9fe07 100644 --- a/src/usr/local/www/status_gateways.php +++ b/src/usr/local/www/status_gateways.php @@ -3,7 +3,7 @@ * status_gateways.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Seth Mos <seth.mos@dds.nl> * All rights reserved. * diff --git a/src/usr/local/www/status_graph.php b/src/usr/local/www/status_graph.php index f4a7a8c..4a36037 100644 --- a/src/usr/local/www/status_graph.php +++ b/src/usr/local/www/status_graph.php @@ -3,7 +3,7 @@ * status_graph.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/status_graph_cpu.php b/src/usr/local/www/status_graph_cpu.php index 5e66f90..9c4637d 100644 --- a/src/usr/local/www/status_graph_cpu.php +++ b/src/usr/local/www/status_graph_cpu.php @@ -3,7 +3,7 @@ * status_graph_cpu.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/status_interfaces.php b/src/usr/local/www/status_interfaces.php index 0a7d6b7..42be7df 100644 --- a/src/usr/local/www/status_interfaces.php +++ b/src/usr/local/www/status_interfaces.php @@ -3,7 +3,7 @@ * status_interfaces.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -124,7 +124,7 @@ foreach ($ifdescrs as $ifdescr => $ifname): showDef($ifinfo['subnetv6'], gettext('Subnet mask IPv6'), $ifinfo['subnetv6']); showDef($ifinfo['gatewayv6'], gettext("Gateway IPv6"), $config['interfaces'][$ifdescr]['gatewayv6'] . " " . $ifinfo['gatewayv6']); - if ($ifdescr == "wan" && file_exists("{$g['varetc_path']}/resolv.conf")) { + if ($ifdescr == "wan" && file_exists("{$g['etc_path']}/resolv.conf")) { $dns_servers = get_dns_servers(); $dnscnt = 0; foreach ($dns_servers as $dns) { diff --git a/src/usr/local/www/status_ipsec.php b/src/usr/local/www/status_ipsec.php index bcc0515..da2c265 100644 --- a/src/usr/local/www/status_ipsec.php +++ b/src/usr/local/www/status_ipsec.php @@ -3,7 +3,7 @@ * status_ipsec.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/status_ipsec_leases.php b/src/usr/local/www/status_ipsec_leases.php index e025ebf..9f9e70d 100644 --- a/src/usr/local/www/status_ipsec_leases.php +++ b/src/usr/local/www/status_ipsec_leases.php @@ -3,7 +3,7 @@ * status_ipsec_leases.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/status_ipsec_sad.php b/src/usr/local/www/status_ipsec_sad.php index 3c7c852..0df5216 100644 --- a/src/usr/local/www/status_ipsec_sad.php +++ b/src/usr/local/www/status_ipsec_sad.php @@ -3,7 +3,7 @@ * status_ipsec_sad.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/status_ipsec_spd.php b/src/usr/local/www/status_ipsec_spd.php index 7061c2f..1488b27 100644 --- a/src/usr/local/www/status_ipsec_spd.php +++ b/src/usr/local/www/status_ipsec_spd.php @@ -3,7 +3,7 @@ * status_ipsec_spd.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/status_lb_pool.php b/src/usr/local/www/status_lb_pool.php index cd5b2d4..911e891 100644 --- a/src/usr/local/www/status_lb_pool.php +++ b/src/usr/local/www/status_lb_pool.php @@ -3,7 +3,7 @@ * status_lb_pool.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Seth Mos <seth.mos@dds.nl> * All rights reserved. * diff --git a/src/usr/local/www/status_lb_vs.php b/src/usr/local/www/status_lb_vs.php index aab1cca..c28feca 100644 --- a/src/usr/local/www/status_lb_vs.php +++ b/src/usr/local/www/status_lb_vs.php @@ -3,7 +3,7 @@ * status_lb_vs.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Seth Mos <seth.mos@dds.nl> * All rights reserved. * diff --git a/src/usr/local/www/status_logs.php b/src/usr/local/www/status_logs.php index 3350fec..7435974 100644 --- a/src/usr/local/www/status_logs.php +++ b/src/usr/local/www/status_logs.php @@ -3,7 +3,7 @@ * status_logs.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/status_logs_common.inc b/src/usr/local/www/status_logs_common.inc index 736c98e..f35b9a2 100644 --- a/src/usr/local/www/status_logs_common.inc +++ b/src/usr/local/www/status_logs_common.inc @@ -3,7 +3,7 @@ * status_logs_common.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/status_logs_filter.php b/src/usr/local/www/status_logs_filter.php index 4c0a3d2..4c37c91 100644 --- a/src/usr/local/www/status_logs_filter.php +++ b/src/usr/local/www/status_logs_filter.php @@ -3,7 +3,7 @@ * status_logs_filter.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/status_logs_filter_dynamic.php b/src/usr/local/www/status_logs_filter_dynamic.php index 21d7074..4ea4d4a 100644 --- a/src/usr/local/www/status_logs_filter_dynamic.php +++ b/src/usr/local/www/status_logs_filter_dynamic.php @@ -3,7 +3,7 @@ * status_logs_filter_dynamic.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/status_logs_filter_summary.php b/src/usr/local/www/status_logs_filter_summary.php index 1220c0b..124d190 100644 --- a/src/usr/local/www/status_logs_filter_summary.php +++ b/src/usr/local/www/status_logs_filter_summary.php @@ -3,7 +3,7 @@ * status_logs_filter_summary.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/status_logs_settings.php b/src/usr/local/www/status_logs_settings.php index b073d2f..33881ed 100644 --- a/src/usr/local/www/status_logs_settings.php +++ b/src/usr/local/www/status_logs_settings.php @@ -3,7 +3,7 @@ * status_logs_settings.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -51,6 +51,10 @@ $pconfig['relayd'] = isset($config['syslog']['relayd']); $pconfig['hostapd'] = isset($config['syslog']['hostapd']); $pconfig['logall'] = isset($config['syslog']['logall']); $pconfig['system'] = isset($config['syslog']['system']); +$pconfig['resolver'] = isset($config['syslog']['resolver']); +$pconfig['ppp'] = isset($config['syslog']['ppp']); +$pconfig['routing'] = isset($config['syslog']['routing']); +$pconfig['ntpd'] = isset($config['syslog']['ntpd']); $pconfig['enable'] = isset($config['syslog']['enable']); $pconfig['logdefaultblock'] = !isset($config['syslog']['nologdefaultblock']); $pconfig['logdefaultpass'] = isset($config['syslog']['nologdefaultpass']); @@ -125,6 +129,10 @@ if ($_POST['resetlogs'] == gettext("Reset Log Files")) { $config['syslog']['hostapd'] = $_POST['hostapd'] ? true : false; $config['syslog']['logall'] = $_POST['logall'] ? true : false; $config['syslog']['system'] = $_POST['system'] ? true : false; + $config['syslog']['resolver'] = $_POST['resolver'] ? true : false; + $config['syslog']['ppp'] = $_POST['ppp'] ? true : false; + $config['syslog']['routing'] = $_POST['routing'] ? true : false; + $config['syslog']['ntpd'] = $_POST['ntpd'] ? true : false; $config['syslog']['disablelocallogging'] = $_POST['disablelocallogging'] ? true : false; $config['syslog']['enable'] = $_POST['enable'] ? true : false; $oldnologdefaultblock = isset($config['syslog']['nologdefaultblock']); @@ -305,7 +313,7 @@ $section->addInput(new Form_Select( $section->addInput(new Form_Checkbox( 'disablelocallogging', 'Local Logging', - $g['platform'] == $g['product_name'] ? "Disable writing log files to the local disk" : "Disable writing log files to the local RAM disk", + "Disable writing log files to the local disk", $pconfig['disablelocallogging'] )); @@ -397,44 +405,72 @@ $group->add(new Form_MultiCheckbox( )); $group->add(new Form_MultiCheckbox( + 'resolver', + null, + 'DNS Events (Resolver/unbound, Forwarder/dnsmasq, filterdns)', + $pconfig['resolver'] +)); + +$group->add(new Form_MultiCheckbox( 'dhcp', null, - 'DHCP service events', + 'DHCP Events (DHCP Daemon, DHCP Relay, DHCP Client)', $pconfig['dhcp'] )); $group->add(new Form_MultiCheckbox( + 'ppp', + null, + 'PPP Events (PPPoE WAN Client, L2TP WAN Client, PPTP WAN Client)', + $pconfig['ppp'] +)); + +$group->add(new Form_MultiCheckbox( 'portalauth', null, - 'Portal Auth events', + 'Captive Portal Events', $pconfig['portalauth'] )); $group->add(new Form_MultiCheckbox( 'vpn', null, - 'VPN (PPTP, IPsec, OpenVPN) events', + 'VPN Events (IPsec, OpenVPN, L2TP, PPPoE Server)', $pconfig['vpn'] )); $group->add(new Form_MultiCheckbox( 'dpinger', null, - 'Gateway Monitor events', + 'Gateway Monitor Events', $pconfig['dpinger'] )); $group->add(new Form_MultiCheckbox( + 'routing', + null, + 'Routing Daemon Events (RADVD, UPnP, RIP, OSPF, BGP)', + $pconfig['routing'] +)); + +$group->add(new Form_MultiCheckbox( 'relayd', null, - 'Server Load Balancer events', + 'Server Load Balancer Events (relayd)', $pconfig['relayd'] )); $group->add(new Form_MultiCheckbox( + 'ntpd', + null, + 'Network Time Protocol Events (NTP Daemon, NTP Client)', + $pconfig['ntpd'] +)); + +$group->add(new Form_MultiCheckbox( 'hostapd', null, - 'Wireless events', + 'Wireless Events (hostapd)', $pconfig['hostapd'] )); @@ -478,6 +514,10 @@ events.push(function() { disableInput('dpinger', hide); disableInput('relayd', hide); disableInput('hostapd', hide); + disableInput('resolver', hide); + disableInput('ppp', hide); + disableInput('routing', hide); + disableInput('ntpd', hide); } // ---------- On initial page load ------------------------------------------------------------ diff --git a/src/usr/local/www/status_logs_vpn.php b/src/usr/local/www/status_logs_vpn.php index bd191db..ea8c178 100644 --- a/src/usr/local/www/status_logs_vpn.php +++ b/src/usr/local/www/status_logs_vpn.php @@ -3,7 +3,7 @@ * status_logs_vpn.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/status_ntpd.php b/src/usr/local/www/status_ntpd.php index 6924abc..56725ab 100644 --- a/src/usr/local/www/status_ntpd.php +++ b/src/usr/local/www/status_ntpd.php @@ -3,7 +3,7 @@ * status_ntpd.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2013 Dagorlad * All rights reserved. * @@ -45,10 +45,28 @@ if (!isset($config['ntpd']['noquery'])) { $ntpq_servers = array(); foreach ($ntpq_output as $line) { $server = array(); + $status_char = substr($line, 0, 1); + $line = substr($line, 1); + $peerinfo = preg_split("/[\s\t]+/", $line); + + $server['server'] = $peerinfo[0]; + $server['refid'] = $peerinfo[1]; + $server['stratum'] = $peerinfo[2]; + $server['type'] = $peerinfo[3]; + $server['when'] = $peerinfo[4]; + $server['poll'] = $peerinfo[5]; + $server['reach'] = $peerinfo[6]; + $server['delay'] = $peerinfo[7]; + $server['offset'] = $peerinfo[8]; + $server['jitter'] = $peerinfo[9]; - switch (substr($line, 0, 1)) { + switch ($status_char) { case " ": - $server['status'] = gettext("Unreach/Pending"); + if ($server['refid'] == ".POOL.") { + $server['status'] = gettext("Pool Placeholder"); + } else { + $server['status'] = gettext("Unreach/Pending"); + } break; case "*": $server['status'] = gettext("Active Peer"); @@ -73,20 +91,6 @@ if (!isset($config['ntpd']['noquery'])) { break; } - $line = substr($line, 1); - $peerinfo = preg_split("/[\s\t]+/", $line); - - $server['server'] = $peerinfo[0]; - $server['refid'] = $peerinfo[1]; - $server['stratum'] = $peerinfo[2]; - $server['type'] = $peerinfo[3]; - $server['when'] = $peerinfo[4]; - $server['poll'] = $peerinfo[5]; - $server['reach'] = $peerinfo[6]; - $server['delay'] = $peerinfo[7]; - $server['offset'] = $peerinfo[8]; - $server['jitter'] = $peerinfo[9]; - $ntpq_servers[] = $server; } diff --git a/src/usr/local/www/status_openvpn.php b/src/usr/local/www/status_openvpn.php index 0ff285f..c643b20 100644 --- a/src/usr/local/www/status_openvpn.php +++ b/src/usr/local/www/status_openvpn.php @@ -3,7 +3,7 @@ * status_openvpn.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc. * All rights reserved. * @@ -139,10 +139,12 @@ include("head.inc"); ?> <td colspan="2"> <table> <tr> - <td> <?php $ssvc = find_service_by_openvpn_vpnid($server['vpnid']); ?> - <?= get_service_status_icon($ssvc, true, true); ?> - <?= get_service_control_links($ssvc); ?> + <td> + <?= gettext("Status") . ": " . get_service_status_icon($ssvc, false, true, false, "service_state"); ?> + </td> + <td> + <?= gettext("Actions") . ": " . get_service_control_links($ssvc); ?> </td> </tr> </table> diff --git a/src/usr/local/www/status_pkglogs.php b/src/usr/local/www/status_pkglogs.php index 1bf209a..3070557 100644 --- a/src/usr/local/www/status_pkglogs.php +++ b/src/usr/local/www/status_pkglogs.php @@ -3,7 +3,7 @@ * status_pkglogs.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005 Colin Smith * All rights reserved. * @@ -49,9 +49,9 @@ $i = 0; $pkgwithlogging = false; $apkg = $_GET['pkg']; if (!$apkg) { // If we aren't looking for a specific package, locate the first package that handles logging. - if ($config['installedpackages']['package'] <> "") { + if (isset($config['installedpackages']['package'])) { foreach ($config['installedpackages']['package'] as $package) { - if (is_array($package['logging'])) { + if (isset($package['logging']['logfilename']) && $package['logging']['logfilename'] != '') { $pkgwithlogging = true; $apkg = $package['name']; $apkgid = $i; diff --git a/src/usr/local/www/status_queues.php b/src/usr/local/www/status_queues.php index dfee786..53bac63 100644 --- a/src/usr/local/www/status_queues.php +++ b/src/usr/local/www/status_queues.php @@ -3,7 +3,7 @@ * status_queues.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/status_services.php b/src/usr/local/www/status_services.php index b241b141..f589d88 100644 --- a/src/usr/local/www/status_services.php +++ b/src/usr/local/www/status_services.php @@ -3,7 +3,7 @@ * status_services.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -107,21 +107,11 @@ if (count($services) > 0) { <td> <?=$service['name']?> </td> - <td> <?=$service['description']?> </td> -<?php - // if service is running then listr else listbg - $bgclass = null; - $running = false; - - if (get_service_status($service)) { - $running = true; - } -?> <td> - <?=$running ? '<span class="text-success">' . gettext("Running") . '</span>':'<span class="text-danger">' . gettext("Stopped") . '</span>'?> + <?= get_service_status_icon($service, false, true, false, "state"); ?> </td> <td> <?=get_service_control_links($service)?> diff --git a/src/usr/local/www/status_upnp.php b/src/usr/local/www/status_upnp.php index c5c3faa..7bc223a 100644 --- a/src/usr/local/www/status_upnp.php +++ b/src/usr/local/www/status_upnp.php @@ -3,7 +3,7 @@ * status_upnp.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Seth Mos <seth.mos@dds.nl> * All rights reserved. * diff --git a/src/usr/local/www/status_wireless.php b/src/usr/local/www/status_wireless.php index 1d9da5b..8516ff0 100644 --- a/src/usr/local/www/status_wireless.php +++ b/src/usr/local/www/status_wireless.php @@ -3,7 +3,7 @@ * status_wireless.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/system.php b/src/usr/local/www/system.php index 6b0e9a9..b588256 100644 --- a/src/usr/local/www/system.php +++ b/src/usr/local/www/system.php @@ -3,7 +3,7 @@ * system.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) @@ -67,6 +67,7 @@ $pconfig['statusmonitoringsettingspanel'] = isset($config['system']['webgui']['s $pconfig['webguihostnamemenu'] = $config['system']['webgui']['webguihostnamemenu']; $pconfig['dnslocalhost'] = isset($config['system']['dnslocalhost']); $pconfig['dashboardperiod'] = isset($config['widgets']['period']) ? $config['widgets']['period']:"10"; +$pconfig['loginshowhost'] = isset($config['system']['webgui']['loginshowhost']); if (!$pconfig['timezone']) { if (isset($g['default_timezone']) && !empty($g['default_timezone'])) { @@ -124,6 +125,8 @@ if ($_POST) { unset($config['system']['webgui']['webguicss']); } + $config['system']['webgui']['loginshowhost'] = $_POST['loginshowhost'] ? true:false; + if ($_POST['webguifixedmenu']) { $config['system']['webgui']['webguifixedmenu'] = $_POST['webguifixedmenu']; } else { @@ -487,6 +490,13 @@ gen_associatedpanels_fields( $pconfig['statusmonitoringsettingspanel']); gen_webguileftcolumnhyper_field($section, $pconfig['webguileftcolumnhyper']); +$section->addInput(new Form_Checkbox( + 'loginshowhost', + 'Login hostname', + 'Show hostname on login banner', + $pconfig['loginshowhost'] +)); + $section->addInput(new Form_Input( 'dashboardperiod', 'Dashboard update period', diff --git a/src/usr/local/www/system_advanced_admin.php b/src/usr/local/www/system_advanced_admin.php index 205d3ea..b7207c4 100644 --- a/src/usr/local/www/system_advanced_admin.php +++ b/src/usr/local/www/system_advanced_admin.php @@ -3,7 +3,7 @@ * system_advanced_admin.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc * All rights reserved. * @@ -270,7 +270,6 @@ if ($_POST) { $savemsg .= sprintf("<br />" . gettext("One moment...redirecting to %s in 20 seconds."), $url); } - conf_mount_rw(); setup_serial_port(); // Restart DNS in case dns rebinding toggled if (isset($config['dnsmasq']['enable'])) { @@ -278,7 +277,6 @@ if ($_POST) { } elseif (isset($config['unbound']['enable'])) { services_unbound_configure(); } - conf_mount_ro(); } } diff --git a/src/usr/local/www/system_advanced_firewall.php b/src/usr/local/www/system_advanced_firewall.php index 858f5b8..b70ddcb 100644 --- a/src/usr/local/www/system_advanced_firewall.php +++ b/src/usr/local/www/system_advanced_firewall.php @@ -3,7 +3,7 @@ * system_advanced_firewall.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc * All rights reserved. * diff --git a/src/usr/local/www/system_advanced_misc.php b/src/usr/local/www/system_advanced_misc.php index cb58a02..817b745 100644 --- a/src/usr/local/www/system_advanced_misc.php +++ b/src/usr/local/www/system_advanced_misc.php @@ -3,7 +3,7 @@ * system_advanced_misc.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc * All rights reserved. * @@ -73,7 +73,6 @@ if (!empty($config['system']['powerd_normal_mode'])) { } $crypto_modules = array( - 'glxsb' => gettext("AMD Geode LX Security Block"), 'aesni' => gettext("AES-NI CPU-based Acceleration")); $thermal_hardware_modules = array( @@ -256,7 +255,7 @@ if ($_POST) { // Add/Remove RAM disk periodic backup cron jobs according to settings and installation type. // Remove the cron jobs on full install if not using RAM disk. // Add the cron jobs on all others if the periodic backup option is set. Otherwise the cron job is removed. - if (($g['platform'] == $g['product_name']) && !isset($config['system']['use_mfs_tmpvar'])) { + if (!isset($config['system']['use_mfs_tmpvar'])) { install_cron_job("/etc/rc.backup_rrd.sh", false); install_cron_job("/etc/rc.backup_dhcpleases.sh", false); } else { @@ -498,7 +497,7 @@ $section->addInput(new Form_Checkbox( 'use_mfs_tmpvar', 'Use RAM Disks', 'Use memory file system for /tmp and /var', - ($pconfig['use_mfs_tmpvar'] || $g['platform'] != $g['product_name']) + $pconfig['use_mfs_tmpvar'] ))->setHelp('Set this to use /tmp and /var as RAM disks (memory file '. 'system disks) on a full install rather than use the hard disk. Setting this will '. 'cause the data in /tmp and /var to be lost, including log data. RRD '. @@ -544,22 +543,20 @@ $section->addInput(new Form_Input( $form->add($section); -if ($g['platform'] == "pfSense") { - $section = new Form_Section('Hardware Settings'); +$section = new Form_Section('Hardware Settings'); - $opts = array(0.5, 1, 2, 3, 4, 5, 7.5, 10, 15, 20, 30, 60); - $vals = array( 6, 12, 24, 36, 48, 60, 90, 120, 180, 240, 241, 242); +$opts = array(0.5, 1, 2, 3, 4, 5, 7.5, 10, 15, 20, 30, 60); +$vals = array( 6, 12, 24, 36, 48, 60, 90, 120, 180, 240, 241, 242); - $section->addInput(new Form_Select( - 'harddiskstandby', - 'Hard disk standby time', - $pconfig['harddiskstandby'], - ['' => gettext("Always on")] + array_combine($opts, $vals) - ))->setHelp("Puts the hard disk into standby mode when the selected number of minutes has elapsed since the last access." . "<br />" . - "<strong> Do not set this for CF cards.</strong>"); +$section->addInput(new Form_Select( + 'harddiskstandby', + 'Hard disk standby time', + $pconfig['harddiskstandby'], + ['' => gettext("Always on")] + array_combine($opts, $vals) +))->setHelp("Puts the hard disk into standby mode when the selected number of minutes has elapsed since the last access." . "<br />" . + "<strong> Do not set this for CF cards.</strong>"); - $form->add($section); -} +$form->add($section); $section = new Form_Section('Installation Feedback'); diff --git a/src/usr/local/www/system_advanced_network.php b/src/usr/local/www/system_advanced_network.php index 38a7004..bf0b715 100644 --- a/src/usr/local/www/system_advanced_network.php +++ b/src/usr/local/www/system_advanced_network.php @@ -3,7 +3,7 @@ * system_advanced_network.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc * All rights reserved. * diff --git a/src/usr/local/www/system_advanced_notifications.php b/src/usr/local/www/system_advanced_notifications.php index 17092f2..4acbabb 100644 --- a/src/usr/local/www/system_advanced_notifications.php +++ b/src/usr/local/www/system_advanced_notifications.php @@ -3,7 +3,7 @@ * system_advanced_notifications.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/system_advanced_sysctl.php b/src/usr/local/www/system_advanced_sysctl.php index ab9af0e..3ab51fd 100644 --- a/src/usr/local/www/system_advanced_sysctl.php +++ b/src/usr/local/www/system_advanced_sysctl.php @@ -3,7 +3,7 @@ * system_advanced_sysctl.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc * All rights reserved. * diff --git a/src/usr/local/www/system_authservers.php b/src/usr/local/www/system_authservers.php index 171b3cc..6be6589 100644 --- a/src/usr/local/www/system_authservers.php +++ b/src/usr/local/www/system_authservers.php @@ -3,7 +3,7 @@ * system_authservers.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc * All rights reserved. * @@ -254,14 +254,14 @@ if ($_POST) { gettext("Hostname or IP"), gettext("Services")); - if ($pconfig['radisu_srvcs'] == "both" || - $pconfig['radisu_srvcs'] == "auth") { + if ($pconfig['radius_srvcs'] == "both" || + $pconfig['radius_srvcs'] == "auth") { $reqdfields[] = "radius_auth_port"; $reqdfieldsn[] = gettext("Authentication port"); } - if ($pconfig['radisu_srvcs'] == "both" || - $pconfig['radisu_srvcs'] == "acct") { + if ($pconfig['radius_srvcs'] == "both" || + $pconfig['radius_srvcs'] == "acct") { $reqdfields[] = "radius_acct_port"; $reqdfieldsn[] = gettext("Accounting port"); } @@ -643,7 +643,7 @@ $group->add(new Form_Input( $group->add(new Form_Input( 'ldap_bindpw', 'Password', - 'text', + 'password', $pconfig['ldap_bindpw'] )); $section->add($group); @@ -733,7 +733,7 @@ $section->addInput(new Form_Input( $section->addInput(new Form_Input( 'radius_secret', 'Shared Secret', - 'text', + 'password', $pconfig['radius_secret'] )); diff --git a/src/usr/local/www/system_camanager.php b/src/usr/local/www/system_camanager.php index d9112b1..0d5c753 100644 --- a/src/usr/local/www/system_camanager.php +++ b/src/usr/local/www/system_camanager.php @@ -3,7 +3,7 @@ * system_camanager.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc * All rights reserved. * @@ -75,13 +75,15 @@ if ($act == "del") { exit; } + /* Only remove CA reference when deleting. It can be reconnected if a new matching CA is imported */ $index = count($a_cert) - 1; for (;$index >= 0; $index--) { if ($a_cert[$index]['caref'] == $a_ca[$id]['refid']) { - unset($a_cert[$index]); + unset($a_cert[$index]['caref']); } } + /* Remove any CRLs for this CA, there is no way to recover the connection once the CA has been removed. */ $index = count($a_crl) - 1; for (;$index >= 0; $index--) { if ($a_crl[$index]['caref'] == $a_ca[$id]['refid']) { @@ -173,6 +175,9 @@ if ($_POST) { if ($_POST['key'] && strstr($_POST['key'], "ENCRYPTED")) { $input_errors[] = gettext("Encrypted private keys are not yet supported."); } + if (cert_get_modulus($_POST['cert'], false) != prv_get_modulus($_POST['key'], false)) { + $input_errors[] = gettext("The submitted private key does not match the submitted certificate data."); + } } if ($pconfig['method'] == "internal") { $reqdfields = explode(" ", @@ -359,6 +364,7 @@ if (!($act == "new" || $act == "edit" || $act == gettext("Save") || $input_error <th><?=gettext("Issuer")?></th> <th><?=gettext("Certificates")?></th> <th><?=gettext("Distinguished Name")?></th> + <th><?=gettext("In Use")?></th> <th><?=gettext("Actions")?></th> </tr> </thead> @@ -407,13 +413,29 @@ foreach ($a_ca as $i => $ca): <?=gettext("Valid From")?>: <b><?=$startdate ?></b><br /><?=gettext("Valid Until")?>: <b><?=$enddate ?></b> </small> </td> - <td> + <td class="text-nowrap"> + <?php if (is_openvpn_server_ca($ca['refid'])): ?> + <?=gettext("OpenVPN Server")?><br/> + <?php endif?> + <?php if (is_openvpn_client_ca($ca['refid'])): ?> + <?=gettext("OpenVPN Client")?><br/> + <?php endif?> + <?php if (is_ipsec_peer_ca($ca['refid'])): ?> + <?=gettext("IPsec Tunnel")?><br/> + <?php endif?> + <?php if (is_ldap_peer_ca($ca['refid'])): ?> + <?=gettext("LDAP Server")?> + <?php endif?> + </td> + <td class="text-nowrap"> <a class="fa fa-pencil" title="<?=gettext("Edit CA")?>" href="system_camanager.php?act=edit&id=<?=$i?>"></a> <a class="fa fa-certificate" title="<?=gettext("Export CA")?>" href="system_camanager.php?act=exp&id=<?=$i?>"></a> <?php if ($ca['prv']): ?> <a class="fa fa-key" title="<?=gettext("Export key")?>" href="system_camanager.php?act=expkey&id=<?=$i?>"></a> <?php endif?> - <a class="fa fa-trash" title="<?=gettext("Delete CA")?>" href="system_camanager.php?act=del&id=<?=$i?>"></a> + <?php if (!ca_in_use($ca['refid'])): ?> + <a class="fa fa-trash" title="<?=gettext("Delete CA and its CRLs")?>" href="system_camanager.php?act=del&id=<?=$i?>"></a> + <?php endif?> </td> </tr> <?php endforeach; ?> diff --git a/src/usr/local/www/system_certmanager.php b/src/usr/local/www/system_certmanager.php index f5fa3ca..4c3ac5c 100644 --- a/src/usr/local/www/system_certmanager.php +++ b/src/usr/local/www/system_certmanager.php @@ -3,7 +3,7 @@ * system_certmanager.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc * All rights reserved. * @@ -231,6 +231,9 @@ if ($_POST) { if ($_POST['cert'] && (!strstr($_POST['cert'], "BEGIN CERTIFICATE") || !strstr($_POST['cert'], "END CERTIFICATE"))) { $input_errors[] = gettext("This certificate does not appear to be valid."); } + if (cert_get_modulus($_POST['cert'], false) != prv_get_modulus($_POST['key'], false)) { + $input_errors[] = gettext("The submitted private key does not match the submitted certificate data."); + } } if ($pconfig['method'] == "internal") { @@ -454,7 +457,7 @@ if ($_POST) { write_config(); } - if ($userid) { + if ($userid && !$input_errors) { post_redirect("system_usermanager.php", array('act' => 'edit', 'userid' => $userid)); exit; } diff --git a/src/usr/local/www/system_crlmanager.php b/src/usr/local/www/system_crlmanager.php index efb79f5..58ea4cd 100644 --- a/src/usr/local/www/system_crlmanager.php +++ b/src/usr/local/www/system_crlmanager.php @@ -3,7 +3,7 @@ * system_crlmanager.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -505,7 +505,7 @@ if ($act == "new" || $act == gettext("Save") || $input_errors) { $ca_certs = array(); foreach ($a_cert as $cert) { - if ($cert['caref'] == $crl['caref']) { + if ($cert['caref'] == $crl['caref'] && !is_cert_revoked($cert, $id)) { $ca_certs[] = $cert; } } diff --git a/src/usr/local/www/system_gateway_groups.php b/src/usr/local/www/system_gateway_groups.php index 8d17dfa..c8f956d 100644 --- a/src/usr/local/www/system_gateway_groups.php +++ b/src/usr/local/www/system_gateway_groups.php @@ -3,7 +3,7 @@ * system_gateway_groups.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Seth Mos <seth.mos@dds.nl> * All rights reserved. * diff --git a/src/usr/local/www/system_gateway_groups_edit.php b/src/usr/local/www/system_gateway_groups_edit.php index 858205b..60c704c 100644 --- a/src/usr/local/www/system_gateway_groups_edit.php +++ b/src/usr/local/www/system_gateway_groups_edit.php @@ -3,7 +3,7 @@ * system_gateway_groups_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Seth Mos <seth.mos@dds.nl> * All rights reserved. * diff --git a/src/usr/local/www/system_gateways.php b/src/usr/local/www/system_gateways.php index b8452ed..9eb95de 100644 --- a/src/usr/local/www/system_gateways.php +++ b/src/usr/local/www/system_gateways.php @@ -3,7 +3,7 @@ * system_gateways.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Seth Mos <seth.mos@dds.nl> * All rights reserved. * @@ -119,6 +119,14 @@ function delete_gateway_item($id) { return; } + /* If the removed gateway was the default route, remove the default route */ + if (!empty($a_gateways[$id]) && is_ipaddr($a_gateways[$id]['gateway']) && + !isset($a_gateways[$id]['disabled']) && + isset($a_gateways[$id]['defaultgw'])) { + $inet = (!is_ipaddrv4($a_gateways[$id]['gateway']) ? '-inet6' : '-inet'); + mwexec("/sbin/route delete {$inet} default"); + } + /* NOTE: Cleanup static routes for the interface route if any */ if (!empty($a_gateways[$id]) && is_ipaddr($a_gateways[$id]['gateway']) && $gateway['gateway'] != $a_gateways[$id]['gateway'] && @@ -195,6 +203,12 @@ if (isset($_POST['del_x'])) { if ($ok_to_toggle) { if ($disable_gw) { $a_gateway_item[$realid]['disabled'] = true; + /* If the disabled gateway was the default route, remove the default route */ + if (!empty($a_gateway_item[$realid]) && is_ipaddr($a_gateway_item[$realid]['gateway']) && + isset($a_gateway_item[$realid]['defaultgw'])) { + $inet = (!is_ipaddrv4($a_gateway_item[$realid]['gateway']) ? '-inet6' : '-inet'); + mwexec("/sbin/route delete {$inet} default"); + } } else { unset($a_gateway_item[$realid]['disabled']); } @@ -235,7 +249,7 @@ display_top_tabs($tab_array); <div class="panel-heading"><h2 class="panel-title"><?=gettext('Gateways')?></h2></div> <div class="panel-body"> <div class="table-responsive"> - <table class="table table-striped tabel-hover table-condensed table-rowdblclickedit"> + <table class="table table-striped table-hover table-condensed table-rowdblclickedit"> <thead> <tr> <th></th> diff --git a/src/usr/local/www/system_gateways_edit.php b/src/usr/local/www/system_gateways_edit.php index cba670c..0903aea 100644 --- a/src/usr/local/www/system_gateways_edit.php +++ b/src/usr/local/www/system_gateways_edit.php @@ -3,7 +3,7 @@ * system_gateways_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -494,6 +494,15 @@ if ($_POST) { if (isset($_POST['disabled'])) { $gateway['disabled'] = true; + /* Check if the gateway was enabled but changed to disabled. */ + if ((isset($realid) && $a_gateway_item[$realid]) && ($pconfig['disabled'] == false)) { + /* If the disabled gateway was the default route, remove the default route */ + if (is_ipaddr($gateway['gateway']) && + isset($gateway['defaultgw'])) { + $inet = (!is_ipaddrv4($gateway['gateway']) ? '-inet6' : '-inet'); + mwexec("/sbin/route delete {$inet} default"); + } + } } else { unset($gateway['disabled']); } @@ -850,12 +859,12 @@ events.push(function() { <?php if (!(!empty($pconfig['latencylow']) || !empty($pconfig['latencyhigh']) || !empty($pconfig['losslow']) || !empty($pconfig['losshigh']) || !empty($pconfig['data_payload']) || - (isset($pconfig['weight']) && $pconfig['weight'] > 1) || - (isset($pconfig['interval']) && !($pconfig['interval'] == $dpinger_default['interval'])) || - (isset($pconfig['loss_interval']) && !($pconfig['loss_interval'] == $dpinger_default['loss_interval'])) || - (isset($pconfig['time_period']) && !($pconfig['time_period'] == $dpinger_default['time_period'])) || - (isset($pconfig['alert_interval']) && !($pconfig['alert_interval'] == $dpinger_default['alert_interval'])) || - (isset($pconfig['nonlocalgateway']) && $pconfig['nonlocalgateway']))) { + (!empty($pconfig['weight']) && $pconfig['weight'] > 1) || + (!empty($pconfig['interval']) && !($pconfig['interval'] == $dpinger_default['interval'])) || + (!empty($pconfig['loss_interval']) && !($pconfig['loss_interval'] == $dpinger_default['loss_interval'])) || + (!empty($pconfig['time_period']) && !($pconfig['time_period'] == $dpinger_default['time_period'])) || + (!empty($pconfig['alert_interval']) && !($pconfig['alert_interval'] == $dpinger_default['alert_interval'])) || + (!empty($pconfig['nonlocalgateway']) && $pconfig['nonlocalgateway']))) { $showadv = false; } else { $showadv = true; diff --git a/src/usr/local/www/system_groupmanager.php b/src/usr/local/www/system_groupmanager.php index 072a5d1..d103863 100644 --- a/src/usr/local/www/system_groupmanager.php +++ b/src/usr/local/www/system_groupmanager.php @@ -3,7 +3,7 @@ * system_groupmanager.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005 Paul Taylor <paultaylor@winn-dixie.com> * Copyright (c) 2008 Shrew Soft Inc * All rights reserved. @@ -73,9 +73,7 @@ if ($act == "delgroup") { exit; } - conf_mount_rw(); local_group_del($a_group[$id]); - conf_mount_ro(); $groupdeleted = $a_group[$id]['name']; unset($a_group[$id]); write_config(); @@ -124,9 +122,7 @@ if (isset($_GET['dellall_x'])) { if (!empty($del_groups)) { foreach ($del_groups as $groupid) { if (isset($a_group[$groupid]) && $a_group[$groupid]['scope'] != "system") { - conf_mount_rw(); local_group_del($a_group[$groupid]); - conf_mount_ro(); unset($a_group[$groupid]); } } @@ -203,9 +199,7 @@ if (isset($_POST['save'])) { admin_groups_sort(); - conf_mount_rw(); local_group_set($group); - conf_mount_ro(); /* Refresh users in this group since their privileges may have changed. */ if (is_array($group['member'])) { diff --git a/src/usr/local/www/system_groupmanager_addprivs.php b/src/usr/local/www/system_groupmanager_addprivs.php index 07faab5..ad07c1c 100644 --- a/src/usr/local/www/system_groupmanager_addprivs.php +++ b/src/usr/local/www/system_groupmanager_addprivs.php @@ -3,7 +3,7 @@ * system_groupmanager_addprivs.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2006 Daniel S. Haischt. * All rights reserved. * diff --git a/src/usr/local/www/system_hasync.php b/src/usr/local/www/system_hasync.php index e6b9890..cc80028 100644 --- a/src/usr/local/www/system_hasync.php +++ b/src/usr/local/www/system_hasync.php @@ -3,7 +3,7 @@ * system_hasync.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/system_routes.php b/src/usr/local/www/system_routes.php index fe66f9f..cac6cce 100644 --- a/src/usr/local/www/system_routes.php +++ b/src/usr/local/www/system_routes.php @@ -3,7 +3,7 @@ * system_routes.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/system_routes_edit.php b/src/usr/local/www/system_routes_edit.php index 290e9aa..b86522e 100644 --- a/src/usr/local/www/system_routes_edit.php +++ b/src/usr/local/www/system_routes_edit.php @@ -3,7 +3,7 @@ * system_routes_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/system_update_settings.php b/src/usr/local/www/system_update_settings.php index 8d46099..7b3d5bc 100644 --- a/src/usr/local/www/system_update_settings.php +++ b/src/usr/local/www/system_update_settings.php @@ -3,7 +3,7 @@ * system_update_settings.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005 Colin Smith * All rights reserved. * @@ -76,11 +76,6 @@ $gitcfg = $config['system']['gitsync']; $pgtitle = array(gettext("System"), gettext("Update"), gettext("Update Settings")); -exec("/usr/bin/fetch -q -o {$g['tmp_path']}/manifest \"{$g['update_manifest']}\""); -if (file_exists("{$g['tmp_path']}/manifest")) { - $preset_urls_split = explode("\n", file_get_contents("{$g['tmp_path']}/manifest")); -} - // Create an array of repo names and descriptions to populate the "Branch" selector function build_repo_list() { global $repos; @@ -147,7 +142,7 @@ $section->addInput(new Form_Checkbox( $form->add($section); -if (file_exists("/usr/local/bin/git") && $g['platform'] == $g['product_name']) { +if (file_exists("/usr/local/bin/git")) { $section = new Form_Section('GitSync'); $section->addInput(new Form_Checkbox( diff --git a/src/usr/local/www/system_user_settings.php b/src/usr/local/www/system_user_settings.php index 60b0932..7cf5c17 100644 --- a/src/usr/local/www/system_user_settings.php +++ b/src/usr/local/www/system_user_settings.php @@ -3,7 +3,7 @@ * system_user_settings.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/system_usermanager.php b/src/usr/local/www/system_usermanager.php index 80265b1..fca8657 100644 --- a/src/usr/local/www/system_usermanager.php +++ b/src/usr/local/www/system_usermanager.php @@ -3,7 +3,7 @@ * system_usermanager.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc. * Copyright (c) 2005 Paul Taylor <paultaylor@winn-dixie.com> * All rights reserved. @@ -91,9 +91,7 @@ if ($_GET['act'] == "deluser") { if ($_GET['username'] == $_SESSION['Username']) { $delete_errors[] = sprintf(gettext("Cannot delete user %s because you are currently logged in as that user."), $_GET['username']); } else { - conf_mount_rw(); local_user_del($a_user[$id]); - conf_mount_ro(); $userdeleted = $a_user[$id]['name']; unset($a_user[$id]); write_config(); @@ -122,12 +120,10 @@ if (isset($_POST['dellall'])) { if ($a_user[$userid]['name'] == $_SESSION['Username']) { $delete_errors[] = sprintf(gettext("Cannot delete user %s because you are currently logged in as that user."), $a_user[$userid]['name']); } else { - conf_mount_rw(); $deleted_users = $deleted_users . $comma . $a_user[$userid]['name']; $comma = ", "; $deleted_count++; local_user_del($a_user[$userid]); - conf_mount_ro(); unset($a_user[$userid]); } } else { @@ -276,7 +272,6 @@ if ($_POST['save']) { if (!$input_errors) { - conf_mount_rw(); $userent = array(); if (isset($id) && $a_user[$id]) { $userent = $a_user[$id]; @@ -427,7 +422,6 @@ if ($_POST['save']) { run_plugins("/etc/inc/privhooks"); } - conf_mount_ro(); pfSenseHeader("system_usermanager.php"); } @@ -741,7 +735,7 @@ if ($act == "new" || $act == "edit" || $input_errors): 'text', $pconfig['expires'] ))->setHelp('Leave blank if the account shouldn\'t expire, otherwise enter '. - 'the expiration date'); + 'the expiration date as MM/DD/YYYY'); $section->addInput(new Form_Checkbox( 'customsettings', diff --git a/src/usr/local/www/system_usermanager_addprivs.php b/src/usr/local/www/system_usermanager_addprivs.php index fe29e5f..ee6d416 100644 --- a/src/usr/local/www/system_usermanager_addprivs.php +++ b/src/usr/local/www/system_usermanager_addprivs.php @@ -3,7 +3,7 @@ * system_usermanager_addprivs.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2006 Daniel S. Haischt. * All rights reserved. * @@ -60,7 +60,6 @@ uasort($spriv_list, "admusercmp"); if ($_POST) { - conf_mount_rw(); unset($input_errors); $pconfig = $_POST; @@ -87,14 +86,12 @@ if ($_POST) { local_user_set($a_user); $retval = write_config(); $savemsg = get_std_save_message($retval); - conf_mount_ro(); post_redirect("system_usermanager.php", array('act' => 'edit', 'userid' => $userid)); exit; } - conf_mount_ro(); } function build_priv_list() { diff --git a/src/usr/local/www/system_usermanager_passwordmg.php b/src/usr/local/www/system_usermanager_passwordmg.php index db3a862..a06868a 100644 --- a/src/usr/local/www/system_usermanager_passwordmg.php +++ b/src/usr/local/www/system_usermanager_passwordmg.php @@ -3,7 +3,7 @@ * system_usermanager_passwordmg.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/system_usermanager_settings.php b/src/usr/local/www/system_usermanager_settings.php index 393ec76..5a4e322 100644 --- a/src/usr/local/www/system_usermanager_settings.php +++ b/src/usr/local/www/system_usermanager_settings.php @@ -3,7 +3,7 @@ * system_usermanager_settings.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2007 Bill Marquette <bill.marquette@gmail.com> * All rights reserved. * @@ -188,8 +188,8 @@ $section->addInput(new Form_Input( 'risk!'); $auth_servers = array(); -foreach (auth_get_authserver_list() as $auth_server) { - $auth_servers[ $auth_server['name'] ] = $auth_server['name']; +foreach (auth_get_authserver_list() as $idx_authserver => $auth_server) { + $auth_servers[ $idx_authserver ] = $auth_server['name']; } $section->addInput(new Form_Select( diff --git a/src/usr/local/www/uploadconfig.php b/src/usr/local/www/uploadconfig.php index a91a813..fbe7dc3 100644 --- a/src/usr/local/www/uploadconfig.php +++ b/src/usr/local/www/uploadconfig.php @@ -4,7 +4,7 @@ * uploadconfig.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/vendor/filebrowser/browser.php b/src/usr/local/www/vendor/filebrowser/browser.php index 54ab942..8ca1217 100644 --- a/src/usr/local/www/vendor/filebrowser/browser.php +++ b/src/usr/local/www/vendor/filebrowser/browser.php @@ -3,7 +3,7 @@ require_once("guiconfig.inc"); /* - Copyright (C) 2013-2015 Electric Sheep Fencing, LP + Copyright (C) 2013-2015 Rubicon Communications, LLC (Netgate) */ // Fetch a list of directories and files inside a given directory diff --git a/src/usr/local/www/vpn_ipsec.php b/src/usr/local/www/vpn_ipsec.php index 2a6d838..64b628d 100644 --- a/src/usr/local/www/vpn_ipsec.php +++ b/src/usr/local/www/vpn_ipsec.php @@ -3,7 +3,7 @@ * vpn_ipsec.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/vpn_ipsec_keys.php b/src/usr/local/www/vpn_ipsec_keys.php index f3f5711..46b2e7a 100644 --- a/src/usr/local/www/vpn_ipsec_keys.php +++ b/src/usr/local/www/vpn_ipsec_keys.php @@ -3,7 +3,7 @@ * vpn_ipsec_keys.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/vpn_ipsec_keys_edit.php b/src/usr/local/www/vpn_ipsec_keys_edit.php index 6c92f6e..03fc8fc 100644 --- a/src/usr/local/www/vpn_ipsec_keys_edit.php +++ b/src/usr/local/www/vpn_ipsec_keys_edit.php @@ -3,7 +3,7 @@ * vpn_ipsec_keys_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally based on m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/vpn_ipsec_mobile.php b/src/usr/local/www/vpn_ipsec_mobile.php index c336928..05df61d 100644 --- a/src/usr/local/www/vpn_ipsec_mobile.php +++ b/src/usr/local/www/vpn_ipsec_mobile.php @@ -3,7 +3,7 @@ * vpn_ipsec_mobile.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc * All rights reserved. * diff --git a/src/usr/local/www/vpn_ipsec_phase1.php b/src/usr/local/www/vpn_ipsec_phase1.php index a9fb081..64de38f 100644 --- a/src/usr/local/www/vpn_ipsec_phase1.php +++ b/src/usr/local/www/vpn_ipsec_phase1.php @@ -3,7 +3,7 @@ * vpn_ipsec_phase1.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc * All rights reserved. * @@ -395,14 +395,6 @@ if ($_POST) { $input_errors[] = gettext("Encryption Algorithm AES-GCM can only be used with IKEv2"); } - if (!empty($_POST['ealgo']) && isset($config['system']['crypto_hardware'])) { - if ($config['system']['crypto_hardware'] == "glxsb") { - if ($_POST['ealgo'] == "aes" && $_POST['ealgo_keylen'] != "128") { - $input_errors[] = gettext("Only 128 bit AES can be used where the glxsb crypto accelerator is enabled."); - } - } - } - /* auth backend for mobile eap-radius VPNs should be a RADIUS server */ if (($pconfig['authentication_method'] == 'eap-radius') && $pconfig['mobile']) { if (!empty($config['ipsec']['client']['user_source'])) { @@ -667,7 +659,7 @@ $section->addInput(new Form_Select( 'iketype', 'Key Exchange version', $pconfig['iketype'], - array("ikev1" => "V1", "ikev2" => "V2", "auto" => gettext("Auto")) + array("ikev1" => "IKEv1", "ikev2" => "IKEv2", "auto" => gettext("Auto")) ))->setHelp('Select the Internet Key Exchange protocol version to be used. Auto uses IKEv2 when initiator, and accepts either IKEv1 or IKEv2 as responder.'); $section->addInput(new Form_Select( diff --git a/src/usr/local/www/vpn_ipsec_phase2.php b/src/usr/local/www/vpn_ipsec_phase2.php index 940f782..43a1a6f 100644 --- a/src/usr/local/www/vpn_ipsec_phase2.php +++ b/src/usr/local/www/vpn_ipsec_phase2.php @@ -3,7 +3,7 @@ * vpn_ipsec_phase2.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc * All rights reserved. * @@ -97,6 +97,7 @@ if ($ph2found === true) { if (isset($ph2['mobile'])) { $pconfig['mobile'] = true; + $pconfig['remoteid_type'] = "mobile"; } } else { $pconfig['ikeid'] = $_GET['ikeid']; @@ -114,6 +115,7 @@ if ($ph2found === true) { /* mobile client */ if ($_GET['mobile']) { $pconfig['mobile']=true; + $pconfig['remoteid_type'] = "mobile"; } } @@ -333,13 +335,6 @@ if ($_POST) { $input_errors[] = gettext("At least one encryption algorithm must be selected."); } else { foreach ($ealgos as $ealgo) { - if (isset($config['system']['crypto_hardware'])) { - if ($config['system']['crypto_hardware'] == "glxsb") { - if ($ealgo['name'] == "aes" && $ealgo['keylen'] != "128") { - $input_errors[] = gettext("Only 128 bit AES can be used where the glxsb crypto accelerator is enabled."); - } - } - } if (empty($pconfig['halgos'])) { if (!strpos($ealgo['name'], "gcm")) { $input_errors[] = gettext("At least one hashing algorithm needs to be selected."); diff --git a/src/usr/local/www/vpn_ipsec_settings.php b/src/usr/local/www/vpn_ipsec_settings.php index 3875779..4360837 100644 --- a/src/usr/local/www/vpn_ipsec_settings.php +++ b/src/usr/local/www/vpn_ipsec_settings.php @@ -3,7 +3,7 @@ * vpn_ipsec_settings.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/vpn_l2tp.php b/src/usr/local/www/vpn_l2tp.php index 8645218..1adf21b 100644 --- a/src/usr/local/www/vpn_l2tp.php +++ b/src/usr/local/www/vpn_l2tp.php @@ -3,7 +3,7 @@ * vpn_l2tp.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/vpn_l2tp_users.php b/src/usr/local/www/vpn_l2tp_users.php index 1ec0ffd..3bfaec1 100644 --- a/src/usr/local/www/vpn_l2tp_users.php +++ b/src/usr/local/www/vpn_l2tp_users.php @@ -3,7 +3,7 @@ * vpn_l2tp_users.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/vpn_l2tp_users_edit.php b/src/usr/local/www/vpn_l2tp_users_edit.php index b0be760..92b2e9a 100644 --- a/src/usr/local/www/vpn_l2tp_users_edit.php +++ b/src/usr/local/www/vpn_l2tp_users_edit.php @@ -3,7 +3,7 @@ * vpn_l2tp_users_edit.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/vpn_openvpn_client.php b/src/usr/local/www/vpn_openvpn_client.php index 185d515..157b0c9 100644 --- a/src/usr/local/www/vpn_openvpn_client.php +++ b/src/usr/local/www/vpn_openvpn_client.php @@ -3,7 +3,7 @@ * vpn_openvpn_client.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc. * All rights reserved. * diff --git a/src/usr/local/www/vpn_openvpn_csc.php b/src/usr/local/www/vpn_openvpn_csc.php index 4bafa9c..74d4c7a 100644 --- a/src/usr/local/www/vpn_openvpn_csc.php +++ b/src/usr/local/www/vpn_openvpn_csc.php @@ -3,7 +3,7 @@ * vpn_openvpn_csc.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc. * All rights reserved. * diff --git a/src/usr/local/www/vpn_openvpn_server.php b/src/usr/local/www/vpn_openvpn_server.php index 140e248..81861b1 100644 --- a/src/usr/local/www/vpn_openvpn_server.php +++ b/src/usr/local/www/vpn_openvpn_server.php @@ -3,7 +3,7 @@ * vpn_openvpn_server.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2008 Shrew Soft Inc. * All rights reserved. * @@ -1183,6 +1183,7 @@ else: <tr> <th><?=gettext("Protocol / Port")?></th> <th><?=gettext("Tunnel Network")?></th> + <th><?=gettext("Crypto")?></th> <th><?=gettext("Description")?></th> <th><?=gettext("Actions")?></th> </tr> @@ -1202,7 +1203,10 @@ else: <?=htmlspecialchars($server['tunnel_networkv6'])?> </td> <td> - <?=htmlspecialchars($server['description'])?> + <?=sprintf("Crypto: %s/%s<br/>D-H Params: %d bits", $server['crypto'], $server['digest'], $server['dh_length'])?><br /> + </td> + <td> + <?=htmlspecialchars(sprintf('%s (%s)', $server['description'], $server['dev_mode']))?> </td> <td> <a class="fa fa-pencil" title="<?=gettext('Edit server')?>" href="vpn_openvpn_server.php?act=edit&id=<?=$i?>"></a> diff --git a/src/usr/local/www/widgets/include/captiveportal.inc b/src/usr/local/www/widgets/include/captiveportal.inc index 9d8ccaa..bcc61d8 100644 --- a/src/usr/local/www/widgets/include/captiveportal.inc +++ b/src/usr/local/www/widgets/include/captiveportal.inc @@ -3,7 +3,7 @@ * captiveportal.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/include/carp_status.inc b/src/usr/local/www/widgets/include/carp_status.inc index d49e09e..675e53b 100644 --- a/src/usr/local/www/widgets/include/carp_status.inc +++ b/src/usr/local/www/widgets/include/carp_status.inc @@ -3,7 +3,7 @@ * carp_status.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/include/dyn_dns_status.inc b/src/usr/local/www/widgets/include/dyn_dns_status.inc index 140326f..628fbc6 100644 --- a/src/usr/local/www/widgets/include/dyn_dns_status.inc +++ b/src/usr/local/www/widgets/include/dyn_dns_status.inc @@ -3,7 +3,7 @@ * dyn_dns_status.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/include/gateways.inc b/src/usr/local/www/widgets/include/gateways.inc index b0f93f5..b2a1577 100644 --- a/src/usr/local/www/widgets/include/gateways.inc +++ b/src/usr/local/www/widgets/include/gateways.inc @@ -3,7 +3,7 @@ * gateways.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/include/gmirror_status.inc b/src/usr/local/www/widgets/include/gmirror_status.inc index 62e9867..7a9b5c7 100644 --- a/src/usr/local/www/widgets/include/gmirror_status.inc +++ b/src/usr/local/www/widgets/include/gmirror_status.inc @@ -3,7 +3,7 @@ * gmirror_status.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/include/installed_packages.inc b/src/usr/local/www/widgets/include/installed_packages.inc index f09fb1c..ca9d757 100644 --- a/src/usr/local/www/widgets/include/installed_packages.inc +++ b/src/usr/local/www/widgets/include/installed_packages.inc @@ -3,7 +3,7 @@ * installed_packages.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/include/interface_statistics.inc b/src/usr/local/www/widgets/include/interface_statistics.inc index d1812b4..25edeb3 100644 --- a/src/usr/local/www/widgets/include/interface_statistics.inc +++ b/src/usr/local/www/widgets/include/interface_statistics.inc @@ -3,7 +3,7 @@ * interface_statistics.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/include/interfaces.inc b/src/usr/local/www/widgets/include/interfaces.inc index 60b5890..e17add4 100644 --- a/src/usr/local/www/widgets/include/interfaces.inc +++ b/src/usr/local/www/widgets/include/interfaces.inc @@ -3,7 +3,7 @@ * interfaces.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/include/ipsec.inc b/src/usr/local/www/widgets/include/ipsec.inc index fe0fff2..d2d4e2d 100644 --- a/src/usr/local/www/widgets/include/ipsec.inc +++ b/src/usr/local/www/widgets/include/ipsec.inc @@ -3,7 +3,7 @@ * ipsec.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/include/load_balancer.inc b/src/usr/local/www/widgets/include/load_balancer.inc index e7fdbd6..017a40e 100644 --- a/src/usr/local/www/widgets/include/load_balancer.inc +++ b/src/usr/local/www/widgets/include/load_balancer.inc @@ -3,7 +3,7 @@ * load_balancer.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/include/log.inc b/src/usr/local/www/widgets/include/log.inc index 2863b00..c55fb44 100644 --- a/src/usr/local/www/widgets/include/log.inc +++ b/src/usr/local/www/widgets/include/log.inc @@ -3,7 +3,7 @@ * log.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/include/ntp_status.inc b/src/usr/local/www/widgets/include/ntp_status.inc index 91246fe..df85090 100644 --- a/src/usr/local/www/widgets/include/ntp_status.inc +++ b/src/usr/local/www/widgets/include/ntp_status.inc @@ -3,7 +3,7 @@ * ntp_status.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/include/openvpn.inc b/src/usr/local/www/widgets/include/openvpn.inc index 1d9a862..65ce59b 100644 --- a/src/usr/local/www/widgets/include/openvpn.inc +++ b/src/usr/local/www/widgets/include/openvpn.inc @@ -3,7 +3,7 @@ * openvpn.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/include/services_status.inc b/src/usr/local/www/widgets/include/services_status.inc index 22296c9..7d13c53 100644 --- a/src/usr/local/www/widgets/include/services_status.inc +++ b/src/usr/local/www/widgets/include/services_status.inc @@ -3,7 +3,7 @@ * services_status.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/include/smart_status.inc b/src/usr/local/www/widgets/include/smart_status.inc index 367fffd..6b236b2 100644 --- a/src/usr/local/www/widgets/include/smart_status.inc +++ b/src/usr/local/www/widgets/include/smart_status.inc @@ -3,7 +3,7 @@ * smart_status.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/include/thermal_sensors.inc b/src/usr/local/www/widgets/include/thermal_sensors.inc index 74d6f1f..192214a 100644 --- a/src/usr/local/www/widgets/include/thermal_sensors.inc +++ b/src/usr/local/www/widgets/include/thermal_sensors.inc @@ -3,7 +3,7 @@ * thermal_sensors.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/include/traffic_graph.inc b/src/usr/local/www/widgets/include/traffic_graph.inc index 0371c8c..4870060 100644 --- a/src/usr/local/www/widgets/include/traffic_graph.inc +++ b/src/usr/local/www/widgets/include/traffic_graph.inc @@ -3,7 +3,7 @@ * traffic_graph.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/include/wake_on_lan.inc b/src/usr/local/www/widgets/include/wake_on_lan.inc index 2f3389e..1120b4b 100644 --- a/src/usr/local/www/widgets/include/wake_on_lan.inc +++ b/src/usr/local/www/widgets/include/wake_on_lan.inc @@ -3,7 +3,7 @@ * wake_on_lan.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/javascript/ipsec.js b/src/usr/local/www/widgets/javascript/ipsec.js index c61d8d5..bb3837c 100644 --- a/src/usr/local/www/widgets/javascript/ipsec.js +++ b/src/usr/local/www/widgets/javascript/ipsec.js @@ -2,7 +2,7 @@ * ipsec.js * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/javascript/thermal_sensors.js b/src/usr/local/www/widgets/javascript/thermal_sensors.js index bbb7e9a..2ee8c3e 100644 --- a/src/usr/local/www/widgets/javascript/thermal_sensors.js +++ b/src/usr/local/www/widgets/javascript/thermal_sensors.js @@ -2,7 +2,7 @@ * thermal_sensors.js * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/javascript/traffic_graph.js b/src/usr/local/www/widgets/javascript/traffic_graph.js index a393e6e..d0f7ee0 100644 --- a/src/usr/local/www/widgets/javascript/traffic_graph.js +++ b/src/usr/local/www/widgets/javascript/traffic_graph.js @@ -2,7 +2,7 @@ * traffic_graph.js * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/widgets/captive_portal_status.widget.php b/src/usr/local/www/widgets/widgets/captive_portal_status.widget.php index 75b27b1..65c8b4a 100644 --- a/src/usr/local/www/widgets/widgets/captive_portal_status.widget.php +++ b/src/usr/local/www/widgets/widgets/captive_portal_status.widget.php @@ -4,7 +4,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2007 Sam Wenham - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) @@ -48,7 +48,7 @@ if (isset($cpzone) && !empty($cpzone) && isset($a_cp[$cpzone]['zoneid'])) { } if (($_GET['act'] == "del") && !empty($cpzone) && isset($cpzoneid)) { - captiveportal_disconnect_client($_GET['id']); + captiveportal_disconnect_client($_GET['id'], 6); } unset($cpzone); diff --git a/src/usr/local/www/widgets/widgets/carp_status.widget.php b/src/usr/local/www/widgets/widgets/carp_status.widget.php index fd97b94..ecf2e08 100644 --- a/src/usr/local/www/widgets/widgets/carp_status.widget.php +++ b/src/usr/local/www/widgets/widgets/carp_status.widget.php @@ -4,7 +4,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2007 Sam Wenham - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php b/src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php index 2c1a7b7..850cae9 100644 --- a/src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php +++ b/src/usr/local/www/widgets/widgets/dyn_dns_status.widget.php @@ -4,7 +4,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2013 Stanley P. Miller \ stan-qaz - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -21,6 +21,7 @@ */ $nocsrf = true; +global $dyndns_split_domain_types; require_once("guiconfig.inc"); require_once("pfsense-utils.inc"); @@ -51,7 +52,7 @@ if ($_REQUEST['getdyndnsstatus']) { echo "|"; } $cache_sep = ":"; - if ($dyndns['type'] == "namecheap") { + if (in_array($dyndns['type'], $dyndns_split_domain_types)) { $hostname = $dyndns['host'] . "." . $dyndns['domainname']; } elseif (empty($dyndns['type'])) { /* RFC2136, add some dummy values */ @@ -64,21 +65,33 @@ if ($_REQUEST['getdyndnsstatus']) { } $filename = "{$g['conf_path']}/dyndns_{$dyndns['interface']}{$dyndns['type']}" . escapeshellarg($hostname) . "{$dyndns['id']}.cache"; + $filename_v6 = "{$g['conf_path']}/dyndns_{$dyndns['interface']}{$dyndns['type']}" . escapeshellarg($hostname) . "{$dyndns['id']}_v6.cache"; if (file_exists($filename)) { - if (($dyndns['type'] == '_rfc2136_') && (!isset($dyndns['usepublicip']))) { - $ipaddr = get_interface_ip(get_failover_interface($dyndns['interface'])); - } else { - $ipaddr = dyndnsCheckIP($dyndns['interface']); - } - $cached_ip_s = explode($cache_sep, file_get_contents($filename)); + $ipaddr = dyndnsCheckIP($dyndns['interface']); + $cached_ip_s = explode(":", file_get_contents($filename)); $cached_ip = $cached_ip_s[0]; - if (trim($ipaddr) != trim($cached_ip)) { + + if ($ipaddr != $cached_ip) { print('<span class="text-danger">'); } else { print('<span class="text-success">'); } + print(htmlspecialchars($cached_ip)); print('</span>'); + } else if (file_exists($filename_v6)) { + $ipv6addr = get_interface_ipv6($dyndns['interface']); + $cached_ipv6_s = explode("|", file_get_contents($filename_v6)); + $cached_ipv6 = $cached_ipv6_s[0]; + + if ($ipv6addr != $cached_ipv6) { + print('<span class="text-danger">'); + } else { + print('<span class="text-success">'); + } + + print(htmlspecialchars($cached_ipv6)); + print('</span>'); } else { print('N/A ' . date("H:i:s")); } @@ -100,7 +113,7 @@ if ($_REQUEST['getdyndnsstatus']) { <tbody> <?php $dyndnsid = 0; foreach ($all_dyndns as $dyndns): - if ($dyndns['type'] == "namecheap") { + if (in_array($dyndns['type'], $dyndns_split_domain_types)) { $hostname = $dyndns['host'] . "." . $dyndns['domainname']; } elseif (empty($dyndns['type'])) { /* RFC2136, add some dummy values */ diff --git a/src/usr/local/www/widgets/widgets/gateways.widget.php b/src/usr/local/www/widgets/widgets/gateways.widget.php index 4bb5b67..28aed43 100644 --- a/src/usr/local/www/widgets/widgets/gateways.widget.php +++ b/src/usr/local/www/widgets/widgets/gateways.widget.php @@ -4,7 +4,7 @@ * * part of pfSense (https://www.pfsense.org) * Copyright (c) 2008 Seth Mos - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/widgets/widgets/gmirror_status.widget.php b/src/usr/local/www/widgets/widgets/gmirror_status.widget.php index 6c3380b..046e9f3 100644 --- a/src/usr/local/www/widgets/widgets/gmirror_status.widget.php +++ b/src/usr/local/www/widgets/widgets/gmirror_status.widget.php @@ -3,7 +3,7 @@ * gmirror_status.widget.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/widgets/widgets/installed_packages.widget.php b/src/usr/local/www/widgets/widgets/installed_packages.widget.php index 90dd1be..1840d6f 100644 --- a/src/usr/local/www/widgets/widgets/installed_packages.widget.php +++ b/src/usr/local/www/widgets/widgets/installed_packages.widget.php @@ -6,7 +6,7 @@ * Copyright (c) Scott Dale * Copyright (c) 2004-2005 T. Lechat <dev@lechat.org> * Copyright (c) Jonathan Watt <jwatt@jwatt.org> - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * originally part of m0n0wall (http://m0n0.ch/wall) diff --git a/src/usr/local/www/widgets/widgets/interface_statistics.widget.php b/src/usr/local/www/widgets/widgets/interface_statistics.widget.php index bfaa82e..0dac8cd 100644 --- a/src/usr/local/www/widgets/widgets/interface_statistics.widget.php +++ b/src/usr/local/www/widgets/widgets/interface_statistics.widget.php @@ -3,7 +3,7 @@ * interface_statistics.widget.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2007 Scott Dale * Copyright (c) 2004-2005 T. Lechat <dev@lechat.org> * Copyright (c) 2004-2005 Jonathan Watt <jwatt@jwatt.org> diff --git a/src/usr/local/www/widgets/widgets/interfaces.widget.php b/src/usr/local/www/widgets/widgets/interfaces.widget.php index efc2527..0220794 100644 --- a/src/usr/local/www/widgets/widgets/interfaces.widget.php +++ b/src/usr/local/www/widgets/widgets/interfaces.widget.php @@ -3,7 +3,7 @@ * interfaces.widget.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2007 Scott Dale * All rights reserved. * diff --git a/src/usr/local/www/widgets/widgets/ipsec.widget.php b/src/usr/local/www/widgets/widgets/ipsec.widget.php index ce76f9e..81ec8be 100644 --- a/src/usr/local/www/widgets/widgets/ipsec.widget.php +++ b/src/usr/local/www/widgets/widgets/ipsec.widget.php @@ -3,7 +3,7 @@ * gmirror_status.widget.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2004-2005 T. Lechat <dev@lechat.org> (BSD 2 clause) * Copyright (c) 2007 Jonathan Watt <jwatt@jwatt.org> (BSD 2 clause) * Copyright (c) 2007 Scott Dale (BSD 2 clause) diff --git a/src/usr/local/www/widgets/widgets/load_balancer_status.widget.php b/src/usr/local/www/widgets/widgets/load_balancer_status.widget.php index e6fd8e0..2456d6a 100644 --- a/src/usr/local/www/widgets/widgets/load_balancer_status.widget.php +++ b/src/usr/local/www/widgets/widgets/load_balancer_status.widget.php @@ -3,7 +3,7 @@ * load_balancer_status.widget.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Seth Mos <seth.mos@dds.nl>. * Copyright (c) 2005-2008 Bill Marquette * All rights reserved. diff --git a/src/usr/local/www/widgets/widgets/log.widget.php b/src/usr/local/www/widgets/widgets/log.widget.php index fab878f..c1cc81e 100644 --- a/src/usr/local/www/widgets/widgets/log.widget.php +++ b/src/usr/local/www/widgets/widgets/log.widget.php @@ -3,7 +3,7 @@ * log.widget.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2007 Scott Dale * All rights reserved. * diff --git a/src/usr/local/www/widgets/widgets/ntp_status.widget.php b/src/usr/local/www/widgets/widgets/ntp_status.widget.php index 29ce025..c23a02f 100644 --- a/src/usr/local/www/widgets/widgets/ntp_status.widget.php +++ b/src/usr/local/www/widgets/widgets/ntp_status.widget.php @@ -3,7 +3,7 @@ * ntp_status.widget.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/widgets/openvpn.widget.php b/src/usr/local/www/widgets/widgets/openvpn.widget.php index 0d555c0..6fdc069 100644 --- a/src/usr/local/www/widgets/widgets/openvpn.widget.php +++ b/src/usr/local/www/widgets/widgets/openvpn.widget.php @@ -3,7 +3,7 @@ * openvpn.widget.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/widgets/picture.widget.php b/src/usr/local/www/widgets/widgets/picture.widget.php index 6ceff9b..ae02f0f 100644 --- a/src/usr/local/www/widgets/widgets/picture.widget.php +++ b/src/usr/local/www/widgets/widgets/picture.widget.php @@ -3,7 +3,7 @@ * picture.widget.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/widgets/rss.widget.php b/src/usr/local/www/widgets/widgets/rss.widget.php index 3f67fa2..f5100c8 100644 --- a/src/usr/local/www/widgets/widgets/rss.widget.php +++ b/src/usr/local/www/widgets/widgets/rss.widget.php @@ -3,7 +3,7 @@ * rss.widget.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/widgets/services_status.widget.php b/src/usr/local/www/widgets/widgets/services_status.widget.php index 5da0adc..1ef5b5b 100644 --- a/src/usr/local/www/widgets/widgets/services_status.widget.php +++ b/src/usr/local/www/widgets/widgets/services_status.widget.php @@ -3,7 +3,7 @@ * services_status.widget.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2007 Sam Wenham * All rights reserved. * @@ -95,7 +95,7 @@ if (count($services) > 0) { $service_desc = explode(".",$service['description']); ?> <tr> - <td><i class="fa fa-<?=get_service_status($service) ? 'check-circle text-success' : 'times-circle text-warning'?>"></i></td> + <td><?=get_service_status_icon($service, false, true, false, "state")?></td> <td><?=$service['dispname']?></td> <td><?=$service_desc[0]?></td> <td><?=get_service_control_links($service)?></td> diff --git a/src/usr/local/www/widgets/widgets/smart_status.widget.php b/src/usr/local/www/widgets/widgets/smart_status.widget.php index 9f4fc02..d0e2550 100644 --- a/src/usr/local/www/widgets/widgets/smart_status.widget.php +++ b/src/usr/local/www/widgets/widgets/smart_status.widget.php @@ -3,7 +3,7 @@ * smart_status.widget.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2012 mkirbst @ pfSense Forum * All rights reserved. * diff --git a/src/usr/local/www/widgets/widgets/system_information.widget.php b/src/usr/local/www/widgets/widgets/system_information.widget.php index da23d39..c927043 100644 --- a/src/usr/local/www/widgets/widgets/system_information.widget.php +++ b/src/usr/local/www/widgets/widgets/system_information.widget.php @@ -3,7 +3,7 @@ * system_information.widget.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2007 Scott Dale * All rights reserved. * @@ -27,6 +27,7 @@ require_once("functions.inc"); require_once("guiconfig.inc"); require_once('notices.inc'); +require_once('system.inc'); include_once("includes/functions.inc.php"); if ($_REQUEST['getupdatestatus']) { @@ -64,7 +65,7 @@ if ($_REQUEST['getupdatestatus']) { <?php break; case '=': - print(gettext("The system is on the latest version.")); + printf('<span class="text-success">%s</span>', gettext("The system is on the latest version.")); break; case '>': print(gettext("The system is on a later version than<br />the official release.")); @@ -93,6 +94,21 @@ $filesystems = get_mounted_filesystems(); <td><?php echo htmlspecialchars($config['system']['hostname'] . "." . $config['system']['domain']); ?></td> </tr> <tr> + <th><?=gettext("System");?></th> + <td> + <?php + $platform = system_identify_specific_platform(); + if (isset($platform['descr'])) { + echo $platform['descr']; + } else { + echo gettext('Unknown system'); + } + ?> + <br /> + <?=gettext("Serial: ");?><strong><?=system_get_serial();?></strong> + </td> + </tr> + <tr> <th><?=gettext("Version");?></th> <td> <strong><?=$g['product_version_string']?></strong> @@ -109,36 +125,6 @@ $filesystems = get_mounted_filesystems(); <?php endif; ?> </td> </tr> - <?php if (!$g['hideplatform']): ?> - <tr> - <th><?=gettext("Platform");?></th> - <td> - <?=htmlspecialchars($g['platform']);?> - <?php if (($g['platform'] == "nanobsd") && (file_exists("/etc/nanosize.txt"))) { - echo " (" . htmlspecialchars(trim(file_get_contents("/etc/nanosize.txt"))) . ")"; - } ?> - </td> - </tr> - <?php endif; ?> - <?php if ($g['platform'] == "nanobsd"): ?> - <?php - global $SLICE, $OLDSLICE, $TOFLASH, $COMPLETE_PATH, $COMPLETE_BOOT_PATH; - global $GLABEL_SLICE, $UFS_ID, $OLD_UFS_ID, $BOOTFLASH; - global $BOOT_DEVICE, $REAL_BOOT_DEVICE, $BOOT_DRIVE, $ACTIVE_SLICE; - nanobsd_detect_slice_info(); - $rw = is_writable("/") ? "(rw)" : "(ro)"; - ?> - <tr> - <th><?=gettext("NanoBSD Boot Slice");?></th> - <td> - <?=htmlspecialchars(nanobsd_friendly_slice_name($BOOT_DEVICE));?> / <?=htmlspecialchars($BOOTFLASH);?><?=$rw;?> - <?php if ($BOOTFLASH != $ACTIVE_SLICE): ?> - <br /><br /><?=gettext('Next Boot')?>:<br /> - <?=htmlspecialchars(nanobsd_friendly_slice_name($GLABEL_SLICE));?> / <?=htmlspecialchars($ACTIVE_SLICE);?> - <?php endif; ?> - </td> - </tr> - <?php endif; ?> <tr> <th><?=gettext("CPU Type");?></th> <td><?=htmlspecialchars(get_single_sysctl("hw.model"))?> diff --git a/src/usr/local/www/widgets/widgets/thermal_sensors.widget.php b/src/usr/local/www/widgets/widgets/thermal_sensors.widget.php index 0930b06..e776e4e 100644 --- a/src/usr/local/www/widgets/widgets/thermal_sensors.widget.php +++ b/src/usr/local/www/widgets/widgets/thermal_sensors.widget.php @@ -3,7 +3,7 @@ * thermal_sensors.widget.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/widgets/widgets/traffic_graphs.widget.php b/src/usr/local/www/widgets/widgets/traffic_graphs.widget.php index 6eab990..2d1af03 100644 --- a/src/usr/local/www/widgets/widgets/traffic_graphs.widget.php +++ b/src/usr/local/www/widgets/widgets/traffic_graphs.widget.php @@ -3,7 +3,7 @@ * traffic_graphs.widget.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2007 Scott Dale * Copyright (c) 2004-2005 T. Lechat <dev@lechat.org> * Copyright (c) 2004-2005 Jonathan Watt <jwatt@jwatt.org>. diff --git a/src/usr/local/www/widgets/widgets/wake_on_lan.widget.php b/src/usr/local/www/widgets/widgets/wake_on_lan.widget.php index 6a95d44..0930a6a 100644 --- a/src/usr/local/www/widgets/widgets/wake_on_lan.widget.php +++ b/src/usr/local/www/widgets/widgets/wake_on_lan.widget.php @@ -3,7 +3,7 @@ * wake_on_lan.widget.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2010 Yehuda Katz * All rights reserved. * diff --git a/src/usr/local/www/wizard.php b/src/usr/local/www/wizard.php index 4f4a969..574c1e1 100644 --- a/src/usr/local/www/wizard.php +++ b/src/usr/local/www/wizard.php @@ -3,7 +3,7 @@ * wizard.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/wizards/openvpn_wizard.inc b/src/usr/local/www/wizards/openvpn_wizard.inc index d9d9235..259d279 100644 --- a/src/usr/local/www/wizards/openvpn_wizard.inc +++ b/src/usr/local/www/wizards/openvpn_wizard.inc @@ -3,7 +3,7 @@ * openvpn_wizard.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -203,7 +203,7 @@ function step7_submitphpaction() { } elseif (has_special_chars($_POST['country']) || has_special_chars($_POST['state']) || has_special_chars($_POST['city']) || has_special_chars($_POST['organization'])) { $stepid--; - $input_errors[] = "Please do not use special characters in Certificate field names."; + $input_errors[] = "Please limit Certificate field names to only the following characters: A-Z, a-z, space, underscore, and dash."; } elseif (in_array($_POST['descr'], $canames) || in_array($_POST['descr'], $cacns)) { $stepid--; $savemsg = "Please enter a different name for the Certificate Authority. A Certificate Authority with that name already exists."; diff --git a/src/usr/local/www/wizards/openvpn_wizard.xml b/src/usr/local/www/wizards/openvpn_wizard.xml index d7cea3c..3d898d7 100644 --- a/src/usr/local/www/wizards/openvpn_wizard.xml +++ b/src/usr/local/www/wizards/openvpn_wizard.xml @@ -5,7 +5,7 @@ * openvpn_wizard.xml * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -510,27 +510,47 @@ <field> <name>keylength</name> <displayname>Key length</displayname> - <description><br/>Size of the key which will be generated. The larger the key, the more security it offers, but larger keys are generally slower to use.</description> + <description><br/>Size of the key which will be generated. The larger the key, the more security it offers, but larger keys take considerably more time to generate, and take slightly longer to validate leading to a slight slowdown in setting up new sessions (not always noticeable). As of 2016, 2048 bit is the minimum and most common selection and 4096 is the maximum in common use. For more information see <a href="https://keylength.com">keylength.com</a></description> <type>select</type> <value>2048</value> <bindstofield>ovpnserver->step9->keylength</bindstofield> <options> <option> - <name>512 bits</name> + <name>512 bit</name> <value>512</value> </option> <option> - <name>1024 bits</name> + <name>1024 bit</name> <value>1024</value> </option> <option> - <name>2048 bits</name> + <name>2048 bit</name> <value>2048</value> </option> <option> - <name>4096 bits</name> + <name>3072 bit</name> + <value>3072</value> + </option> + <option> + <name>4096 bit</name> <value>4096</value> </option> + <option> + <name>7680 bit</name> + <value>7680</value> + </option> + <option> + <name>8192 bit</name> + <value>8192</value> + </option> + <option> + <name>15360 bit</name> + <value>15360</value> + </option> + <option> + <name>16384 bit</name> + <value>16384</value> + </option> </options> </field> <field> @@ -685,11 +705,31 @@ <value>2048</value> </option> <option> + <name>3072 bit</name> + <value>3072</value> + </option> + <option> <name>4096 bit</name> <value>4096</value> </option> + <option> + <name>7680 bit</name> + <value>7680</value> + </option> + <option> + <name>8192 bit</name> + <value>8192</value> + </option> + <option> + <name>15360 bit</name> + <value>15360</value> + </option> + <option> + <name>16384 bit</name> + <value>16384</value> + </option> </options> - <description><br/>Length of Diffie-Hellman (DH) key exchange parameters, used for establishing a secure communications channel. As with other such settings, the larger values are more secure, but may be slower in operation.</description> + <description><br/>Length of Diffie-Hellman (DH) key exchange parameters, used for establishing a secure communications channel. The DH parameters are different from key sizes, but as with other such settings, the larger the key, the more security it offers, but larger keys take considerably more time to generate. As of 2016, 2048 bit is a common and typical selection.</description> </field> <field> <name>crypto</name> diff --git a/src/usr/local/www/wizards/setup_wizard.xml b/src/usr/local/www/wizards/setup_wizard.xml index 9380d07..d5a3c48 100644 --- a/src/usr/local/www/wizards/setup_wizard.xml +++ b/src/usr/local/www/wizards/setup_wizard.xml @@ -5,7 +5,7 @@ * setup_wizard.xml * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -34,9 +34,7 @@ </field> </fields> <stepbeforeformdisplay> - conf_mount_rw(); unlink_if_exists('/conf/trigger_initial_wizard'); - conf_mount_ro(); </stepbeforeformdisplay> </step> <step> @@ -575,7 +573,7 @@ <type>input</type> <bindstofield>interfaces->lan->ipaddr</bindstofield> <description>Type dhcp if this interface uses DHCP to obtain its IP address.</description> - <validate>^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$</validate> + <validate>^(dhcp|(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))$/i</validate> <message>LAN IP Address field is invalid</message> </field> <field> @@ -590,7 +588,7 @@ </fields> <stepsubmitphpaction> <![CDATA[ - if (empty($_POST['lanipaddress']) || !is_ipaddr($_POST['lanipaddress'])) { + if (empty($_POST['lanipaddress']) || (!is_ipaddr($_POST['lanipaddress']) && (strtolower($_POST['lanipaddress']) != "dhcp"))) { print_info_box("Invalid LAN IP address. Please press back in the browser window and correct."); die; } @@ -621,32 +619,39 @@ die; } - $ipaddresses_before = ip_range_size_v4($lowestip, $_POST['lanipaddress']); - $ipaddresses_after = ip_range_size_v4($_POST['lanipaddress'], $highestip); + /* + If the existing DHCP range on LAN is not in the new subnet or + is invalid, then replace the range with a newly crafted one. + */ + if (!ip_in_subnet($config['dhcpd']['lan']['range']['from'], "{$_POST['lanipaddress']}/{$_POST['subnetmask']}") || + !ip_in_subnet($config['dhcpd']['lan']['range']['to'], "{$_POST['lanipaddress']}/{$_POST['subnetmask']}")) { - if ($ipaddresses_after >= $ipaddresses_before) { - // The LAN IP is in the 1st half of the subnet, so put DHCP in the 2nd half. - if ($ipaddresses_after > 30) { - // There is reasonable space in the subnet, use a smaller chunk of the space for DHCP - // This case will work out like the old defaults if the user has specified the ".1" address. - // The range will be something like ".10" to ".245" - $config['dhcpd']['lan']['range']['from'] = ip_after($_POST['lanipaddress'], 9); - $config['dhcpd']['lan']['range']['to'] = ip_before($highestip, 10); - } else { - // There is not much space in the subnet, so allocate everything above the LAN IP to DHCP. - $config['dhcpd']['lan']['range']['from'] = ip_after($_POST['lanipaddress']); - $config['dhcpd']['lan']['range']['to'] = ip_before($highestip); - } - } else { - // The LAN IP is in the 2nd half of the subnet, so put DHCP in the 1st half. - if ($ipaddresses_before > 30) { - // There is reasonable space in the subnet, use a smaller chunk of the space for DHCP - $config['dhcpd']['lan']['range']['from'] = ip_after($lowestip, 10); - $config['dhcpd']['lan']['range']['to'] = ip_before($_POST['lanipaddress'], 9); + $ipaddresses_before = ip_range_size_v4($lowestip, $_POST['lanipaddress']); + $ipaddresses_after = ip_range_size_v4($_POST['lanipaddress'], $highestip); + if ($ipaddresses_after >= $ipaddresses_before) { + // The LAN IP is in the 1st half of the subnet, so put DHCP in the 2nd half. + if ($ipaddresses_after > 30) { + // There is reasonable space in the subnet, use a smaller chunk of the space for DHCP + // This case will work out like the old defaults if the user has specified the ".1" address. + // The range will be something like ".10" to ".245" + $config['dhcpd']['lan']['range']['from'] = ip_after($_POST['lanipaddress'], 9); + $config['dhcpd']['lan']['range']['to'] = ip_before($highestip, 10); + } else { + // There is not much space in the subnet, so allocate everything above the LAN IP to DHCP. + $config['dhcpd']['lan']['range']['from'] = ip_after($_POST['lanipaddress']); + $config['dhcpd']['lan']['range']['to'] = ip_before($highestip); + } } else { - // There is not much space in the subnet, so allocate everything below the LAN IP to DHCP. - $config['dhcpd']['lan']['range']['from'] = ip_after($lowestip); - $config['dhcpd']['lan']['range']['to'] = ip_before($_POST['lanipaddress']); + // The LAN IP is in the 2nd half of the subnet, so put DHCP in the 1st half. + if ($ipaddresses_before > 30) { + // There is reasonable space in the subnet, use a smaller chunk of the space for DHCP + $config['dhcpd']['lan']['range']['from'] = ip_after($lowestip, 10); + $config['dhcpd']['lan']['range']['to'] = ip_before($_POST['lanipaddress'], 9); + } else { + // There is not much space in the subnet, so allocate everything below the LAN IP to DHCP. + $config['dhcpd']['lan']['range']['from'] = ip_after($lowestip); + $config['dhcpd']['lan']['range']['to'] = ip_before($_POST['lanipaddress']); + } } } ]]> diff --git a/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc b/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc index 40ec18a..f5c0448 100644 --- a/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc +++ b/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc @@ -3,7 +3,7 @@ * traffic_shaper_wizard_dedicated.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -132,6 +132,10 @@ function step2_stepbeforeformdisplay() { $field['typehint'] = "Queueing discipline to apply on the download of this connection."; $field['options']['option'] = array(); $opts = array(); + $opts['name'] = "PRIQ"; + $opts['value'] = "PRIQ"; + $field['options']['option'][] = $opts; + $opts = array(); $opts['name'] = "HFSC"; $opts['value'] = "HFSC"; $field['options']['option'][] = $opts; @@ -139,10 +143,6 @@ function step2_stepbeforeformdisplay() { $opts['name'] = "CBQ"; $opts['value'] = "CBQ"; $field['options']['option'][] = $opts; - $opts = array(); - $opts['name'] = "PRIQ"; - $opts['value'] = "PRIQ"; - $field['options']['option'][] = $opts; $field['bindstofield'] = "ezshaper->step2->local{$i}downloadscheduler"; $fields[] = $field; @@ -178,6 +178,10 @@ function step2_stepbeforeformdisplay() { $field['typehint'] = "Queueing discipline to apply on the upload of this connection."; $field['options']['option'] = array(); $opts = array(); + $opts['name'] = "PRIQ"; + $opts['value'] = "PRIQ"; + $field['options']['option'][] = $opts; + $opts = array(); $opts['name'] = "HFSC"; $opts['value'] = "HFSC"; $field['options']['option'][] = $opts; @@ -185,10 +189,6 @@ function step2_stepbeforeformdisplay() { $opts['name'] = "CBQ"; $opts['value'] = "CBQ"; $field['options']['option'][] = $opts; - $opts = array(); - $opts['name'] = "PRIQ"; - $opts['value'] = "PRIQ"; - $field['options']['option'][] = $opts; $field['bindstofield'] = "ezshaper->step2->conn{$i}uploadscheduler"; $fields[] = $field; @@ -630,7 +630,7 @@ function step8_stepsubmitphpaction() { /* And we're no longer dirty! */ clear_subsystem_dirty('shaper'); - update_filter_reload_status("Initializing"); + update_filter_reload_status("Initializing", true); header("Location: status_filter_reload.php"); exit; } @@ -696,71 +696,72 @@ function apply_all_chosen_items() { $upfactor = wizard_get_bandwidthtype_scale($config['ezshaper']['step2']["conn{$i}uploadspeed"]); $upbw = floatval($config['ezshaper']['step2']["conn{$i}upload"]) * $upfactor; - if ($config['ezshaper']['step3']['enable']) { - $voip = true; - $voipbw = $config['ezshaper']['step3']["conn{$i}upload"]; - $voipbwunit = $config['ezshaper']['step3']["conn{$i}uploadspeed"]; - if ($voipbwunit == "%") - $factor = $upbw/100; - else - $factor = wizard_get_bandwidthtype_scale($voipbwunit); - $remainbw += $voipbw * $factor; - } - if ($config['ezshaper']['step4']['enable']) { - $penalty = true; - $penaltybw = $config['ezshaper']['step4']['bandwidth']; - $penaltybwunit = $config['ezshaper']['step4']['bandwidthunit']; - if ($penaltybwunit == "%") + if ($sched != "PRIQ" && $config['ezshaper']['step3']['enable']) { + $voip = true; + $voipbw = $config['ezshaper']['step3']["conn{$i}upload"]; + $voipbwunit = $config['ezshaper']['step3']["conn{$i}uploadspeed"]; + if ($voipbwunit == "%") + $factor = $upbw/100; + else + $factor = wizard_get_bandwidthtype_scale($voipbwunit); + $remainbw += $voipbw * $factor; + } + if ($sched != "PRIQ" && $config['ezshaper']['step4']['enable']) { + $penalty = true; + $penaltybw = $config['ezshaper']['step4']['bandwidth']; + $penaltybwunit = $config['ezshaper']['step4']['bandwidthunit']; + if ($penaltybwunit == "%") + $factor = $upbw/100; + else + $factor = wizard_get_bandwidthtype_scale($penaltybwunit); + $remainbw += $penaltybw * $factor; + } else { + $penalty = false; + $penaltybw = 0; + } + if ($sched != "PRIQ" && $config['ezshaper']['step5']['enable']) { + $p2p = true; + if ($config['ezshaper']['step5']['p2pcatchall']) { + $p2pcatchall = true; + $p2pcatchbw = $config['ezshaper']['step5']['bandwidth']; + $p2pcatchbwunit = $config['ezshaper']['step5']['bandwidthunit']; + if ($p2pcatchbwunit == "%") $factor = $upbw/100; else - $factor = wizard_get_bandwidthtype_scale($penaltybwunit); - $remainbw += $penaltybw * $factor; - } else { - $penalty = false; - $penaltybw = 0; - } - if ($config['ezshaper']['step5']['enable']) { - $p2p = true; - if ($config['ezshaper']['step5']['p2pcatchall']) { - $p2pcatchall = true; - $p2pcatchbw = $config['ezshaper']['step5']['bandwidth']; - $p2pcatchbwunit = $config['ezshaper']['step5']['bandwidthunit']; - if ($p2pcatchbwunit == "%") - $factor = $upbw/100; - else - $factor = wizard_get_bandwidthtype_scale($p2pcatchbwunit); - $remainbw += $p2pcatchbw * $factor; - } else { - $p2pcatchall = false; - $p2pcatchbw = 0; - } + $factor = wizard_get_bandwidthtype_scale($p2pcatchbwunit); + $remainbw += $p2pcatchbw * $factor; } else { - $p2p = false; $p2pcatchall = false; $p2pcatchbw = 0; } - if ($config['ezshaper']['step6']['enable']) { - $games = true; - } else { - $games = false; - } - - if ($config['ezshaper']['step7']['enable']) { - $otherpriority = true; - } else { - $otherpriority = false; - } - $remainbw = round($remainbw / $upbw * 100, 2); + } else { + $p2p = false; + $p2pcatchall = false; + $p2pcatchbw = 0; + } + if ($config['ezshaper']['step6']['enable']) { + $games = true; + } else { + $games = false; + } - if (intval($remainbw) > 0 && intval($remainbw) > 30) { - $savemsg=gettext("Custom Bandwidths are greater than 30%. Please lower them for the wizard to continue."); - header("Location: wizard.php?xml=traffic_shaper_wizard_dedicated.xml&stepid=2&message={$savemsg}"); - exit; - } else { - $remainbw = 100 - $remainbw; - } + if ($config['ezshaper']['step7']['enable']) { + $otherpriority = true; + } else { + $otherpriority = false; + } if ($sched != "PRIQ") { + $remainbw = round($remainbw / $upbw * 100, 2); + + if (intval($remainbw) > 0 && intval($remainbw) > 30) { + $savemsg=gettext("Custom Bandwidths are greater than 30%. Please lower them for the wizard to continue."); + header("Location: wizard.php?xml=traffic_shaper_wizard_dedicated.xml&stepid=2&message={$savemsg}"); + exit; + } else { + $remainbw = 100 - $remainbw; + } + if ($sched == "CBQ") $q =& new cbq_queue(); else if ($sched == "HFSC") @@ -1078,7 +1079,7 @@ function apply_all_chosen_items() { $otherpriority = false; $remainbw = 0; - if ($config['ezshaper']['step3']['enable']) { + if ($sched != "PRIQ" && $config['ezshaper']['step3']['enable']) { $voip = true; $voipbw = $config['ezshaper']['step3']["local{$i}download"]; $voipbwunit = $config['ezshaper']['step3']["local{$i}downloadspeed"]; @@ -1087,43 +1088,43 @@ function apply_all_chosen_items() { $factor = $downbw/100; else $factor = wizard_get_bandwidthtype_scale($voipbwunit); - $remainbw += floatval($voipbw) * $factor; - } else + $remainbw += floatval($voipbw) * $factor; + } else $remainbw += 32000; /* 32Kbit/s reserved for HFSC link sharing */ - } - if ($config['ezshaper']['step4']['enable']) { - $penalty = true; - $penaltybw = $config['ezshaper']['step4']['bandwidth']; - $penaltybwunit = $config['ezshaper']['step4']['bandwidthunit']; - if ($penaltybwunit == "%") - $factor = $downbw/100; - else - $factor = wizard_get_bandwidthtype_scale($penaltybwunit); - $remainbw += floatval($penaltybw) * $factor; - } else { - $penalty = false; - $penaltybw = 0; - } - if ($config['ezshaper']['step5']['enable']) { - $p2p = true; - if ($config['ezshaper']['step5']['p2pcatchall']) { - $p2pcatchall = true; - $p2pcatchbw = $config['ezshaper']['step5']['bandwidth']; - $p2pcatchbwunit = $config['ezshaper']['step5']['bandwidthunit']; - if ($p2pcatchbwunit == "%") + } + if ($sched != "PRIQ" && $config['ezshaper']['step4']['enable']) { + $penalty = true; + $penaltybw = $config['ezshaper']['step4']['bandwidth']; + $penaltybwunit = $config['ezshaper']['step4']['bandwidthunit']; + if ($penaltybwunit == "%") $factor = $downbw/100; else - $factor = wizard_get_bandwidthtype_scale($p2pcatchbwunit); - $remainbw += floatval($p2pcatchbw) * $factor; + $factor = wizard_get_bandwidthtype_scale($penaltybwunit); + $remainbw += floatval($penaltybw) * $factor; } else { + $penalty = false; + $penaltybw = 0; + } + if ($sched != "PRIQ" && $config['ezshaper']['step5']['enable']) { + $p2p = true; + if ($config['ezshaper']['step5']['p2pcatchall']) { + $p2pcatchall = true; + $p2pcatchbw = $config['ezshaper']['step5']['bandwidth']; + $p2pcatchbwunit = $config['ezshaper']['step5']['bandwidthunit']; + if ($p2pcatchbwunit == "%") + $factor = $downbw/100; + else + $factor = wizard_get_bandwidthtype_scale($p2pcatchbwunit); + $remainbw += floatval($p2pcatchbw) * $factor; + } else { + $p2pcatchall = false; + $p2pcatchbw = 0; + } + } else { + $p2p = false; $p2pcatchall = false; $p2pcatchbw = 0; } - } else { - $p2p = false; - $p2pcatchall = false; - $p2pcatchbw = 0; - } if ($config['ezshaper']['step6']['enable']) { $games = true; } else { @@ -1135,16 +1136,18 @@ function apply_all_chosen_items() { } else { $otherpriority = false; } - $remainbw = round($remainbw / $downbw * 100, 2); - if (intval($remainbw) > 0 && intval($remainbw) > 40) { - $savemsg=gettext("Custom Bandwidths are greater than 40%. Please lower them for the wizard to continue."); - header("Location: wizard.php?xml=traffic_shaper_wizard_dedicated.xml&stepid=2&message={$savemsg}"); - exit; - } else { - $remainbw = 100 - $remainbw; + if ($sched != "PRIQ") { + $remainbw = round($remainbw / $downbw * 100, 2); + if (intval($remainbw) > 0 && intval($remainbw) > 40) { + $savemsg=gettext("Custom Bandwidths are greater than 40%. Please lower them for the wizard to continue."); + header("Location: wizard.php?xml=traffic_shaper_wizard_dedicated.xml&stepid=2&message={$savemsg}"); + exit; + } else { + $remainbw = 100 - $remainbw; + } + $downqbw = $downbw; } - $downqbw = $downbw; if (!$p2pcatchall) { if ($sched == "PRIQ") $q =& new priq_queue(); diff --git a/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml b/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml index b218643..ce74605 100644 --- a/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml +++ b/src/usr/local/www/wizards/traffic_shaper_wizard_dedicated.xml @@ -5,7 +5,7 @@ * traffic_shaper_wizard_dedicated.xml * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc b/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc index 99a014b..81e8ac1 100644 --- a/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc +++ b/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc @@ -3,7 +3,7 @@ * traffic_shaper_wizard_multi_all.inc * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -155,6 +155,10 @@ function step2_stepbeforeformdisplay() { $field['typehint'] = "Queueing discipline to apply on this local interface."; $field['options']['option'] = array(); $opts = array(); + $opts['name'] = "PRIQ"; + $opts['value'] = "PRIQ"; + $field['options']['option'][] = $opts; + $opts = array(); $opts['name'] = "HFSC"; $opts['value'] = "HFSC"; $field['options']['option'][] = $opts; @@ -162,10 +166,6 @@ function step2_stepbeforeformdisplay() { $opts['name'] = "CBQ"; $opts['value'] = "CBQ"; $field['options']['option'][] = $opts; - $opts = array(); - $opts['name'] = "PRIQ"; - $opts['value'] = "PRIQ"; - $field['options']['option'][] = $opts; $field['bindstofield'] = "ezshaper->step2->local{$i}downloadscheduler"; $fields[] = $field; } @@ -209,6 +209,10 @@ function step2_stepbeforeformdisplay() { $field['typehint'] = "Queueing discipline to apply on the upload of this connection."; $field['options']['option'] = array(); $opts = array(); + $opts['name'] = "PRIQ"; + $opts['value'] = "PRIQ"; + $field['options']['option'][] = $opts; + $opts = array(); $opts['name'] = "HFSC"; $opts['value'] = "HFSC"; $field['options']['option'][] = $opts; @@ -216,10 +220,6 @@ function step2_stepbeforeformdisplay() { $opts['name'] = "CBQ"; $opts['value'] = "CBQ"; $field['options']['option'][] = $opts; - $opts = array(); - $opts['name'] = "PRIQ"; - $opts['value'] = "PRIQ"; - $field['options']['option'][] = $opts; $field['bindstofield'] = "ezshaper->step2->conn{$i}uploadscheduler"; $fields[] = $field; @@ -696,7 +696,7 @@ function step8_stepsubmitphpaction() { /* And we're no longer dirty! */ clear_subsystem_dirty('shaper'); - update_filter_reload_status("Initializing"); + update_filter_reload_status("Initializing", true); header("Location: status_filter_reload.php"); exit; } @@ -762,7 +762,7 @@ function apply_all_chosen_items() { $upfactor = wizard_get_bandwidthtype_scale($config['ezshaper']['step2']["conn{$i}uploadspeed"]); $upbw = floatval($config['ezshaper']['step2']["conn{$i}upload"]) * $upfactor; - if ($config['ezshaper']['step3']['enable']) { + if ($sched != "PRIQ" && $config['ezshaper']['step3']['enable']) { $voip = true; $voipbw = $config['ezshaper']['step3']["conn{$i}upload"]; $voipbwunit = $config['ezshaper']['step3']["conn{$i}uploadspeed"]; @@ -772,7 +772,7 @@ function apply_all_chosen_items() { $factor = wizard_get_bandwidthtype_scale($voipbwunit); $remainbw += $voipbw * $factor; } - if ($config['ezshaper']['step4']['enable']) { + if ($sched != "PRIQ" && $config['ezshaper']['step4']['enable']) { $penalty = true; $penaltybw = $config['ezshaper']['step4']['bandwidth']; $penaltybwunit = $config['ezshaper']['step4']['bandwidthunit']; @@ -785,7 +785,7 @@ function apply_all_chosen_items() { $penalty = false; $penaltybw = 0; } - if ($config['ezshaper']['step5']['enable']) { + if ($sched != "PRIQ" && $config['ezshaper']['step5']['enable']) { $p2p = true; if ($config['ezshaper']['step5']['p2pcatchall']) { $p2pcatchall = true; @@ -817,17 +817,17 @@ function apply_all_chosen_items() { $otherpriority = false; } - $remainbw = round($remainbw / $upbw * 100, 2); + if ($sched != "PRIQ") { + $remainbw = round($remainbw / $upbw * 100, 2); - if (intval($remainbw) > 0 && intval($remainbw) > 30) { - $savemsg=gettext("Custom Bandwidths are greater than 30%. Please lower them for the wizard to continue."); - header("Location: wizard.php?xml=traffic_shaper_wizard_multi_all.xml&stepid=2&message={$savemsg}"); - exit; - } else { - $remainbw = 100 - $remainbw; - } + if (intval($remainbw) > 0 && intval($remainbw) > 30) { + $savemsg=gettext("Custom Bandwidths are greater than 30%. Please lower them for the wizard to continue."); + header("Location: wizard.php?xml=traffic_shaper_wizard_multi_all.xml&stepid=2&message={$savemsg}"); + exit; + } else { + $remainbw = 100 - $remainbw; + } - if ($sched != "PRIQ") { if ($sched == "CBQ") $q =& new cbq_queue(); else if ($sched == "HFSC") @@ -876,14 +876,14 @@ function apply_all_chosen_items() { $tmpcf['enabled'] = "on"; If ($sched == "CBQ") { $tmpcf['borrow'] = "on"; - $tmpcf['bandwidth'] = $remainbw * 0.2; + $tmpcf['bandwidth'] = intval($remainbw * 0.2); $tmpcf['bandwidthtype'] = "%"; } else if ($sched == "HFSC") { $lkbw = 0.20 * $remainbw; - $tmpcf['linkshare3'] = "{$lkbw}%"; + $tmpcf['linkshare3'] = intval($lkbw) . "%"; $tmpcf['linkshare'] = "on"; - $tmpcf['bandwidth'] = $lkbw; + $tmpcf['bandwidth'] = intval($lkbw); $tmpcf['bandwidthtype'] = "%"; } array_push($tmppath, "qACK"); @@ -1158,8 +1158,7 @@ function apply_all_chosen_items() { $otherpriority = false; $remainbw = 0; - - if ($config['ezshaper']['step3']['enable']) { + if ($sched != "PRIQ" && $config['ezshaper']['step3']['enable']) { $voip = true; $voipbw = $config['ezshaper']['step3']["local{$i}download"]; $voipbwunit = $config['ezshaper']['step3']["local{$i}downloadspeed"]; @@ -1172,7 +1171,7 @@ function apply_all_chosen_items() { } else $remainbw += 32000; /* 32Kbit/s reserved for HFSC link sharing */ } - if ($config['ezshaper']['step4']['enable']) { + if ($sched != "PRIQ" && $config['ezshaper']['step4']['enable']) { $penalty = true; $penaltybw = $config['ezshaper']['step4']['bandwidth']; $penaltybwunit = $config['ezshaper']['step4']['bandwidthunit']; @@ -1185,7 +1184,7 @@ function apply_all_chosen_items() { $penalty = false; $penaltybw = 0; } - if ($config['ezshaper']['step5']['enable']) { + if ($sched != "PRIQ" && $config['ezshaper']['step5']['enable']) { $p2p = true; if ($config['ezshaper']['step5']['p2pcatchall']) { $p2pcatchall = true; @@ -1216,17 +1215,19 @@ function apply_all_chosen_items() { } else { $otherpriority = false; } - $remainbw = round($remainbw / $lanbw * 100, 2); + if ($sched != "PRIQ") { + $remainbw = round($remainbw / $lanbw * 100, 2); - if (intval($remainbw) > 0 && intval($remainbw) > 40) { - $savemsg=gettext("Custom Bandwidths are greater than 40%. Please lower them for the wizard to continue."); - header("Location: wizard.php?xml=traffic_shaper_wizard_multi_all.xml&stepid=2&message={$savemsg}"); - exit; - } else { - $remainbw = 100 - $remainbw; - } + if (intval($remainbw) > 0 && intval($remainbw) > 40) { + $savemsg=gettext("Custom Bandwidths are greater than 40%. Please lower them for the wizard to continue."); + header("Location: wizard.php?xml=traffic_shaper_wizard_multi_all.xml&stepid=2&message={$savemsg}"); + exit; + } else { + $remainbw = 100 - $remainbw; + } - $lanqbw = $lanbw; + $lanqbw = $lanbw; + } if (!$p2pcatchall) { if ($sched == "PRIQ") $q =& new priq_queue(); @@ -1256,7 +1257,8 @@ function apply_all_chosen_items() { //var_dump($input_errors); $qtmp->wconfig(); - $lanqbw *= 0.8; /* lanqbw - 20% */ + if ($sched != "PRIQ") + $lanqbw *= 0.8; /* lanqbw - 20% */ } if ($sched != "PRIQ") { diff --git a/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml b/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml index 08869db..e0a5850 100644 --- a/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml +++ b/src/usr/local/www/wizards/traffic_shaper_wizard_multi_all.xml @@ -5,7 +5,7 @@ * traffic_shaper_wizard_multi_all.xml * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/src/usr/local/www/xmlrpc.php b/src/usr/local/www/xmlrpc.php index 2d4722f..51ce9cf 100644 --- a/src/usr/local/www/xmlrpc.php +++ b/src/usr/local/www/xmlrpc.php @@ -3,7 +3,7 @@ * xmlrpc.php * * part of pfSense (https://www.pfsense.org) - * Copyright (c) 2004-2016 Electric Sheep Fencing, LLC + * Copyright (c) 2004-2016 Rubicon Communications, LLC (Netgate) * Copyright (c) 2005 Colin Smith * All rights reserved. * @@ -41,8 +41,10 @@ class pfsense_xmlrpc_server { private $loop_detected = false; private $remote_addr; - private function auth($username, $password) { + private function auth() { global $config; + $username = $_SERVER['PHP_AUTH_USER']; + $password = $_SERVER['PHP_AUTH_PW']; $login_ok = false; if (!empty($username) && !empty($password)) { @@ -109,7 +111,7 @@ class pfsense_xmlrpc_server { /* grab sync to ip if enabled */ if (isset($config['hasync']['synchronizetoip']) && - $config['hasync']['synchronizetoip'] == $remote_addr) { + $config['hasync']['synchronizetoip'] == $this->remote_addr) { $this->loop_detected = true; } } @@ -117,28 +119,22 @@ class pfsense_xmlrpc_server { /** * Get host version information * - * @param string $username - * @param string $password - * * @return array */ - public function host_firmware_version($username, $password) { - $this->auth($username, $password); - + public function host_firmware_version($dummy = 1) { + $this->auth(); return host_firmware_version(); } /** * Executes a PHP block of code * - * @param string $username - * @param string $password * @param string $code * * @return bool */ - public function exec_php($username, $password, $code) { - $this->auth($username, $password); + public function exec_php($code) { + $this->auth(); eval($code); if ($toreturn) { @@ -151,14 +147,12 @@ class pfsense_xmlrpc_server { /** * Executes shell commands * - * @param string $username - * @param string $password * @param string $code * * @return bool */ - public function exec_shell($username, $password, $code) { - $this->auth($username, $password); + public function exec_shell($code) { + $this->auth(); mwexec($code); return true; @@ -167,14 +161,12 @@ class pfsense_xmlrpc_server { /** * Backup chosen config sections * - * @param string $username - * @param string $password * @param array $section * * @return array */ - public function backup_config_section($username, $password, $section) { - $this->auth($username, $password); + public function backup_config_section($section) { + $this->auth(); global $config; @@ -184,14 +176,12 @@ class pfsense_xmlrpc_server { /** * Restore defined config section into local config * - * @param string $username - * @param string $password * @param array $sections * * @return bool */ - public function restore_config_section($username, $password, $sections) { - $this->auth($username, $password); + public function restore_config_section($sections) { + $this->auth(); global $config; @@ -406,14 +396,12 @@ class pfsense_xmlrpc_server { /** * Merge items into installedpackages config section * - * @param string $username - * @param string $password * @param array $section * * @return bool */ - public function merge_installedpackages_section($username, $password, $section) { - $this->auth($username, $password); + public function merge_installedpackages_section($section) { + $this->auth(); global $config; @@ -435,14 +423,12 @@ class pfsense_xmlrpc_server { /** * Merge items into config * - * @param string $username - * @param string $password * @param array $section * * @return bool */ - public function merge_config_section($username, $password, $section) { - $this->auth($username, $password); + public function merge_config_section($section) { + $this->auth(); global $config; @@ -464,13 +450,10 @@ class pfsense_xmlrpc_server { /** * Wrapper for filter_configure() * - * @param string $username - * @param string $password - * * @return bool */ - public function filter_configure($username, $password) { - $this->auth($username, $password); + public function filter_configure() { + $this->auth(); global $g, $config; @@ -523,13 +506,10 @@ class pfsense_xmlrpc_server { /** * Wrapper for configuring CARP interfaces * - * @param string $username - * @param string $password - * * @return bool */ - public function interfaces_carp_configure($username, $password) { - $this->auth($username, $password); + public function interfaces_carp_configure() { + $this->auth(); if ($this->loop_detected) { log_error("Disallowing CARP sync loop"); @@ -544,13 +524,10 @@ class pfsense_xmlrpc_server { /** * Wrapper for rc.reboot * - * @param string $username - * @param string $password - * * @return bool */ - public function reboot($username, $password) { - $this->auth($username, $password); + public function reboot() { + $this->auth(); mwexec_bg("/etc/rc.reboot"); @@ -560,14 +537,12 @@ class pfsense_xmlrpc_server { /** * Wrapper for get_notices() * - * @param string $username - * @param string $password * @param string $category * * @return bool */ - public function get_notices($username, $password, $category = 'all') { - $this->auth($username, $password); + public function get_notices($category = 'all') { + $this->auth(); global $g; |